From d1af0b8834f276b33741f08833d2b4967c9bcfb4 Mon Sep 17 00:00:00 2001 From: Apolixit Date: Fri, 2 Aug 2024 23:03:13 +0200 Subject: [PATCH 01/15] WIP Converter v9 --> v13 to v14 --- ...trate.NET.Metadata.Conversion.Tests.csproj | 28 + .../TmpTests.cs | 1326 +++++++++++++++++ .../UnitTest1.cs | 16 + Substrate.NET.Metadata.Conversion/Class1.cs | 7 + .../ConversionV14Helper.cs | 112 ++ .../Substrate.NET.Metadata.Conversion.csproj | 13 + .../Conversion/ConversionV14HelperTests.cs | 25 + Substrate.NET.Metadata.sln | 16 +- Substrate.NET.Metadata/Base/BaseMetadata.cs | 6 +- Substrate.NET.Metadata/Base/Field.cs | 10 + Substrate.NET.Metadata/Base/IMetaDataInfo.cs | 13 + .../Base/Portable/PortableType.cs | 8 + .../Base/Portable/TypePortableForm.cs | 13 + .../Base/StorageEntryTypeMap.cs | 4 +- Substrate.NET.Metadata/Base/Variant.cs | 10 + Substrate.NET.Metadata/Common/Metadata.cs | 455 ++++++ .../Conversion/ConversionV14Helper.cs | 112 ++ .../Conversion/IMetadataConversion.cs | 17 + .../V11/StorageEntryMetadataV11.cs | 8 +- .../V15/RuntimeMetadataV15.cs | 6 +- Substrate.NET.Metadata/V9/ModuleMetadataV9.cs | 28 +- .../V9/PalletCallArgsMetadataV9.cs | 7 + .../V9/PalletCallMetadataV9.cs | 33 +- .../V9/RuntimeMetadataV9.cs | 12 +- 24 files changed, 2269 insertions(+), 16 deletions(-) create mode 100644 Substrate.NET.Metadata.Conversion.Tests/Substrate.NET.Metadata.Conversion.Tests.csproj create mode 100644 Substrate.NET.Metadata.Conversion.Tests/TmpTests.cs create mode 100644 Substrate.NET.Metadata.Conversion.Tests/UnitTest1.cs create mode 100644 Substrate.NET.Metadata.Conversion/Class1.cs create mode 100644 Substrate.NET.Metadata.Conversion/ConversionV14Helper.cs create mode 100644 Substrate.NET.Metadata.Conversion/Substrate.NET.Metadata.Conversion.csproj create mode 100644 Substrate.NET.Metadata.Tests/Conversion/ConversionV14HelperTests.cs create mode 100644 Substrate.NET.Metadata/Base/IMetaDataInfo.cs create mode 100644 Substrate.NET.Metadata/Common/Metadata.cs create mode 100644 Substrate.NET.Metadata/Conversion/ConversionV14Helper.cs create mode 100644 Substrate.NET.Metadata/Conversion/IMetadataConversion.cs diff --git a/Substrate.NET.Metadata.Conversion.Tests/Substrate.NET.Metadata.Conversion.Tests.csproj b/Substrate.NET.Metadata.Conversion.Tests/Substrate.NET.Metadata.Conversion.Tests.csproj new file mode 100644 index 0000000..3a76a33 --- /dev/null +++ b/Substrate.NET.Metadata.Conversion.Tests/Substrate.NET.Metadata.Conversion.Tests.csproj @@ -0,0 +1,28 @@ + + + + net8.0 + enable + enable + + false + true + + + + + + + + + + + + + + + + + + + diff --git a/Substrate.NET.Metadata.Conversion.Tests/TmpTests.cs b/Substrate.NET.Metadata.Conversion.Tests/TmpTests.cs new file mode 100644 index 0000000..fa1931d --- /dev/null +++ b/Substrate.NET.Metadata.Conversion.Tests/TmpTests.cs @@ -0,0 +1,1326 @@ +using NUnit.Framework.Internal.Execution; +using Substrate.NET.Metadata.Base; +using Substrate.NET.Metadata.Base.Portable; +using Substrate.NET.Metadata.Compare.TypeDef; +using Substrate.NET.Metadata.Service; +using Substrate.NET.Metadata.V10; +using Substrate.NET.Metadata.V11; +using Substrate.NET.Metadata.V12; +using Substrate.NET.Metadata.V13; +using Substrate.NET.Metadata.V14; +using Substrate.NET.Metadata.V15; +using Substrate.NET.Metadata.V9; +using Substrate.NetApi; +using Substrate.NetApi.Model.Extrinsics; +using Substrate.NetApi.Model.Meta; +using Substrate.NetApi.Model.Types.Base; +using Substrate.NetApi.Model.Types.Metadata; +using Substrate.NetApi.Model.Types.Primitive; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Text.RegularExpressions; +using System.Threading.Tasks; + +namespace Substrate.NET.Metadata.Conversion.Tests +{ + internal class StorageClass + { + public StorageClass(StorageType type, string moduleName, string propName, string className) + { + Type = type; + ModuleName = moduleName; + PropName = propName; + ClassName = className; + FoundInV14 = false; + } + + public bool FoundInV14 { get; private set; } + public int? Index_v14_9110 { get; private set; } + public StorageType Type { get; set; } + public string ModuleName { get; set; } + public string PropName { get; set; } + public string ClassName { get; set; } + + private string? classNameMapped = null; + public string ClassNameMapped + { + get + { + if (classNameMapped is null) + classNameMapped = CustomMapping(ClassName); + + return classNameMapped; + } + } + + public static string HarmonizeTypeName(string className) + { + return className.Replace("T::", ""); + } + + public static List HarmonizeFullType(string className) + { + var res = new List(); + + if (ExtractMap(className) is (string key, string value) map) + { + res.Add(map.key); + res.Add(map.value); + return ExtractDeeper(res); + } + + if (ExtractDoubleMap(className) is (string, string, string) doubleMap) + { + res.Add(doubleMap.key1); + res.Add(doubleMap.key2); + res.Add(doubleMap.value); + + return ExtractDeeper(res); + } + + if (ExtractTuple(className) is List tuples) + { + res.AddRange(tuples); + return ExtractDeeper(res); + } + + if (ExtractArray(className) is List array) + { + res.AddRange(array); + return ExtractDeeper(res); + } + + if (ExtractParameters(className) is List parameters) + { + res.AddRange(parameters); + return ExtractDeeper(res); + } + + var extractGeneric = ExtractGeneric(className); + + if (extractGeneric is not null) + { + res.AddRange(extractGeneric.Value.genericParameters); + + return ExtractDeeper(res); + } + + if (ExtractRustGeneric(className) is string param) + { + res.Add(param); + return ExtractDeeper(res); + } + + res.Add(HarmonizeTypeName(className)); + return res; + } + + /// + /// Extract Rust generic from a class name + /// For example ::AccountId => AccountId + /// + /// + /// + internal static string? ExtractRustGeneric(string className) + { + string pattern = @"<[^>]+>::(\w+)"; + + Match match = Regex.Match(className, pattern); + + if (match.Success) + { + return match.Groups[1].Value; + } + + return null; + } + + internal static List? ExtractParameters(string className) + { + List result = new(); + + var splitted = className.Split(new[] { "," }, StringSplitOptions.None).Select(x => x.Trim()).ToList(); + result.AddRange(splitted); + + if (splitted.Count > 1) + { + List indexBracketOpen = new(); + List indexBracketClose = new(); + int lastIndexRemoved = 0; + + for (int i = 0; i < splitted.Count; i++) + { + var diff = splitted[i].Count(i => i == '<') - splitted[i].Count(i => i == '>'); + + if (diff > 0) + { + Enumerable.Range(0, diff).ToList().ForEach(x => indexBracketOpen.Add(i)); + } + + if (diff < 0) + { + Enumerable.Range(0, Math.Abs(diff)).ToList().ForEach(x => indexBracketClose.Add(i)); + + if (indexBracketClose.Count == indexBracketOpen.Count) + { + var start = indexBracketOpen.First(); + var end = indexBracketClose.Last(); + + var sub = string.Join(", ", splitted.GetRange(start, end - start + 1)); + + //result.RemoveRange(start - lastIndexRemoved, end - start + 1 - lastIndexRemoved); + Enumerable.Range(start, end - start + 1).ToList().ForEach(x => result.Remove(splitted[x])); + result.Insert(start - lastIndexRemoved, sub); + + lastIndexRemoved = end; + indexBracketOpen.Clear(); + indexBracketClose.Clear(); + } + } + } + + // At the end, let's check if something has changed + return result.First() == className ? null : result; + } + + return null; + } + + private static List? ExtractArray(string className) + { + string pattern = @"\[(.*);\s*(\d+)\]"; + Match match = Regex.Match(className, pattern); + + if (match.Success) + { + //match.Groups[1].Value -> array size + return new List() { match.Groups[1].Value }; + } + + return null; + } + + private static List? ExtractTuple(string className) + { + string pattern = @"\((.*)\)$"; + Match match = Regex.Match(className, pattern); + + if (match.Success) + { + return new List() { match.Groups[1].Value }; + } + + return null; + } + + private static List ExtractDeeper(List res) + { + //if (res.Count > 1) + //{ + for (int i = 0; i < res.Count; i++) + { + var r = HarmonizeFullType(res[i]); + if (r.Count > 1) + { + res.Remove(res[i]); + res.AddRange(r); + i = -1; + } + else + { + res[i] = r[0]; + } + } + //} + + return res; + } + + public static (string key1, string key2, string value)? ExtractDoubleMap(string className) + { + string pattern = @"Key1\s*=\s*([^\/]+)\s*\/\s*Key1Hasher\s*=\s*([^\/]+)\s*\/\s*Key2\s*=\s*([^\/]+)\s*\/\s*Key2Hasher\s*=\s*([^\/]+)\s*\/\s*Value\s*=\s*([^\]]+)"; + + Match match = Regex.Match(className, pattern); + if (match.Success) + { + string key1 = match.Groups[1].Value.Trim(); + string key2 = match.Groups[3].Value.Trim(); + string value = match.Groups[5].Value.Trim(); + return (key1, key2, value); + } + + return null; + } + public static (string key, string value)? ExtractMap(string className) + { + string pattern = @"Key\s*=\s*([^\/]+)\s*\/\s*Value\s*=\s*([^\]]+)"; + + Match match = Regex.Match(className, pattern); + if (match.Success) + { + string key = match.Groups[1].Value.Trim(); + string value = match.Groups[2].Value.Trim(); + return (key, value); + } + + return null; + } + + public static (TypeDefEnum typeDefEnum, List genericParameters)? ExtractGeneric(string className) + { + //string pattern = @"(\w*)<\(?([^(>|))]+)\)?>"; + string pattern = @"([a-zA-Z:]*|)<(.*)>$"; + Match match = Regex.Match(className, pattern); + + if (match.Success) + { + var genericParameters = match.Groups[2].Value; + + // A valid pattern should have the same number of '<' and '>' and '<' should be before '>' + if (!HaveValidParametersPattern(genericParameters)) + { + return null; + } + + var typeDef = GetTypeDefFromString(match.Groups[1].Value); + + List genericValue = new(); + if (!GenericValueToIgnore.Contains(genericParameters)) + { + genericValue.Add(genericParameters); + } + + // A composite is basically a class, so let's add it + if (typeDef == TypeDefEnum.Composite) + { + genericValue.Insert(0, match.Groups[1].Value); + } + return (typeDef, genericValue); + } + + return null; + } + + /// + /// A valid pattern should have the same number of '<' and '>' and '<' should be before '>' + /// + /// + /// + private static bool HaveValidParametersPattern(string genericParameters) + { + var nbOpenBracket = genericParameters.Count(x => x == '<'); + var nbClosedBracket = genericParameters.Count(x => x == '<'); + + return nbOpenBracket == nbClosedBracket && + nbOpenBracket == 0 || (genericParameters.IndexOf('<') < genericParameters.IndexOf('>')); + } + + public static string[] GenericValueToIgnore = ["T"]; + + public static TypeDefEnum GetTypeDefFromString(string genericType) + { + return genericType switch + { + "Vec" => TypeDefEnum.Sequence, + _ => TypeDefEnum.Composite + }; + } + + public string CustomMapping(string className) + { + return className switch + { + "TaskAddress" => "TaskAddress", + "Vec" => "Vec>", + "Vec" => "Vec", + "Vec<(AccountId, Balance)>" => "Vec<(::AccountId, BalanceOf)>", + "sp_std::marker::PhantomData<(AccountId, Event)>" => "BaseVoid", // Pas sur de moi + "Timepoint" => "Timepoint", + "limits::BlockWeights" => "BlockWeights", + "limits::BlockLength" => "BlockLength", + "TransactionPriority" => "u64", + "& 'static[u8]" => "vec", + "&[u8]" => "vec", + "Moment" => "u64", + "ModuleId" => "PalletId", + "LeasePeriod" => "LeasePeriodOf", + _ => className + }; + } + + public static int? TryHardBinding(string className) + { + return className switch + { + "u8" => 2, + "u16" => 73, + "u32" => 4, + "u64" => 8, + "u128" => 6, + "bool" => 58, + "Str" => 108, + "Vec>>" => 386, + "LockIdentifier" => 125, + "[u8;8]" => 125, + _ => null + }; + } + + public void SetToFoundInV14(int index) + { + FoundInV14 = true; + Index_v14_9110 = index; + } + + public static string WriteStoragePlain(Str plain) => WriteStoragePlain(plain.Value); + public static string WriteStoragePlain(string plain) + { + return StorageClass.HarmonizeTypeName(plain.ToString()); + } + + public static string WriteStorageMap(string hasher, string key, string value, bool? linked) + { + return $"[Hasher = {HarmonizeTypeName(hasher)} / Key = {HarmonizeTypeName(key)} / Value = {HarmonizeTypeName(value)}]"; + } + + public static string WriteStorageDoubleMap(string key1, string key1Hasher, string key2, string key2Hasher, string value) + { + return $"Key1 = {HarmonizeTypeName(key1)} / Key1Hasher = {HarmonizeTypeName(key1Hasher)} / Key2 = {HarmonizeTypeName(key2)} / Key2Hasher = {HarmonizeTypeName(key2Hasher)} / Value = {HarmonizeTypeName(value)}"; + } + + public static string WriteStorageMap(StorageEntryTypeMapV9 typeMap) + => WriteStorageMap(typeMap.Hasher.Value.ToString(), typeMap.Key.Value, typeMap.Value.Value, typeMap.Linked.Value); + + public static string WriteStorageMap(StorageEntryTypeMapV10 typeMap) + => WriteStorageMap(typeMap.Hasher.Value.ToString(), typeMap.Key.Value, typeMap.Value.Value, typeMap.Linked.Value); + + public static string WriteStorageMap(StorageEntryTypeMapV11 typeMap) + => WriteStorageMap(typeMap.Hasher.Value.ToString(), typeMap.Key.Value, typeMap.Value.Value, typeMap.Linked.Value); + + public static string WriteStorageMap(StorageEntryTypeMapV14 typeMap, MetadataV14 metadataV14) + { + return WriteStorageMap( + typeMap.Hashers.Value.First().Value.ToString(), + WriteStorageKey(typeMap, metadataV14), + WriteStorageValue(typeMap, metadataV14), null); + } + + public static string WriteStorageKey(StorageEntryTypeMapV14 typeMap, MetadataV14 metadataV14) + { + return WriteStorage(metadataV14.RuntimeMetadataData.Lookup, typeMap.Key.Value); + } + + public static string WriteStorageValue(StorageEntryTypeMapV14 typeMap, MetadataV14 metadataV14) + { + return WriteStorage(metadataV14.RuntimeMetadataData.Lookup, typeMap.Value.Value); + } + + private static string WriteStorage(PortableRegistry p, int index) + { + if (p.Value[index].Ty.TypeDef.Value2 is BaseEnum typeDefPrimitive) + { + return StorageClass.HarmonizeTypeName(typeDefPrimitive.Value.ToString()); + } + else + { + if (p.Value[index].Ty.Path.Value.Count() == 0) + { + + } + else + { + return StorageClass.HarmonizeTypeName(p.Value[index].Ty.Path.Value.Last().Value); + } + } + + return ""; + } + + public static string WriteStorageDoubleMap(StorageEntryTypeDoubleMapV9 doubleMap) + => WriteStorageDoubleMap(doubleMap.Key1.Value, doubleMap.Key1Hasher.Value.ToString(), doubleMap.Key2.Value, doubleMap.Key2Hasher.Value.ToString(), doubleMap.Value.Value); + + public static string WriteStorageDoubleMap(StorageEntryTypeDoubleMapV10 doubleMap) + => WriteStorageDoubleMap(doubleMap.Key1.Value, doubleMap.Key1Hasher.Value.ToString(), doubleMap.Key2.Value, doubleMap.Key2Hasher.Value.ToString(), doubleMap.Value.Value); + + public static string WriteStorageDoubleMap(StorageEntryTypeDoubleMapV11 doubleMap) + => WriteStorageDoubleMap(doubleMap.Key1.Value, doubleMap.Key1Hasher.Value.ToString(), doubleMap.Key2.Value, doubleMap.Key2Hasher.Value.ToString(), doubleMap.Value.Value); + + public static string WriteStorageNMap(StorageEntryTypeNMapV13 nMap) + { + var hasher = string.Join(",", nMap.Hashers.Value.Select(x => x.Value)); + var keyVec = string.Join(",", nMap.KeyVec.Value.Select(x => x.Value)); + return $"[Hashers = [{hasher} / Keys = {keyVec} / Value = {nMap.Value.Value}"; + } + + public override string ToString() + { + return $"{ModuleName}|{Type}|{PropName}|{ClassName}|{(FoundInV14 ? ClassNameMapped : "")}|{FoundInV14}|{(Index_v14_9110 is not null ? Index_v14_9110.Value : "")}"; + } + + public enum StorageType + { + Call, + Event, + Storage, + Constant, + Error + } + } + + internal class MetadataVersionCompact + { + public MetadataVersionCompact(int majorVersion, int minorVersion, string blockHash) + { + MajorVersion = majorVersion; + MinorVersion = minorVersion; + BlockHash = blockHash; + } + + public int MajorVersion { get; set; } + public int MinorVersion { get; set; } + public string BlockHash { get; set; } + + public List StorageClasses { get; set; } = new List(); + + public List Flatten() + { + var res = new List(); + + foreach (var storageClass in StorageClasses) + { + res.Add($"{MajorVersion}|{MinorVersion}|{storageClass.ToString()}"); + } + + return res; + } + + public void AddOrInc(Dictionary uniqueName, string name) + { + if (uniqueName.ContainsKey(name)) + { + uniqueName[name] += 1; + } + else + { + uniqueName[name] = 1; + } + } + + public void GetDistinctStorageClasses(Dictionary uniqueName) + { + var res = new List(); + + var distinctClasses = StorageClasses.Select(x => x.ClassNameMapped).Distinct().ToList(); + + for (int i = 0; i < distinctClasses.Count; i++) + { + var classes = StorageClass.HarmonizeFullType(distinctClasses[i]); + + foreach (var c in classes) + { + AddOrInc(uniqueName, c); + } + } + } + + public override string ToString() => $"{MajorVersion}.{MinorVersion}.{BlockHash}"; + } + + internal class TmpTests + { + private MetadataService _metadataService; + private SubstrateClient _substrateClient; + + [SetUp] + public async Task SetupAsync() + { + _metadataService = new MetadataService(); + _substrateClient = new SubstrateClient(new Uri("wss://polkadot-rpc.dwellir.com"), ChargeTransactionPayment.Default()); + + await _substrateClient.ConnectAsync(); + Assert.That(_substrateClient.IsConnected, Is.True); + } + + [TearDown] + public void Teardown() + { + _substrateClient.Dispose(); + } + + public string v14Hex + { + get + { + return _substrateClient.State.GetMetaDataAtAsync(Utils.HexToByteArray("0x7a233affefea10b90b3b5b2b37a6e9d8ef0029ef7add14ac4a56a3520b602927"), CancellationToken.None).Result; + } + } + + private MetadataV14? _v14 = null; + public MetadataV14 v14 + { + get + { + if (_v14 == null) + { + _v14 = new MetadataV14(v14Hex); + } + + return _v14; + } + } + + public Substrate.NetApi.Model.Meta.MetaData MetadataNetApi + { + get + { + var mdv14 = new Substrate.NetApi.Model.Types.Metadata.RuntimeMetadata(); + mdv14.Create(v14Hex); + return new MetaData(mdv14, ""); + } + } + + [Test] + [TestCase("[Hasher = BlakeTwo128Concat / Key = AccountId / Value = AccountInfo]", new string[] { "AccountId", "AccountInfo", "Index", "AccountData" })] + [TestCase("Vec<(AccountId, Balance)>", new string[] { "AccountId", "Balance" })] + [TestCase("DigestOf", new string[] { "DigestOf" })] + [TestCase("Vec>", new string[] { "EventRecord", "Event", "Hash" })] + [TestCase("TaskAddress", new string[] { "TaskAddress", "BlockNumber" })] + [TestCase("MaybeRandomness", new string[] { "MaybeRandomness" })] + [TestCase("Vec>>", new string[] { "WeightToFeeCoefficient", "BalanceOf" })] + [TestCase("Option>", new string[] { "Option", "u8" })] + [TestCase("Vec", new string[] { "AccountId" })] + [TestCase("[Hasher = BlakeTwo128Concat / Key = AccountId / Value = StakingLedger>]", new string[] { "AccountId", "StakingLedger", "BalanceOf" })] + [TestCase("[Hasher = Twox64Concat / Key = (AccountId, slashing::SpanIndex) / Value = slashing::SpanRecord>]", new string[] { "AccountId", "slashing::SpanIndex", "slashing::SpanRecord", "BalanceOf" })] + [TestCase("Option>", new string[] { "Option", "u8" })] + [TestCase("ElectionStatus", new string[] { "ElectionStatus", "BlockNumber" })] + [TestCase("ElectionStatus", new string[] { "ElectionStatus", "BlockNumber" })] + [TestCase("Vec>", new string[] { "ParaId", "CollatorId" })] + [TestCase("Vec<(ParaId, Option<(CollatorId, Retriable)>)>", new string[] { "ParaId", "Option", "CollatorId", "Retriable" })] + [TestCase("Vec>", new string[] { "DeferredOffenceOf" })] + [TestCase("[Hasher = Identity / Key = Hash / Value = (BlockNumber, Vec)]", new string[] { "Hash", "BlockNumber", "AccountId" })] + [TestCase("Vec<(::AccountId, BalanceOf)>", new string[] { "AccountId", "BalanceOf" })] + [TestCase("OpenTip, BlockNumber, Hash>", new string[] { "OpenTip", "AccountId", "BalanceOf", "BlockNumber", "Hash" })] + [TestCase("[Key1 = BlockNumber / Key1Hasher = Twox64Concat / Key2 = Hash / Key2Hasher = Identity / Value = BlockAttestations]", new string[] { "BlockNumber", "Hash", "BlockAttestations" })] + [TestCase("[Hasher = Identity / Key = EthereumAddress / Value = (BalanceOf, BalanceOf, BlockNumber)]", new string[] { "EthereumAddress", "BalanceOf", "BlockNumber" })] + [TestCase("[Hasher = Identity / Key = EthereumAddress / Value = (BalanceOf, BalanceOf, BlockNumber)]", new string[] { "EthereumAddress", "BalanceOf", "BlockNumber" })] + [TestCase("[Hasher = Identity / Key = [u8; 32] / Value = (Vec, AccountId, BalanceOf)]", new string[] { "u8", "AccountId", "BalanceOf" })] + //[TestCase("Hey, (Titi, B>, Titi, L>)", new string[] { "Hey", "Titi", "A", "XX", "YY", "B", "TT", "L" })] + public void HarmonizeFullType_WithMap_ShouldSucceed(string original, string[] mapped) + { + // Todo Romain : gérer les tableaux du genre [u8; 32] + var res = StorageClass.HarmonizeFullType(original).Distinct().ToList(); + + Assert.That(res.Count, Is.EqualTo(mapped.Length)); + + for (int i = 0; i < res.Count; i++) + { + Assert.That(res[i], Is.EqualTo(mapped[i])); + } + } + + [Test] + [TestCase("AccountId, Balance", new string[] { "AccountId", "Balance" })] + [TestCase("Toto, Titi", new string[] { "Toto", "Titi" })] + [TestCase("Titi, Toto", new string[] { "Titi", "Toto" })] + [TestCase("Titi, B>, Titi, L>", new string[] { "Titi, B>", "Titi, L>" })] + public void ExtractParameters_ShouldSucceed(string input, string[] expected) + { + var res = StorageClass.ExtractParameters(input); + + Assert.That(res, Is.Not.Null); + Assert.That(res.Count, Is.EqualTo(expected.Length)); + + for (int i = 0; i < res.Count; i++) + { + Assert.That(res[i], Is.EqualTo(expected[i])); + } + } + + [Test] + public async Task GetAllStorageClasses_FromEveryVersionBeforeV14_ShouldSucceedAsync() + { + //var v14HexLast = await _substrateClient.State.GetMetaDataAsync(); + //var v14Hex = await _substrateClient.State.GetMetaDataAtAsync(Utils.HexToByteArray("0x7a233affefea10b90b3b5b2b37a6e9d8ef0029ef7add14ac4a56a3520b602927"), CancellationToken.None); + + var metadatas = new List + { + new MetadataVersionCompact(11, 1, "0xa15bf122d7a9b2cd07956c3af8f7eda61298aff0a3bd1193018df413d982a4ef"), + new MetadataVersionCompact(11, 5, "0x49a695416fcf55487adf9b9f5808619cee6618bd285a0119a78db60c5a7f3e13"), + new MetadataVersionCompact(11, 6, "0xdab56553594fd489adc085d2f83f3dcb65f5de5b1878325d5547fcf72b6dd6b3"), + new MetadataVersionCompact(11, 7, "0xaff11447ba47e853bcadb73920c0780013e581a0286831eadce0e48bf1db9942"), + new MetadataVersionCompact(11, 8, "0x3eef3df8dd7eedfe6baaed544dcef9c36ee7a142035bd6ae3fd7fd2969ad5933"), + new MetadataVersionCompact(11, 9, "0x773e8d8c1fdcbc94d79bb2cdcaf2f7fca5ff869d34c50171fe50ac1640f3e05c"), + new MetadataVersionCompact(11, 10, "0x209d24943d81e5910bfb7a57c8a5c3037c4a434af7c486a536d4f96a2160c9f5"), + new MetadataVersionCompact(11, 11, "0x3eef3df8dd7eedfe6baaed544dcef9c36ee7a142035bd6ae3fd7fd2969ad5933"), + new MetadataVersionCompact(11, 12, "0x4f61e8e6017cce5a10e2de7340061a037895411c19e7bc27f607953d8a56a943"), + new MetadataVersionCompact(11, 13, "0x7cf0e5e3671b02ca341ab439453e1a9ca6616c6e351bdfa8cbb6f5124a8224b8"), + new MetadataVersionCompact(11, 14, "0x349399f6b6481070047626f184d0152699bd02cb71040ef045adefc4f8daec5b"), + new MetadataVersionCompact(11, 15, "0xab6f40697e72d0a4ab0d105145b1ddc1bd8cead0bb1d6a13f4ac1a05508b1882"), + new MetadataVersionCompact(11, 16, "0x78433cba37c0cbc777faad71f27e21094defe24451033dd4d9a0443a1dc291b2"), + new MetadataVersionCompact(11, 17, "0x9a18fb9522d9688eadefb59bf7389fc0deaf219b080a462d6db5ee1d3ec79562"), + new MetadataVersionCompact(11, 18, "0xe187cabcfb9d30b66fae7257f3820b947c89b65e6e20f6ead2af4fd78926825f"), + new MetadataVersionCompact(11, 23, "0xd85988f4f7bc3594200fd5f8e738153260f2ba342b56d9bf4edabf9209c65ae0"), + new MetadataVersionCompact(11, 24, "0x8a0f28f399d3a85643413435e5a001c4ade7b8195eaf7e91f399549f192a56c7"), + new MetadataVersionCompact(12, 25, "0x0b40f111395a0871b1a59da4bd8587bcddf662e3e7b4ba06d8862a44dacf6256"), + new MetadataVersionCompact(12, 26, "0x780cd3091ef9cdc3a94dbcdfa7908d6120f5e037a1e534b4f18249c37005a533"), + new MetadataVersionCompact(12, 27, "0x26fa4c7e27aad01f5a8367aefece17f8c0940b75423628d52a8c07a203bd2458"), + new MetadataVersionCompact(12, 28, "0xd00026d2bdca30cd20f7c361544e9651041107a1fd35ea447d8dfabb5001960f"), + new MetadataVersionCompact(12, 29, "0x766a02e9abe37328ad0dee3a64aad557dd1bade9e9f27849a9cf5838c0e7e6bb"), + new MetadataVersionCompact(12, 30, "0x8a8a7aa9ac863359b2cc609b836e3ebd7086d775c31f8c177f183ed9ffa71fa5"), + new MetadataVersionCompact(13, 9050, "0x89f4608b568a05a89737bc826a32f8677f2646a5773312d7dee3a667458e5a98"), + new MetadataVersionCompact(13, 9080, "0xddca674d4e6e4935b1e5e81ed697f7ce027c2a9602523424bcc8dee3184e4863"), + new MetadataVersionCompact(13, 9090, "0x4b34bd42835a084af0f441c5986d216b18a85abb4d03762096692e6f06365203"), + new MetadataVersionCompact(13, 9100, "0x8192df1609d4478d1c1fcf5d39975596a8162d42d745c141c22148b0931708f2") + }; + + foreach (var metadata in metadatas) + { + var metadataHex = await _substrateClient.State.GetMetaDataAtAsync(Utils.HexToByteArray(metadata.BlockHash), CancellationToken.None); + var metadataVersion = _metadataService.GetMetadataVersion(metadataHex); + Assert.That(metadata.MajorVersion, Is.EqualTo((int)metadataVersion)); + + switch (metadata.MajorVersion) + { + case 9: + StoreV9(metadata, metadataHex); + break; + case 10: + StoreV10(metadata, metadataHex); + break; + case 11: + StoreV11(metadata, metadataHex); + break; + case 12: + StoreV12(metadata, metadataHex); + break; + case 13: + StoreV13(metadata, metadataHex); + break; + } + } + + var uniqueName = new Dictionary(); + metadatas[0].GetDistinctStorageClasses(uniqueName); + var classes = new List(); + var v14Classed = BuildV14ClassesDic(v14); + + foreach (var searchType in classes) + { + var index = FindInV14(v14, searchType); + + var flattenClasses = metadatas.SelectMany(x => x.StorageClasses).Where(x => x.ClassNameMapped.Equals(searchType, StringComparison.InvariantCultureIgnoreCase)).ToList(); + if (index is not null) + { + flattenClasses.ForEach(x => x.SetToFoundInV14(index.Value)); + } + } + + var flatten = metadatas.SelectMany(x => x.Flatten()).ToList(); + var flattenHuman = string.Join("\n", flatten); + + Assert.Pass(); + } + + [Test] + public async Task SearchInV14Async() + { + var v14Hex = await _substrateClient.State.GetMetaDataAtAsync(Utils.HexToByteArray("0x7a233affefea10b90b3b5b2b37a6e9d8ef0029ef7add14ac4a56a3520b602927"), CancellationToken.None); + var v14 = new MetadataV14(v14Hex); + + List searchTypes = ["BlockNumber", "AccountId", "u32", "TaskAddress", "Option>", "DispatchResult", "AccountIndex", "Balance", "EraIndex", "SessionIndex", "ElectionCompute", "Kind", "OpaqueTimeSlot", "bool", "AuthorityList", "AuthorityId", "DispatchInfo", "DispatchError"]; + + //var t1 = FindInV14(v14, "AccountId"); + + foreach (var searchType in searchTypes) + { + var lookupIndex = FindInV14(v14, searchType); + } + + } + + public void AddDic(Dictionary dic, string key, int index) + { + key = StorageClass.HarmonizeTypeName(key); + + if (!dic.ContainsKey(key)) + { + dic.Add(key, index); + } + } + + public void LoopType(Dictionary dic, int index, MetadataV14 metadataV14) + { + var ty = metadataV14.RuntimeMetadataData.Lookup.Value[index].Ty; + + if (ty.TypeDef.Value2 is BaseEnum typeDefPrimitive) + { + AddDic(dic, typeDefPrimitive.Value.ToString(), index); + } + else if (ty.TypeDef.Value2 is TypeDefVariant variant) + { + foreach (var field in variant.TypeParam.Value.SelectMany(x => x.VariantFields.Value)) + { + LoopType(dic, field.FieldTy.Value, metadataV14); + //AddDic(dic, field.FieldTypeName.Value.Value, field.FieldTy.Value); + } + } + else if (ty.TypeDef.Value2 is TypeDefComposite composite) + { + AddDic(dic, ty.Path.Value[^1].Value, index); + + foreach (var field in composite.Fields.Value) + { + LoopType(dic, field.FieldTy.Value, metadataV14); + //AddDic(dic, field.FieldTypeName.Value.Value, field.FieldTy.Value); + } + } + else if (ty.TypeDef.Value2 is TypeDefArray array) + { + LoopType(dic, array.ElemType.Value, metadataV14); + } + else if (ty.TypeDef.Value2 is TypeDefSequence sequence) + { + LoopType(dic, sequence.ElemType.Value, metadataV14); + } + else if (ty.TypeDef.Value2 is TypeDefTuple tuple) + { + foreach (var field in tuple.Fields.Value) + { + LoopType(dic, field.Value, metadataV14); + } + } + else if (ty.TypeDef.Value2 is TypeDefCompact compact) + { + LoopType(dic, compact.ElemType.Value, metadataV14); + } + else + { + + } + } + + public Dictionary BuildV14ClassesDic(MetadataV14 metadataV14) + { + Dictionary dic = new Dictionary(); + var modules = metadataV14.RuntimeMetadataData.Modules.Value; + + foreach (var module in modules) + { + var storage = module.Storage.Value; + if (storage == null) + continue; + + foreach (var entry in storage.Entries.Value) + { + //AddDic(dic, entry.Name.Value, ((CompactIntegerType)entry.StorageType.Value2).Value); + + if (entry.StorageType.Value == StorageType.Type.Plain) + { + var storagePlainIndex = entry.StorageType.Value2 as TType ?? throw new InvalidOperationException(); + LoopType(dic, storagePlainIndex.Value, metadataV14); + } + else if (entry.StorageType.Value == StorageType.Type.Map) + { + var storageMap = entry.StorageType.Value2 as StorageEntryTypeMapV14 ?? throw new InvalidOperationException(); + + var keyString = WriteType(storageMap.Key.Value); + var valueString = WriteType(storageMap.Value.Value); + + LoopType(dic, storageMap.Key.Value, metadataV14); + LoopType(dic, storageMap.Value.Value, metadataV14); + } + else if (entry.StorageType.Value == StorageType.Type.DoubleMap) + { + throw new InvalidOperationException(); + } + else if (entry.StorageType.Value == StorageType.Type.NMap) + { + throw new InvalidOperationException(); + } + + } + + if (module.Events.OptionFlag) + { + LoopType(dic, module.Events.Value.ElemType.Value, metadataV14); + } + + foreach (var constant in module.Constants.Value) + { + LoopType(dic, constant.ConstantType.Value, metadataV14); + } + } + + return dic; + } + + public int? FindInV14(MetadataV14 metadataV14, string storageClass) + { + var modules = metadataV14.RuntimeMetadataData.Modules.Value; + + foreach (var module in modules) + { + var storage = module.Storage.Value; + if (storage == null) + { + continue; + } + + foreach (var entry in storage.Entries.Value) + { + if (entry.Name.Value == storageClass) + { + return ((CompactIntegerType)entry.StorageType.Value2).Value; + } + + if (entry.StorageType.Value == StorageType.Type.Plain) + { + var storagePlainIndex = entry.StorageType.Value2 as TType ?? throw new InvalidOperationException(); + var typeDef = metadataV14.RuntimeMetadataData.Lookup.Value[storagePlainIndex.Value].Ty.TypeDef; + var storagePlainName = ""; + if (typeDef.Value2 is BaseEnum typeDefPrimitive) + { + storagePlainName = typeDefPrimitive.Value.ToString(); + } + else + { + + } + + if (StorageClass.WriteStoragePlain(storagePlainName).Equals(storageClass, StringComparison.CurrentCultureIgnoreCase)) + { + return ((CompactIntegerType)entry.StorageType.Value2).Value; + } + } + else if (entry.StorageType.Value == StorageType.Type.Map) + { + var storageMap = entry.StorageType.Value2 as StorageEntryTypeMapV14 ?? throw new InvalidOperationException(); + + if (StorageClass.WriteStorageKey(storageMap, metadataV14).Equals(storageClass, StringComparison.CurrentCultureIgnoreCase)) + { + return storageMap.Key.Value; + } + if (StorageClass.WriteStorageValue(storageMap, metadataV14).Equals(storageClass, StringComparison.CurrentCultureIgnoreCase)) + { + return storageMap.Value.Value; + } + } + else if (entry.StorageType.Value == StorageType.Type.DoubleMap) + { + throw new InvalidOperationException(); + } + else if (entry.StorageType.Value == StorageType.Type.NMap) + { + throw new InvalidOperationException(); + } + + + } + + if (module.Events.OptionFlag) + { + var events = metadataV14.RuntimeMetadataData.Lookup.Value[(int)module.Events.Value.ElemType.Value]; + if (events.Ty.TypeDef.Value2 is TypeDefVariant variant) + { + foreach (var field in variant.TypeParam.Value.SelectMany(x => x.VariantFields.Value)) + { + var fieldValue = StorageClass.HarmonizeTypeName(field.FieldTypeName.Value.Value); + if (fieldValue.Equals(storageClass, StringComparison.CurrentCultureIgnoreCase)) + { + return field.FieldTy.Value; + } + } + } + } + + foreach (var constant in module.Constants.Value) + { + var associatedLookup = metadataV14.RuntimeMetadataData.Lookup.Value[constant.ConstantType.Value]; + + if (associatedLookup.Ty.Path is not null && + associatedLookup.Ty.Path.Value.Length > 0 && + associatedLookup.Ty.Path.Value.Last().Value.Equals(storageClass, StringComparison.CurrentCultureIgnoreCase)) + { + return constant.ConstantType.Value; + } + } + } + + // Last chance bro + return StorageClass.TryHardBinding(storageClass); + } + + [Test] + public async Task DebugAsync() + { + var v14Hex = await _substrateClient.State.GetMetaDataAtAsync(Utils.HexToByteArray("0x7a233affefea10b90b3b5b2b37a6e9d8ef0029ef7add14ac4a56a3520b602927"), CancellationToken.None); + var v14 = new MetadataV14(v14Hex); + + var test1 = FindInV14(v14, "WonDeploy"); + //var test2 = FindInV14(v14, "LockIdentifier"); + + // Constants + var moduleName = "Slots"; + //var constantName = "BlockLength"; + + var moduleFound = v14.RuntimeMetadataData.Modules.Value.Single(x => x.Name.Value.Equals(moduleName)); + //var constantFound = moduleFound.Constants.Value.Single(x => x.Name.Value.Equals(constantName)); + //var constant = v14.RuntimeMetadataData.Lookup.Value.First(x => x.Id.Value == constantFound.ConstantType.Value); + + // Events + var eventName = "LeasePeriodOf"; + var dico = (v14.RuntimeMetadataData.Lookup.Value.Single(x => x.Id.Value == moduleFound.Events.Value.ElemType.Value).Ty.TypeDef.Value2 as TypeDefVariant).TypeParam.Value.Single(x => x.Name.Value.Equals(eventName, StringComparison.CurrentCultureIgnoreCase)); + var x = 0; + } + + private static void StoreV9(MetadataVersionCompact metadata, string metadataHex) + { + var currentMetadata = new MetadataV9(metadataHex); + var modules = currentMetadata.RuntimeMetadataData.Modules.Value; + + foreach (var module in modules) + { + // Get all storage classes from events + if (module.Events.OptionFlag) + { + var vEvents = module.Events.Value.Value; + foreach (var vEvent in vEvents) + { + foreach (var args in vEvent.Args.Value.Select(y => y.Value)) + { + metadata.StorageClasses.Add(new StorageClass(StorageClass.StorageType.Event, module.Name.Value, vEvent.Name.Value, args)); + } + } + } + + var distinctStorageConstants = module.Constants.Value.Select(x => new { constName = x.Name.Value, constType = StorageClass.HarmonizeTypeName(x.ConstantType.Value) }).Distinct().ToList(); + + foreach (var distinctStorageConstant in distinctStorageConstants) + { + metadata.StorageClasses.Add(new StorageClass(StorageClass.StorageType.Constant, module.Name.Value, distinctStorageConstant.constName, distinctStorageConstant.constType)); + } + + if (module.Storage.OptionFlag) + { + var distinctStorage = module.Storage.Value.Entries.Value.ToList(); + + foreach (var storage in distinctStorage) + { + if (storage.StorageType.Value == StorageType.TypeV9.Plain) + { + var storagePlain = storage.StorageType.Value2 as Str ?? throw new InvalidOperationException(); + + metadata.StorageClasses.Add(new StorageClass(StorageClass.StorageType.Storage, module.Name.Value, storage.Name.Value, StorageClass.WriteStoragePlain(storagePlain))); + } + else if (storage.StorageType.Value == StorageType.TypeV9.Map) + { + var storageMap = storage.StorageType.Value2 as StorageEntryTypeMapV9 ?? throw new InvalidOperationException(); + + metadata.StorageClasses.Add(new StorageClass(StorageClass.StorageType.Storage, module.Name.Value, storage.Name.Value, StorageClass.WriteStorageMap(storageMap))); + } + else if (storage.StorageType.Value == StorageType.TypeV9.DoubleMap) + { + var storageDoubleMap = storage.StorageType.Value2 as StorageEntryTypeDoubleMapV9 ?? throw new InvalidOperationException(); + metadata.StorageClasses.Add(new StorageClass(StorageClass.StorageType.Storage, module.Name.Value, storage.Name.Value, StorageClass.WriteStorageDoubleMap(storageDoubleMap))); + } + } + } + } + } + + private static void StoreV10(MetadataVersionCompact metadata, string metadataHex) + { + var currentMetadata = new MetadataV10(metadataHex); + var modules = currentMetadata.RuntimeMetadataData.Modules.Value; + + foreach (var module in modules) + { + // Get all storage classes from events + if (module.Events.OptionFlag) + { + var vEvents = module.Events.Value.Value; + foreach (var vEvent in vEvents) + { + foreach (var args in vEvent.Args.Value.Select(y => y.Value)) + { + metadata.StorageClasses.Add(new StorageClass(StorageClass.StorageType.Event, module.Name.Value, vEvent.Name.Value, args)); + } + } + } + + var distinctStorageConstants = module.Constants.Value.Select(x => new { constName = x.Name.Value, constType = StorageClass.HarmonizeTypeName(x.ConstantType.Value) }).Distinct().ToList(); + + foreach (var distinctStorageConstant in distinctStorageConstants) + { + metadata.StorageClasses.Add(new StorageClass(StorageClass.StorageType.Constant, module.Name.Value, distinctStorageConstant.constName, distinctStorageConstant.constType)); + } + + if (module.Storage.OptionFlag) + { + var distinctStorage = module.Storage.Value.Entries.Value.ToList(); + + foreach (var storage in distinctStorage) + { + if (storage.StorageType.Value == StorageType.TypeV9.Plain) + { + var storagePlain = storage.StorageType.Value2 as Str ?? throw new InvalidOperationException(); + + metadata.StorageClasses.Add(new StorageClass(StorageClass.StorageType.Storage, module.Name.Value, storage.Name.Value, StorageClass.WriteStoragePlain(storagePlain))); + } + else if (storage.StorageType.Value == StorageType.TypeV9.Map) + { + var storageMap = storage.StorageType.Value2 as StorageEntryTypeMapV10 ?? throw new InvalidOperationException(); + + metadata.StorageClasses.Add(new StorageClass(StorageClass.StorageType.Storage, module.Name.Value, storage.Name.Value, StorageClass.WriteStorageMap(storageMap))); + } + else if (storage.StorageType.Value == StorageType.TypeV9.DoubleMap) + { + var storageDoubleMap = storage.StorageType.Value2 as StorageEntryTypeDoubleMapV10 ?? throw new InvalidOperationException(); + metadata.StorageClasses.Add(new StorageClass(StorageClass.StorageType.Storage, module.Name.Value, storage.Name.Value, StorageClass.WriteStorageDoubleMap(storageDoubleMap))); + } + } + } + } + } + + private static void StoreV11(MetadataVersionCompact metadata, string metadataHex) + { + var currentMetadata = new MetadataV11(metadataHex); + var modules = currentMetadata.RuntimeMetadataData.Modules.Value; + + foreach (var module in modules) + { + // Get all storage classes from events + if (module.Events.OptionFlag) + { + var vEvents = module.Events.Value.Value; + foreach (var vEvent in vEvents) + { + foreach (var args in vEvent.Args.Value.Select(y => y.Value)) + { + metadata.StorageClasses.Add(new StorageClass(StorageClass.StorageType.Event, module.Name.Value, vEvent.Name.Value, StorageClass.HarmonizeTypeName(args))); + } + } + } + + var distinctStorageConstants = module.Constants.Value.Select(x => new { constName = x.Name.Value, constType = StorageClass.HarmonizeTypeName(x.ConstantType.Value) }).Distinct().ToList(); + + foreach (var distinctStorageConstant in distinctStorageConstants) + { + metadata.StorageClasses.Add(new StorageClass(StorageClass.StorageType.Constant, module.Name.Value, distinctStorageConstant.constName, distinctStorageConstant.constType)); + } + + if (module.Storage.OptionFlag) + { + var distinctStorage = module.Storage.Value.Entries.Value.ToList(); + + foreach (var storage in distinctStorage) + { + if (storage.StorageType.Value == StorageType.TypeV9.Plain) + { + var storagePlain = storage.StorageType.Value2 as Str ?? throw new InvalidOperationException(); + + metadata.StorageClasses.Add(new StorageClass(StorageClass.StorageType.Storage, module.Name.Value, storage.Name.Value, StorageClass.WriteStoragePlain(storagePlain))); + } + else if (storage.StorageType.Value == StorageType.TypeV9.Map) + { + var storageMap = storage.StorageType.Value2 as StorageEntryTypeMapV11 ?? throw new InvalidOperationException(); + + metadata.StorageClasses.Add(new StorageClass(StorageClass.StorageType.Storage, module.Name.Value, storage.Name.Value, StorageClass.WriteStorageMap(storageMap))); + } + else if (storage.StorageType.Value == StorageType.TypeV9.DoubleMap) + { + var storageDoubleMap = storage.StorageType.Value2 as StorageEntryTypeDoubleMapV11 ?? throw new InvalidOperationException(); + metadata.StorageClasses.Add(new StorageClass(StorageClass.StorageType.Storage, module.Name.Value, storage.Name.Value, StorageClass.WriteStorageDoubleMap(storageDoubleMap))); + } + } + } + } + } + + private static void StoreV12(MetadataVersionCompact metadata, string metadataHex) + { + var currentMetadata = new MetadataV12(metadataHex); + var modules = currentMetadata.RuntimeMetadataData.Modules.Value; + + foreach (var module in modules) + { + // Get all storage classes from events + if (module.Events.OptionFlag) + { + var vEvents = module.Events.Value.Value; + foreach (var vEvent in vEvents) + { + foreach (var args in vEvent.Args.Value.Select(y => y.Value)) + { + metadata.StorageClasses.Add(new StorageClass(StorageClass.StorageType.Event, module.Name.Value, vEvent.Name.Value, StorageClass.HarmonizeTypeName(args))); + } + } + } + + var distinctStorageConstants = module.Constants.Value.Select(x => new { constName = x.Name.Value, constType = StorageClass.HarmonizeTypeName(x.ConstantType.Value) }).Distinct().ToList(); + + foreach (var distinctStorageConstant in distinctStorageConstants) + { + metadata.StorageClasses.Add(new StorageClass(StorageClass.StorageType.Constant, module.Name.Value, distinctStorageConstant.constName, distinctStorageConstant.constType)); + } + + if (module.Storage.OptionFlag) + { + var distinctStorage = module.Storage.Value.Entries.Value.ToList(); + + foreach (var storage in distinctStorage) + { + if (storage.StorageType.Value == StorageType.TypeV9.Plain) + { + var storagePlain = storage.StorageType.Value2 as Str ?? throw new InvalidOperationException(); + + metadata.StorageClasses.Add(new StorageClass(StorageClass.StorageType.Storage, module.Name.Value, storage.Name.Value, StorageClass.WriteStoragePlain(storagePlain))); + } + else if (storage.StorageType.Value == StorageType.TypeV9.Map) + { + var storageMap = storage.StorageType.Value2 as StorageEntryTypeMapV11 ?? throw new InvalidOperationException(); + + metadata.StorageClasses.Add(new StorageClass(StorageClass.StorageType.Storage, module.Name.Value, storage.Name.Value, StorageClass.WriteStorageMap(storageMap))); + } + else if (storage.StorageType.Value == StorageType.TypeV9.DoubleMap) + { + var storageDoubleMap = storage.StorageType.Value2 as StorageEntryTypeDoubleMapV11 ?? throw new InvalidOperationException(); + metadata.StorageClasses.Add(new StorageClass(StorageClass.StorageType.Storage, module.Name.Value, storage.Name.Value, StorageClass.WriteStorageDoubleMap(storageDoubleMap))); + } + } + } + } + } + + private static void StoreV13(MetadataVersionCompact metadata, string metadataHex) + { + var currentMetadata = new MetadataV13(metadataHex); + var modules = currentMetadata.RuntimeMetadataData.Modules.Value; + + foreach (var module in modules) + { + // Get all storage classes from events + if (module.Events.OptionFlag) + { + var vEvents = module.Events.Value.Value; + foreach (var vEvent in vEvents) + { + foreach (var args in vEvent.Args.Value.Select(y => y.Value)) + { + metadata.StorageClasses.Add(new StorageClass(StorageClass.StorageType.Event, module.Name.Value, vEvent.Name.Value, StorageClass.HarmonizeTypeName(args))); + } + } + } + + var distinctStorageConstants = module.Constants.Value.Select(x => new { constName = x.Name.Value, constType = StorageClass.HarmonizeTypeName(x.ConstantType.Value) }).Distinct().ToList(); + + foreach (var distinctStorageConstant in distinctStorageConstants) + { + metadata.StorageClasses.Add(new StorageClass(StorageClass.StorageType.Constant, module.Name.Value, distinctStorageConstant.constName, distinctStorageConstant.constType)); + } + + if (module.Storage.OptionFlag) + { + var distinctStorage = module.Storage.Value.Entries.Value.ToList(); + + foreach (var storage in distinctStorage) + { + if (storage.StorageType.Value == StorageType.Type.Plain) + { + var storagePlain = storage.StorageType.Value2 as Str ?? throw new InvalidOperationException(); + + metadata.StorageClasses.Add(new StorageClass(StorageClass.StorageType.Storage, module.Name.Value, storage.Name.Value, StorageClass.WriteStoragePlain(storagePlain))); + } + else if (storage.StorageType.Value == StorageType.Type.Map) + { + var storageMap = storage.StorageType.Value2 as StorageEntryTypeMapV11 ?? throw new InvalidOperationException(); + + metadata.StorageClasses.Add(new StorageClass(StorageClass.StorageType.Storage, module.Name.Value, storage.Name.Value, StorageClass.WriteStorageMap(storageMap))); + } + else if (storage.StorageType.Value == StorageType.Type.DoubleMap) + { + var storageDoubleMap = storage.StorageType.Value2 as StorageEntryTypeDoubleMapV11 ?? throw new InvalidOperationException(); + metadata.StorageClasses.Add(new StorageClass(StorageClass.StorageType.Storage, module.Name.Value, storage.Name.Value, StorageClass.WriteStorageDoubleMap(storageDoubleMap))); + } + else if (storage.StorageType.Value == StorageType.Type.NMap) + { + var storageNMap = storage.StorageType.Value2 as StorageEntryTypeNMapV13 ?? throw new InvalidOperationException(); + metadata.StorageClasses.Add(new StorageClass(StorageClass.StorageType.Storage, module.Name.Value, storage.Name.Value, StorageClass.WriteStorageNMap(storageNMap))); + } + } + } + } + } + + public string WriteType(uint typeId) + { + var detailType = MetadataNetApi.NodeMetadata.Types[typeId]; //GetPalletType(typeId); + + if (detailType is NodeTypeVariant detailVariant) + return WriteNodeVariant(detailVariant); + else if (detailType is NodeTypeCompact detailCompact) + return WriteNodeCompact(detailCompact); + else if (detailType is NodeTypePrimitive detailPrimitive) + return WriteNodePrimitive(detailPrimitive); + else if (detailType is NodeTypeComposite detailComposite) + return WriteNodeComposite(detailComposite); + else if (detailType is NodeTypeSequence detailSequence) + return WriteNodeSequence(detailSequence); + else if (detailType is NodeTypeTuple detailTuple) + return WriteNodeTuple(detailTuple); + else if (detailType is NodeTypeArray detailArray) + return WriteNodeArray(detailArray); + else + throw new NotSupportedException("Type not supported yet..."); // BitSequence ?? + } + + public string WriteNodeVariant(NodeTypeVariant nodeType) + { + string display = string.Join(":", nodeType.Path); + if (nodeType.TypeParams != null && nodeType.TypeParams.Length > 0) + { + display = $"{display}<{string.Join(",", nodeType.TypeParams.Where(p => p.TypeId != null).Select(p => WriteType((uint)p.TypeId)))}>"; + } + + return display; + } + + public string WriteNodeCompact(NodeTypeCompact nodeType) + { + return $"{nodeType.TypeDef}<{WriteType(nodeType.TypeId)}>"; + } + + public string WriteNodePrimitive(NodeTypePrimitive nodeType) + { + return nodeType.Primitive.ToString(); + } + + public string WriteNodeComposite(NodeTypeComposite nodeType) + { + var display = string.Join(":", nodeType.Path); + if (nodeType.TypeParams != null && nodeType.TypeParams.Length > 0) + { + display = $"{display}<{string.Join(",", nodeType.TypeParams.Select(x => x.Name))}>"; + } + return display; + } + + public string WriteNodeSequence(NodeTypeSequence nodeType) + { + return $"Vec<{WriteType(nodeType.TypeId)}>"; + } + + public string WriteNodeTuple(NodeTypeTuple nodeType) + { + return $"({string.Join(",", nodeType.TypeIds.Select(WriteType))})"; + } + + public string WriteNodeArray(NodeTypeArray nodeType) + { + return $"{WriteType(nodeType.TypeId)}[{nodeType.Length}]"; + } + } +} diff --git a/Substrate.NET.Metadata.Conversion.Tests/UnitTest1.cs b/Substrate.NET.Metadata.Conversion.Tests/UnitTest1.cs new file mode 100644 index 0000000..c1001fb --- /dev/null +++ b/Substrate.NET.Metadata.Conversion.Tests/UnitTest1.cs @@ -0,0 +1,16 @@ +namespace Substrate.NET.Metadata.Conversion.Tests +{ + public class Tests + { + [SetUp] + public void Setup() + { + } + + [Test] + public void Test1() + { + Assert.Pass(); + } + } +} \ No newline at end of file diff --git a/Substrate.NET.Metadata.Conversion/Class1.cs b/Substrate.NET.Metadata.Conversion/Class1.cs new file mode 100644 index 0000000..1482eee --- /dev/null +++ b/Substrate.NET.Metadata.Conversion/Class1.cs @@ -0,0 +1,7 @@ +namespace Substrate.NET.Metadata.Conversion +{ + public class Class1 + { + + } +} diff --git a/Substrate.NET.Metadata.Conversion/ConversionV14Helper.cs b/Substrate.NET.Metadata.Conversion/ConversionV14Helper.cs new file mode 100644 index 0000000..c8cb211 --- /dev/null +++ b/Substrate.NET.Metadata.Conversion/ConversionV14Helper.cs @@ -0,0 +1,112 @@ +using Ardalis.GuardClauses; +using Substrate.NET.Metadata.Base; +using Substrate.NET.Metadata.V14; +using Substrate.NetApi.Model.Types.Base; +using Substrate.NetApi.Model.Types.Primitive; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Text.RegularExpressions; +using System.Threading.Tasks; + +namespace Substrate.NET.Metadata.Conversion +{ + public static class ConversionV14Helper + { + #region V14 metadata + public const string metadataV14_9110 = "0x6d6574610e1109000c1c73705f636f72651863727970746f2c4163636f756e7449643332000004000401205b75383b2033325d0000040000032000000008000800000503000c08306672616d655f73797374656d2c4163636f756e74496e666f0814496e64657801102c4163636f756e74446174610114001401146e6f6e6365100114496e646578000124636f6e73756d657273100120526566436f756e7400012470726f766964657273100120526566436f756e7400012c73756666696369656e7473100120526566436f756e740001106461746114012c4163636f756e7444617461000010000005050014083c70616c6c65745f62616c616e6365732c4163636f756e7444617461041c42616c616e63650118001001106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500012c6d6973635f66726f7a656e18011c42616c616e63650001286665655f66726f7a656e18011c42616c616e636500001800000507001c0c346672616d655f737570706f72741c77656967687473405065724469737061746368436c6173730404540120000c01186e6f726d616c2001045400012c6f7065726174696f6e616c200104540001246d616e6461746f727920010454000020000005060024083c7072696d69746976655f74797065731048323536000004000401205b75383b2033325d00002800000208002c102873705f72756e74696d651c67656e6572696318646967657374184469676573740410486173680124000401106c6f67733001545665633c4469676573744974656d3c486173683e3e000030000002340034102873705f72756e74696d651c67656e6572696318646967657374284469676573744974656d0410486173680124011c3c4368616e67657354726965526f6f740400240110486173680002002850726552756e74696d650800380144436f6e73656e737573456e67696e654964000028011c5665633c75383e00060024436f6e73656e7375730800380144436f6e73656e737573456e67696e654964000028011c5665633c75383e000400105365616c0800380144436f6e73656e737573456e67696e654964000028011c5665633c75383e000500444368616e676573547269655369676e616c04003c01444368616e676573547269655369676e616c000700144f74686572040028011c5665633c75383e0000006452756e74696d65456e7669726f6e6d656e745570646174656400080000380000030400000008003c102873705f72756e74696d651c67656e6572696318646967657374444368616e676573547269655369676e616c000104404e6577436f6e66696775726174696f6e04004001804f7074696f6e3c4368616e67657354726965436f6e66696775726174696f6e3e000000004004184f7074696f6e04045401440108104e6f6e6500000010536f6d650400440000010000440c1c73705f636f7265306368616e6765735f74726965604368616e67657354726965436f6e66696775726174696f6e000008013c6469676573745f696e74657276616c10010c7533320001346469676573745f6c6576656c7310010c7533320000480000024c004c08306672616d655f73797374656d2c4576656e745265636f7264080445015004540124000c011470686173659d01011450686173650001146576656e7450010445000118746f70696373a10101185665633c543e0000500840706f6c6b61646f745f72756e74696d65144576656e740001801853797374656d04005401706672616d655f73797374656d3a3a4576656e743c52756e74696d653e000000245363686564756c6572040070018070616c6c65745f7363686564756c65723a3a4576656e743c52756e74696d653e0001001c496e6469636573040084017870616c6c65745f696e64696365733a3a4576656e743c52756e74696d653e0004002042616c616e636573040088017c70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d653e0005001c5374616b696e67040090017870616c6c65745f7374616b696e673a3a4576656e743c52756e74696d653e000700204f6666656e636573040094015870616c6c65745f6f6666656e6365733a3a4576656e740008001c53657373696f6e04009c015470616c6c65745f73657373696f6e3a3a4576656e740009001c4772616e6470610400a0015470616c6c65745f6772616e6470613a3a4576656e74000b0020496d4f6e6c696e650400b4018070616c6c65745f696d5f6f6e6c696e653a3a4576656e743c52756e74696d653e000c002444656d6f63726163790400d8018070616c6c65745f64656d6f63726163793a3a4576656e743c52756e74696d653e000e001c436f756e63696c0400e401fc70616c6c65745f636f6c6c6563746976653a3a4576656e743c52756e74696d652c2070616c6c65745f636f6c6c6563746976653a3a496e7374616e6365313e000f0048546563686e6963616c436f6d6d69747465650400ec01fc70616c6c65745f636f6c6c6563746976653a3a4576656e743c52756e74696d652c2070616c6c65745f636f6c6c6563746976653a3a496e7374616e6365323e0010004050687261676d656e456c656374696f6e0400f001a470616c6c65745f656c656374696f6e735f70687261676d656e3a3a4576656e743c52756e74696d653e0011004c546563686e6963616c4d656d626572736869700400fc01fc70616c6c65745f6d656d626572736869703a3a4576656e743c52756e74696d652c2070616c6c65745f6d656d626572736869703a3a496e7374616e6365313e00120020547265617375727904000101017c70616c6c65745f74726561737572793a3a4576656e743c52756e74696d653e00130018436c61696d73040005010158636c61696d733a3a4576656e743c52756e74696d653e0018001c56657374696e6704001101017870616c6c65745f76657374696e673a3a4576656e743c52756e74696d653e0019001c5574696c69747904001501015470616c6c65745f7574696c6974793a3a4576656e74001a00204964656e7469747904001901017c70616c6c65745f6964656e746974793a3a4576656e743c52756e74696d653e001c001450726f787904001d01017070616c6c65745f70726f78793a3a4576656e743c52756e74696d653e001d00204d756c746973696704002901017c70616c6c65745f6d756c74697369673a3a4576656e743c52756e74696d653e001e0020426f756e7469657304003101017c70616c6c65745f626f756e746965733a3a4576656e743c52756e74696d653e002200105469707304003501016c70616c6c65745f746970733a3a4576656e743c52756e74696d653e00230068456c656374696f6e50726f76696465724d756c746950686173650400390101d070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173653a3a4576656e743c52756e74696d653e0024003450617261496e636c7573696f6e04004501019070617261636861696e735f696e636c7573696f6e3a3a4576656e743c52756e74696d653e00350014506172617304007501015c70617261636861696e735f70617261733a3a4576656e740038000c556d7004007901015470617261636861696e735f756d703a3a4576656e74003b001048726d7004008501017c70617261636861696e735f68726d703a3a4576656e743c52756e74696d653e003c002452656769737472617204008d01017c70617261735f7265676973747261723a3a4576656e743c52756e74696d653e00460014536c6f7473040091010154736c6f74733a3a4576656e743c52756e74696d653e0047002041756374696f6e7304009501016061756374696f6e733a3a4576656e743c52756e74696d653e0048002443726f77646c6f616e04009901016463726f77646c6f616e3a3a4576656e743c52756e74696d653e00490000540c306672616d655f73797374656d1870616c6c6574144576656e740404540001184045787472696e7369635375636365737304005801304469737061746368496e666f000004b4416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e205c5b696e666f5c5d3c45787472696e7369634661696c6564080064013444697370617463684572726f7200005801304469737061746368496e666f00010490416e2065787472696e736963206661696c65642e205c5b6572726f722c20696e666f5c5d2c436f64655570646174656400020450603a636f6465602077617320757064617465642e284e65774163636f756e740400000130543a3a4163636f756e7449640003047841206e6577205c5b6163636f756e745c5d2077617320637265617465642e344b696c6c65644163636f756e740400000130543a3a4163636f756e74496400040468416e205c5b6163636f756e745c5d20776173207265617065642e2052656d61726b65640800000130543a3a4163636f756e744964000024011c543a3a48617368000504d04f6e206f6e2d636861696e2072656d61726b2068617070656e65642e205c5b6f726967696e2c2072656d61726b5f686173685c5d04704576656e7420666f72207468652053797374656d2070616c6c65742e580c346672616d655f737570706f72741c77656967687473304469737061746368496e666f00000c0118776569676874200118576569676874000114636c6173735c01344469737061746368436c617373000120706179735f6665656001105061797300005c0c346672616d655f737570706f72741c77656967687473344469737061746368436c61737300010c184e6f726d616c0000002c4f7065726174696f6e616c000100244d616e6461746f727900020000600c346672616d655f737570706f72741c7765696768747310506179730001080c596573000000084e6f0001000064082873705f72756e74696d653444697370617463684572726f72000120144f746865720000003043616e6e6f744c6f6f6b7570000100244261644f726967696e000200184d6f64756c65080114696e64657808010875380001146572726f72080108753800030044436f6e73756d657252656d61696e696e670004002c4e6f50726f76696465727300050014546f6b656e0400680128546f6b656e4572726f720006002841726974686d6574696304006c013c41726974686d657469634572726f720007000068082873705f72756e74696d6528546f6b656e4572726f7200011c1c4e6f46756e647300000020576f756c644469650001003042656c6f774d696e696d756d0002003043616e6e6f7443726561746500030030556e6b6e6f776e41737365740004001846726f7a656e0005002c556e737570706f72746564000600006c082873705f72756e74696d653c41726974686d657469634572726f7200010c24556e646572666c6f77000000204f766572666c6f77000100384469766973696f6e42795a65726f00020000700c4070616c6c65745f7363686564756c65721870616c6c6574144576656e7404045400010c245363686564756c65640800100138543a3a426c6f636b4e756d626572000010010c753332000004905363686564756c656420736f6d65207461736b2e205c5b7768656e2c20696e6465785c5d2043616e63656c65640800100138543a3a426c6f636b4e756d626572000010010c7533320001048c43616e63656c656420736f6d65207461736b2e205c5b7768656e2c20696e6465785c5d28446973706174636865640c0074016c5461736b416464726573733c543a3a426c6f636b4e756d6265723e000078013c4f7074696f6e3c5665633c75383e3e00007c01384469737061746368526573756c74000204a84469737061746368656420736f6d65207461736b2e205c5b7461736b2c2069642c20726573756c745c5d04304576656e747320747970652e74000004081010007804184f7074696f6e04045401280108104e6f6e6500000010536f6d6504002800000100007c0418526573756c740804540180044501640108084f6b040080000000000c4572720400640000010000800000040000840c3870616c6c65745f696e64696365731870616c6c6574144576656e7404045400010c34496e64657841737369676e65640800000130543a3a4163636f756e744964000010013c543a3a4163636f756e74496e646578000004b041206163636f756e7420696e646578207761732061737369676e65642e205c5b696e6465782c2077686f5c5d28496e6465784672656564040010013c543a3a4163636f756e74496e646578000104e441206163636f756e7420696e64657820686173206265656e2066726565642075702028756e61737369676e6564292e205c5b696e6465785c5d2c496e64657846726f7a656e080010013c543a3a4163636f756e74496e6465780000000130543a3a4163636f756e744964000204250141206163636f756e7420696e64657820686173206265656e2066726f7a656e20746f206974732063757272656e74206163636f756e742049442e205c5b696e6465782c2077686f5c5d04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a090909880c3c70616c6c65745f62616c616e6365731870616c6c6574144576656e740804540004490001201c456e646f7765640800000130543a3a4163636f756e7449640000180128543a3a42616c616e63650000042101416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e205c5b6163636f756e742c20667265655f62616c616e63655c5d20447573744c6f73740800000130543a3a4163636f756e7449640000180128543a3a42616c616e63650001083d01416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742ccc726573756c74696e6720696e20616e206f75747269676874206c6f73732e205c5b6163636f756e742c2062616c616e63655c5d205472616e736665720c00000130543a3a4163636f756e7449640000000130543a3a4163636f756e7449640000180128543a3a42616c616e63650002049c5472616e73666572207375636365656465642e205c5b66726f6d2c20746f2c2076616c75655c5d2842616c616e63655365740c00000130543a3a4163636f756e7449640000180128543a3a42616c616e63650000180128543a3a42616c616e6365000304c8412062616c616e6365207761732073657420627920726f6f742e205c5b77686f2c20667265652c2072657365727665645c5d1c4465706f7369740800000130543a3a4163636f756e7449640000180128543a3a42616c616e63650004041d01536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e205c5b77686f2c206465706f7369745c5d2052657365727665640800000130543a3a4163636f756e7449640000180128543a3a42616c616e63650005041d01536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e205c5b77686f2c2076616c75655c5d28556e72657365727665640800000130543a3a4163636f756e7449640000180128543a3a42616c616e63650006042501536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e205c5b77686f2c2076616c75655c5d485265736572766552657061747269617465641000000130543a3a4163636f756e7449640000000130543a3a4163636f756e7449640000180128543a3a42616c616e636500008c011853746174757300070c4d01536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742ed846696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652ea45c5b66726f6d2c20746f2c2062616c616e63652c2064657374696e6174696f6e5f7374617475735c5d04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a0909098c14346672616d655f737570706f72741874726169747318746f6b656e73106d6973633442616c616e636553746174757300010810467265650000002052657365727665640001000090103870616c6c65745f7374616b696e671870616c6c65741870616c6c6574144576656e740404540001301c457261506169640c00100120457261496e646578000018013042616c616e63654f663c543e000018013042616c616e63654f663c543e00000c550154686520657261207061796f757420686173206265656e207365743b207468652066697273742062616c616e6365206973207468652076616c696461746f722d7061796f75743b20746865207365636f6e64206973c07468652072656d61696e6465722066726f6d20746865206d6178696d756d20616d6f756e74206f66207265776172642ea85c5b6572615f696e6465782c2076616c696461746f725f7061796f75742c2072656d61696e6465725c5d2052657761726465640800000130543a3a4163636f756e744964000018013042616c616e63654f663c543e0001040501546865206e6f6d696e61746f7220686173206265656e207265776172646564206279207468697320616d6f756e742e205c5b73746173682c20616d6f756e745c5d1c536c61736865640800000130543a3a4163636f756e744964000018013042616c616e63654f663c543e00020821014f6e652076616c696461746f722028616e6420697473206e6f6d696e61746f72732920686173206265656e20736c61736865642062792074686520676976656e20616d6f756e742e545c5b76616c696461746f722c20616d6f756e745c5d684f6c64536c617368696e675265706f7274446973636172646564040010013053657373696f6e496e6465780003081901416e206f6c6420736c617368696e67207265706f72742066726f6d2061207072696f72206572612077617320646973636172646564206265636175736520697420636f756c648c6e6f742062652070726f6365737365642e205c5b73657373696f6e5f696e6465785c5d385374616b657273456c65637465640004048441206e657720736574206f66207374616b6572732077617320656c65637465642e18426f6e6465640800000130543a3a4163636f756e744964000018013042616c616e63654f663c543e000510d0416e206163636f756e742068617320626f6e646564207468697320616d6f756e742e205c5b73746173682c20616d6f756e745c5d004d014e4f54453a2054686973206576656e74206973206f6e6c7920656d6974746564207768656e2066756e64732061726520626f6e64656420766961206120646973706174636861626c652e204e6f7461626c792c210169742077696c6c206e6f7420626520656d697474656420666f72207374616b696e672072657761726473207768656e20746865792061726520616464656420746f207374616b652e20556e626f6e6465640800000130543a3a4163636f756e744964000018013042616c616e63654f663c543e000604d8416e206163636f756e742068617320756e626f6e646564207468697320616d6f756e742e205c5b73746173682c20616d6f756e745c5d2457697468647261776e0800000130543a3a4163636f756e744964000018013042616c616e63654f663c543e0007085901416e206163636f756e74206861732063616c6c6564206077697468647261775f756e626f6e6465646020616e642072656d6f76656420756e626f6e64696e67206368756e6b7320776f727468206042616c616e636560ac66726f6d2074686520756e6c6f636b696e672071756575652e205c5b73746173682c20616d6f756e745c5d184b69636b65640800000130543a3a4163636f756e7449640000000130543a3a4163636f756e744964000804090141206e6f6d696e61746f7220686173206265656e206b69636b65642066726f6d20612076616c696461746f722e205c5b6e6f6d696e61746f722c2073746173685c5d545374616b696e67456c656374696f6e4661696c6564000904ac54686520656c656374696f6e206661696c65642e204e6f206e65772065726120697320706c616e6e65642e1c4368696c6c65640400000130543a3a4163636f756e744964000a082101416e206163636f756e74206861732073746f707065642070617274696369706174696e672061732065697468657220612076616c696461746f72206f72206e6f6d696e61746f722e245c5b73746173685c5d345061796f7574537461727465640800100120457261496e6465780000000130543a3a4163636f756e744964000b041501546865207374616b657273272072657761726473206172652067657474696e6720706169642e205c5b6572615f696e6465782c2076616c696461746f725f73746173685c5d04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a090909940c3c70616c6c65745f6f6666656e6365731870616c6c6574144576656e740001041c4f6666656e636508009801104b696e6400002801384f706171756554696d65536c6f7400000c5101546865726520697320616e206f6666656e6365207265706f72746564206f662074686520676976656e20606b696e64602068617070656e656420617420746865206073657373696f6e5f696e6465786020616e643501286b696e642d7370656369666963292074696d6520736c6f742e2054686973206576656e74206973206e6f74206465706f736974656420666f72206475706c696361746520736c61736865732e4c5c5b6b696e642c2074696d65736c6f745c5d2e04304576656e747320747970652e980000031000000008009c0c3870616c6c65745f73657373696f6e1870616c6c6574144576656e74000104284e657753657373696f6e040010013053657373696f6e496e64657800000849014e65772073657373696f6e206861732068617070656e65642e204e6f746520746861742074686520617267756d656e7420697320746865205c5b73657373696f6e5f696e6465785c5d2c206e6f74207468659c626c6f636b206e756d626572206173207468652074797065206d6967687420737567676573742e04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a090909a00c3870616c6c65745f6772616e6470611870616c6c6574144576656e7400010c384e6577417574686f7269746965730400a40134417574686f726974794c697374000004d44e657720617574686f726974792073657420686173206265656e206170706c6965642e205c5b617574686f726974795f7365745c5d185061757365640001049843757272656e7420617574686f726974792073657420686173206265656e207061757365642e1c526573756d65640002049c43757272656e7420617574686f726974792073657420686173206265656e20726573756d65642e04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a090909a4000002a800a800000408ac2000ac0c4c73705f66696e616c6974795f6772616e6470610c617070185075626c696300000400b0013c656432353531393a3a5075626c69630000b00c1c73705f636f72651c65643235353139185075626c6963000004000401205b75383b2033325d0000b40c4070616c6c65745f696d5f6f6e6c696e651870616c6c6574144576656e7404045400010c4448656172746265617452656365697665640400b80138543a3a417574686f726974794964000004010141206e657720686561727462656174207761732072656365697665642066726f6d2060417574686f72697479496460205c5b617574686f726974795f69645c5d1c416c6c476f6f64000104d041742074686520656e64206f66207468652073657373696f6e2c206e6f206f6666656e63652077617320636f6d6d69747465642e2c536f6d654f66666c696e650400c0016c5665633c4964656e74696669636174696f6e5475706c653c543e3e000204390141742074686520656e64206f66207468652073657373696f6e2c206174206c65617374206f6e652076616c696461746f722077617320666f756e6420746f206265205c5b6f66666c696e655c5d2e04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a090909b8104070616c6c65745f696d5f6f6e6c696e651c737232353531392c6170705f73723235353139185075626c696300000400bc013c737232353531393a3a5075626c69630000bc0c1c73705f636f72651c73723235353139185075626c6963000004000401205b75383b2033325d0000c0000002c400c40000040800c800c8083870616c6c65745f7374616b696e67204578706f7375726508244163636f756e74496401001c42616c616e63650118000c0114746f74616ccc011c42616c616e636500010c6f776ecc011c42616c616e63650001186f7468657273d001ac5665633c496e646976696475616c4578706f737572653c4163636f756e7449642c2042616c616e63653e3e0000cc0000061800d0000002d400d4083870616c6c65745f7374616b696e6748496e646976696475616c4578706f7375726508244163636f756e74496401001c42616c616e636501180008010c77686f0001244163636f756e74496400011476616c7565cc011c42616c616e63650000d80c4070616c6c65745f64656d6f63726163791870616c6c6574144576656e740404540001442050726f706f736564080010012450726f70496e646578000018013042616c616e63654f663c543e0000042d0141206d6f74696f6e20686173206265656e2070726f706f7365642062792061207075626c6963206163636f756e742e205c5b70726f706f73616c5f696e6465782c206465706f7369745c5d185461626c65640c0010012450726f70496e646578000018013042616c616e63654f663c543e0000dc01445665633c543a3a4163636f756e7449643e000108450141207075626c69632070726f706f73616c20686173206265656e207461626c656420666f72207265666572656e64756d20766f74652e205c5b70726f706f73616c5f696e6465782c206465706f7369742c306465706f7369746f72735c5d3845787465726e616c5461626c656400020494416e2065787465726e616c2070726f706f73616c20686173206265656e207461626c65642e1c53746172746564080010013c5265666572656e64756d496e6465780000e00134566f74655468726573686f6c64000304c041207265666572656e64756d2068617320626567756e2e205c5b7265665f696e6465782c207468726573686f6c645c5d18506173736564040010013c5265666572656e64756d496e646578000404e4412070726f706f73616c20686173206265656e20617070726f766564206279207265666572656e64756d2e205c5b7265665f696e6465785c5d244e6f74506173736564040010013c5265666572656e64756d496e646578000504e4412070726f706f73616c20686173206265656e2072656a6563746564206279207265666572656e64756d2e205c5b7265665f696e6465785c5d2443616e63656c6c6564040010013c5265666572656e64756d496e646578000604b841207265666572656e64756d20686173206265656e2063616e63656c6c65642e205c5b7265665f696e6465785c5d204578656375746564080010013c5265666572656e64756d496e64657800007c01384469737061746368526573756c74000704c8412070726f706f73616c20686173206265656e20656e61637465642e205c5b7265665f696e6465782c20726573756c745c5d2444656c6567617465640800000130543a3a4163636f756e7449640000000130543a3a4163636f756e7449640008041d01416e206163636f756e74206861732064656c65676174656420746865697220766f746520746f20616e6f74686572206163636f756e742e205c5b77686f2c207461726765745c5d2c556e64656c6567617465640400000130543a3a4163636f756e744964000904f4416e205c5b6163636f756e745c5d206861732063616e63656c6c656420612070726576696f75732064656c65676174696f6e206f7065726174696f6e2e185665746f65640c00000130543a3a4163636f756e744964000024011c543a3a486173680000100138543a3a426c6f636b4e756d626572000a040d01416e2065787465726e616c2070726f706f73616c20686173206265656e207665746f65642e205c5b77686f2c2070726f706f73616c5f686173682c20756e74696c5c5d34507265696d6167654e6f7465640c0024011c543a3a486173680000000130543a3a4163636f756e744964000018013042616c616e63654f663c543e000b045d01412070726f706f73616c277320707265696d61676520776173206e6f7465642c20616e6420746865206465706f7369742074616b656e2e205c5b70726f706f73616c5f686173682c2077686f2c206465706f7369745c5d30507265696d616765557365640c0024011c543a3a486173680000000130543a3a4163636f756e744964000018013042616c616e63654f663c543e000c081101412070726f706f73616c20707265696d616765207761732072656d6f76656420616e6420757365642028746865206465706f736974207761732072657475726e6564292e905c5b70726f706f73616c5f686173682c2070726f76696465722c206465706f7369745c5d3c507265696d616765496e76616c6964080024011c543a3a48617368000010013c5265666572656e64756d496e646578000d080901412070726f706f73616c20636f756c64206e6f7420626520657865637574656420626563617573652069747320707265696d6167652077617320696e76616c69642e705c5b70726f706f73616c5f686173682c207265665f696e6465785c5d3c507265696d6167654d697373696e67080024011c543a3a48617368000010013c5265666572656e64756d496e646578000e080901412070726f706f73616c20636f756c64206e6f7420626520657865637574656420626563617573652069747320707265696d61676520776173206d697373696e672e705c5b70726f706f73616c5f686173682c207265665f696e6465785c5d38507265696d616765526561706564100024011c543a3a486173680000000130543a3a4163636f756e744964000018013042616c616e63654f663c543e0000000130543a3a4163636f756e744964000f08290141207265676973746572656420707265696d616765207761732072656d6f76656420616e6420746865206465706f73697420636f6c6c656374656420627920746865207265617065722eb05c5b70726f706f73616c5f686173682c2070726f76696465722c206465706f7369742c207265617065725c5d2c426c61636b6c6973746564040024011c543a3a48617368001004d4412070726f706f73616c205c5b686173685c5d20686173206265656e20626c61636b6c6973746564207065726d616e656e746c792e04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a090909dc0000020000e00c4070616c6c65745f64656d6f637261637938766f74655f7468726573686f6c6434566f74655468726573686f6c6400010c5053757065724d616a6f72697479417070726f76650000005053757065724d616a6f72697479416761696e73740001003853696d706c654d616a6f7269747900020000e40c4470616c6c65745f636f6c6c6563746976651870616c6c6574144576656e7408045400044900011c2050726f706f7365641000000130543a3a4163636f756e744964000010013450726f706f73616c496e646578000024011c543a3a48617368000010012c4d656d626572436f756e7400000c490141206d6f74696f6e2028676976656e20686173682920686173206265656e2070726f706f7365642028627920676976656e206163636f756e742920776974682061207468726573686f6c642028676976656e3c604d656d626572436f756e7460292ed45c5b6163636f756e742c2070726f706f73616c5f696e6465782c2070726f706f73616c5f686173682c207468726573686f6c645c5d14566f7465641400000130543a3a4163636f756e744964000024011c543a3a486173680000e80110626f6f6c000010012c4d656d626572436f756e74000010012c4d656d626572436f756e7400010c050141206d6f74696f6e2028676976656e20686173682920686173206265656e20766f746564206f6e20627920676976656e206163636f756e742c206c656176696e671501612074616c6c79202879657320766f74657320616e64206e6f20766f74657320676976656e20726573706563746976656c7920617320604d656d626572436f756e7460292ea85c5b6163636f756e742c2070726f706f73616c5f686173682c20766f7465642c207965732c206e6f5c5d20417070726f766564040024011c543a3a48617368000208c041206d6f74696f6e2077617320617070726f76656420627920746865207265717569726564207468726573686f6c642e445c5b70726f706f73616c5f686173685c5d2c446973617070726f766564040024011c543a3a48617368000308d041206d6f74696f6e20776173206e6f7420617070726f76656420627920746865207265717569726564207468726573686f6c642e445c5b70726f706f73616c5f686173685c5d204578656375746564080024011c543a3a4861736800007c01384469737061746368526573756c74000408210141206d6f74696f6e207761732065786563757465643b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e645c5b70726f706f73616c5f686173682c20726573756c745c5d384d656d6265724578656375746564080024011c543a3a4861736800007c01384469737061746368526573756c740005084901412073696e676c65206d656d6265722064696420736f6d6520616374696f6e3b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e645c5b70726f706f73616c5f686173682c20726573756c745c5d18436c6f7365640c0024011c543a3a48617368000010012c4d656d626572436f756e74000010012c4d656d626572436f756e740006085501412070726f706f73616c2077617320636c6f736564206265636175736520697473207468726573686f6c64207761732072656163686564206f7220616674657220697473206475726174696f6e207761732075702e685c5b70726f706f73616c5f686173682c207965732c206e6f5c5d04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a090909e80000050000ec0c4470616c6c65745f636f6c6c6563746976651870616c6c6574144576656e7408045400044900011c2050726f706f7365641000000130543a3a4163636f756e744964000010013450726f706f73616c496e646578000024011c543a3a48617368000010012c4d656d626572436f756e7400000c490141206d6f74696f6e2028676976656e20686173682920686173206265656e2070726f706f7365642028627920676976656e206163636f756e742920776974682061207468726573686f6c642028676976656e3c604d656d626572436f756e7460292ed45c5b6163636f756e742c2070726f706f73616c5f696e6465782c2070726f706f73616c5f686173682c207468726573686f6c645c5d14566f7465641400000130543a3a4163636f756e744964000024011c543a3a486173680000e80110626f6f6c000010012c4d656d626572436f756e74000010012c4d656d626572436f756e7400010c050141206d6f74696f6e2028676976656e20686173682920686173206265656e20766f746564206f6e20627920676976656e206163636f756e742c206c656176696e671501612074616c6c79202879657320766f74657320616e64206e6f20766f74657320676976656e20726573706563746976656c7920617320604d656d626572436f756e7460292ea85c5b6163636f756e742c2070726f706f73616c5f686173682c20766f7465642c207965732c206e6f5c5d20417070726f766564040024011c543a3a48617368000208c041206d6f74696f6e2077617320617070726f76656420627920746865207265717569726564207468726573686f6c642e445c5b70726f706f73616c5f686173685c5d2c446973617070726f766564040024011c543a3a48617368000308d041206d6f74696f6e20776173206e6f7420617070726f76656420627920746865207265717569726564207468726573686f6c642e445c5b70726f706f73616c5f686173685c5d204578656375746564080024011c543a3a4861736800007c01384469737061746368526573756c74000408210141206d6f74696f6e207761732065786563757465643b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e645c5b70726f706f73616c5f686173682c20726573756c745c5d384d656d6265724578656375746564080024011c543a3a4861736800007c01384469737061746368526573756c740005084901412073696e676c65206d656d6265722064696420736f6d6520616374696f6e3b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e645c5b70726f706f73616c5f686173682c20726573756c745c5d18436c6f7365640c0024011c543a3a48617368000010012c4d656d626572436f756e74000010012c4d656d626572436f756e740006085501412070726f706f73616c2077617320636c6f736564206265636175736520697473207468726573686f6c64207761732072656163686564206f7220616674657220697473206475726174696f6e207761732075702e685c5b70726f706f73616c5f686173682c207965732c206e6f5c5d04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a090909f00c6470616c6c65745f656c656374696f6e735f70687261676d656e1870616c6c6574144576656e7404045400011c1c4e65775465726d0400f401ec5665633c283c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e7449642c2042616c616e63654f663c543e293e000014550141206e6577207465726d2077697468205c5b6e65775f6d656d626572735c5d2e205468697320696e64696361746573207468617420656e6f7567682063616e64696461746573206578697374656420746f2072756e550174686520656c656374696f6e2c206e6f74207468617420656e6f756768206861766520686173206265656e20656c65637465642e2054686520696e6e65722076616c7565206d757374206265206578616d696e65644501666f72207468697320707572706f73652e204120604e65775465726d285c5b5c5d296020696e64696361746573207468617420736f6d652063616e6469646174657320676f7420746865697220626f6e645501736c617368656420616e64206e6f6e65207765726520656c65637465642c207768696c73742060456d7074795465726d60206d65616e732074686174206e6f2063616e64696461746573206578697374656420746f2c626567696e20776974682e24456d7074795465726d00010831014e6f20286f72206e6f7420656e6f756768292063616e64696461746573206578697374656420666f72207468697320726f756e642e205468697320697320646966666572656e742066726f6dc8604e65775465726d285c5b5c5d29602e2053656520746865206465736372697074696f6e206f6620604e65775465726d602e34456c656374696f6e4572726f72000204e4496e7465726e616c206572726f722068617070656e6564207768696c6520747279696e6720746f20706572666f726d20656c656374696f6e2e304d656d6265724b69636b656404000001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e744964000308510141205c5b6d656d6265725c5d20686173206265656e2072656d6f7665642e20546869732073686f756c6420616c7761797320626520666f6c6c6f7765642062792065697468657220604e65775465726d60206f723060456d7074795465726d602e2452656e6f756e63656404000001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e74496400040498536f6d656f6e65206861732072656e6f756e6365642074686569722063616e6469646163792e4043616e646964617465536c617368656408000001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e744964000018013042616c616e63654f663c543e000510590141205c5b63616e6469646174655c5d2077617320736c6173686564206279205c5b616d6f756e745c5d2064756520746f206661696c696e6720746f206f627461696e20612073656174206173206d656d626572206f722872756e6e65722d75702e00e44e6f74652074686174206f6c64206d656d6265727320616e642072756e6e6572732d75702061726520616c736f2063616e646964617465732e4453656174486f6c646572536c617368656408000001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e744964000018013042616c616e63654f663c543e000604550141205c5b7365617420686f6c6465725c5d2077617320736c6173686564206279205c5b616d6f756e745c5d206279206265696e6720666f72636566756c6c792072656d6f7665642066726f6d20746865207365742e04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a090909f4000002f800f800000408001800fc0c4470616c6c65745f6d656d626572736869701870616c6c6574144576656e740804540004490001182c4d656d6265724164646564000004e054686520676976656e206d656d626572207761732061646465643b2073656520746865207472616e73616374696f6e20666f722077686f2e344d656d62657252656d6f766564000104e854686520676976656e206d656d626572207761732072656d6f7665643b2073656520746865207472616e73616374696f6e20666f722077686f2e384d656d6265727353776170706564000204d854776f206d656d62657273207765726520737761707065643b2073656520746865207472616e73616374696f6e20666f722077686f2e304d656d6265727352657365740003041501546865206d656d62657273686970207761732072657365743b2073656520746865207472616e73616374696f6e20666f722077686f20746865206e6577207365742069732e284b65794368616e676564000404844f6e65206f6620746865206d656d6265727327206b657973206368616e6765642e1444756d6d790005046c5068616e746f6d206d656d6265722c206e6576657220757365642e04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a09090901010c3c70616c6c65745f74726561737572791870616c6c6574144576656e7408045400044900011c2050726f706f736564040010013450726f706f73616c496e646578000004804e65772070726f706f73616c2e205c5b70726f706f73616c5f696e6465785c5d205370656e64696e67040018013c42616c616e63654f663c542c20493e00010439015765206861766520656e6465642061207370656e6420706572696f6420616e642077696c6c206e6f7720616c6c6f636174652066756e64732e205c5b6275646765745f72656d61696e696e675c5d1c417761726465640c0010013450726f706f73616c496e646578000018013c42616c616e63654f663c542c20493e0000000130543a3a4163636f756e7449640002041901536f6d652066756e64732068617665206265656e20616c6c6f63617465642e205c5b70726f706f73616c5f696e6465782c2061776172642c2062656e65666963696172795c5d2052656a6563746564080010013450726f706f73616c496e646578000018013c42616c616e63654f663c542c20493e0003042101412070726f706f73616c207761732072656a65637465643b2066756e6473207765726520736c61736865642e205c5b70726f706f73616c5f696e6465782c20736c61736865645c5d144275726e74040018013c42616c616e63654f663c542c20493e000404ac536f6d65206f66206f75722066756e64732068617665206265656e206275726e742e205c5b6275726e5c5d20526f6c6c6f766572040018013c42616c616e63654f663c542c20493e0005082d015370656e64696e67206861732066696e69736865643b20746869732069732074686520616d6f756e74207468617420726f6c6c73206f76657220756e74696c206e657874207370656e642e505c5b6275646765745f72656d61696e696e675c5d1c4465706f736974040018013c42616c616e63654f663c542c20493e000604ac536f6d652066756e64732068617665206265656e206465706f73697465642e205c5b6465706f7369745c5d04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a0909090501105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e18636c61696d731870616c6c6574144576656e740404540001041c436c61696d65640c00000130543a3a4163636f756e74496400000901013c457468657265756d41646472657373000018013042616c616e63654f663c543e000004f0536f6d656f6e6520636c61696d656420736f6d6520444f54732e20605b77686f2c20657468657265756d5f616464726573732c20616d6f756e745d6004a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a09090909010c5c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e18636c61696d733c457468657265756d41646472657373000004000d0101205b75383b2032305d00000d0100000314000000080011010c3870616c6c65745f76657374696e671870616c6c6574144576656e740404540001083856657374696e67557064617465640800000130543a3a4163636f756e744964000018013042616c616e63654f663c543e00000c510154686520616d6f756e742076657374656420686173206265656e20757064617465642e205468697320636f756c6420696e6469636174652061206368616e676520696e2066756e647320617661696c61626c652e25015468652062616c616e636520676976656e2069732074686520616d6f756e74207768696368206973206c65667420756e7665737465642028616e642074687573206c6f636b6564292e545c5b6163636f756e742c20756e7665737465645c5d4056657374696e67436f6d706c657465640400000130543a3a4163636f756e7449640001049c416e205c5b6163636f756e745c5d20686173206265636f6d652066756c6c79207665737465642e04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a09090915010c3870616c6c65745f7574696c6974791870616c6c6574144576656e7400010c404261746368496e746572727570746564080010010c753332000064013444697370617463684572726f7200000855014261746368206f66206469737061746368657320646964206e6f7420636f6d706c6574652066756c6c792e20496e646578206f66206669727374206661696c696e6720646973706174636820676976656e2c2061738c77656c6c20617320746865206572726f722e205c5b696e6465782c206572726f725c5d384261746368436f6d706c65746564000104c84261746368206f66206469737061746368657320636f6d706c657465642066756c6c792077697468206e6f206572726f722e344974656d436f6d706c657465640002041d01412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206e6f206572726f722e04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a09090919010c3c70616c6c65745f6964656e746974791870616c6c6574144576656e740404540001282c4964656e746974795365740400000130543a3a4163636f756e7449640000040d0141206e616d652077617320736574206f72207265736574202877686963682077696c6c2072656d6f766520616c6c206a756467656d656e7473292e205c5b77686f5c5d3c4964656e74697479436c65617265640800000130543a3a4163636f756e744964000018013042616c616e63654f663c543e000104110141206e616d652077617320636c65617265642c20616e642074686520676976656e2062616c616e63652072657475726e65642e205c5b77686f2c206465706f7369745c5d384964656e746974794b696c6c65640800000130543a3a4163636f756e744964000018013042616c616e63654f663c543e000204090141206e616d65207761732072656d6f76656420616e642074686520676976656e2062616c616e636520736c61736865642e205c5b77686f2c206465706f7369745c5d484a756467656d656e745265717565737465640800000130543a3a4163636f756e7449640000100138526567697374726172496e646578000304010141206a756467656d656e74207761732061736b65642066726f6d2061207265676973747261722e205c5b77686f2c207265676973747261725f696e6465785c5d504a756467656d656e74556e7265717565737465640800000130543a3a4163636f756e7449640000100138526567697374726172496e646578000404ec41206a756467656d656e74207265717565737420776173207265747261637465642e205c5b77686f2c207265676973747261725f696e6465785c5d384a756467656d656e74476976656e0800000130543a3a4163636f756e7449640000100138526567697374726172496e646578000504050141206a756467656d656e742077617320676976656e2062792061207265676973747261722e205c5b7461726765742c207265676973747261725f696e6465785c5d3852656769737472617241646465640400100138526567697374726172496e646578000604a84120726567697374726172207761732061646465642e205c5b7265676973747261725f696e6465785c5d405375624964656e7469747941646465640c00000130543a3a4163636f756e7449640000000130543a3a4163636f756e744964000018013042616c616e63654f663c543e000704510141207375622d6964656e746974792077617320616464656420746f20616e206964656e7469747920616e6420746865206465706f73697420706169642e205c5b7375622c206d61696e2c206465706f7369745c5d485375624964656e7469747952656d6f7665640c00000130543a3a4163636f756e7449640000000130543a3a4163636f756e744964000018013042616c616e63654f663c543e000808090141207375622d6964656e74697479207761732072656d6f7665642066726f6d20616e206964656e7469747920616e6420746865206465706f7369742066726565642e585c5b7375622c206d61696e2c206465706f7369745c5d485375624964656e746974795265766f6b65640c00000130543a3a4163636f756e7449640000000130543a3a4163636f756e744964000018013042616c616e63654f663c543e000908190141207375622d6964656e746974792077617320636c65617265642c20616e642074686520676976656e206465706f7369742072657061747269617465642066726f6d2074686525016d61696e206964656e74697479206163636f756e7420746f20746865207375622d6964656e74697479206163636f756e742e205c5b7375622c206d61696e2c206465706f7369745c5d04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a0909091d010c3070616c6c65745f70726f78791870616c6c6574144576656e740404540001103450726f7879457865637574656404007c01384469737061746368526573756c74000004e8412070726f78792077617320657865637574656420636f72726563746c792c20776974682074686520676976656e205c5b726573756c745c5d2e40416e6f6e796d6f7573437265617465641000000130543a3a4163636f756e7449640000000130543a3a4163636f756e744964000021010130543a3a50726f78795479706500002501010c75313600010ce8416e6f6e796d6f7573206163636f756e7420686173206265656e2063726561746564206279206e65772070726f7879207769746820676976656e0901646973616d626967756174696f6e20696e64657820616e642070726f787920747970652e205c5b616e6f6e796d6f75732c2077686f2c2070726f78795f747970652c58646973616d626967756174696f6e5f696e6465785c5d24416e6e6f756e6365640c00000130543a3a4163636f756e7449640000000130543a3a4163636f756e744964000024013443616c6c486173684f663c543e0002044d01416e20616e6e6f756e63656d656e742077617320706c6163656420746f206d616b6520612063616c6c20696e20746865206675747572652e205c5b7265616c2c2070726f78792c2063616c6c5f686173685c5d2850726f787941646465641000000130543a3a4163636f756e7449640000000130543a3a4163636f756e744964000021010130543a3a50726f7879547970650000100138543a3a426c6f636b4e756d626572000304f8412070726f7879207761732061646465642e205c5b64656c656761746f722c2064656c6567617465652c2070726f78795f747970652c2064656c61795c5d04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a09090921010840706f6c6b61646f745f72756e74696d652450726f78795479706500011c0c416e790000002c4e6f6e5472616e7366657200010028476f7665726e616e63650002001c5374616b696e67000300444964656e746974794a756467656d656e740005002c43616e63656c50726f78790006001c41756374696f6e000700002501000005040029010c3c70616c6c65745f6d756c74697369671870616c6c6574144576656e740404540001102c4e65774d756c74697369670c00000130543a3a4163636f756e7449640000000130543a3a4163636f756e744964000004012043616c6c48617368000004190141206e6577206d756c7469736967206f7065726174696f6e2068617320626567756e2e205c5b617070726f76696e672c206d756c74697369672c2063616c6c5f686173685c5d404d756c7469736967417070726f76616c1000000130543a3a4163636f756e74496400002d01016454696d65706f696e743c543a3a426c6f636b4e756d6265723e0000000130543a3a4163636f756e744964000004012043616c6c48617368000108c841206d756c7469736967206f7065726174696f6e20686173206265656e20617070726f76656420627920736f6d656f6e652eb45c5b617070726f76696e672c2074696d65706f696e742c206d756c74697369672c2063616c6c5f686173685c5d404d756c746973696745786563757465641400000130543a3a4163636f756e74496400002d01016454696d65706f696e743c543a3a426c6f636b4e756d6265723e0000000130543a3a4163636f756e744964000004012043616c6c4861736800007c01384469737061746368526573756c74000204550141206d756c7469736967206f7065726174696f6e20686173206265656e2065786563757465642e205c5b617070726f76696e672c2074696d65706f696e742c206d756c74697369672c2063616c6c5f686173685c5d444d756c746973696743616e63656c6c65641000000130543a3a4163636f756e74496400002d01016454696d65706f696e743c543a3a426c6f636b4e756d6265723e0000000130543a3a4163636f756e744964000004012043616c6c486173680003045d0141206d756c7469736967206f7065726174696f6e20686173206265656e2063616e63656c6c65642e205c5b63616e63656c6c696e672c2074696d65706f696e742c206d756c74697369672c2063616c6c5f686173685c5d04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a0909092d01083c70616c6c65745f6d756c74697369672454696d65706f696e74042c426c6f636b4e756d62657201100008011868656967687410012c426c6f636b4e756d626572000114696e64657810010c753332000031010c3c70616c6c65745f626f756e746965731870616c6c6574144576656e7404045400011c38426f756e747950726f706f736564040010012c426f756e7479496e646578000004784e657720626f756e74792070726f706f73616c2e205c5b696e6465785c5d38426f756e747952656a6563746564080010012c426f756e7479496e646578000018013042616c616e63654f663c543e0001040d014120626f756e74792070726f706f73616c207761732072656a65637465643b2066756e6473207765726520736c61736865642e205c5b696e6465782c20626f6e645c5d48426f756e7479426563616d65416374697665040010012c426f756e7479496e646578000204e04120626f756e74792070726f706f73616c2069732066756e64656420616e6420626563616d65206163746976652e205c5b696e6465785c5d34426f756e747941776172646564080010012c426f756e7479496e6465780000000130543a3a4163636f756e744964000304f04120626f756e7479206973206177617264656420746f20612062656e65666963696172792e205c5b696e6465782c2062656e65666963696172795c5d34426f756e7479436c61696d65640c0010012c426f756e7479496e646578000018013042616c616e63654f663c543e0000000130543a3a4163636f756e74496400040409014120626f756e747920697320636c61696d65642062792062656e65666963696172792e205c5b696e6465782c207061796f75742c2062656e65666963696172795c5d38426f756e747943616e63656c6564040010012c426f756e7479496e646578000504804120626f756e74792069732063616e63656c6c65642e205c5b696e6465785c5d38426f756e7479457874656e646564040010012c426f756e7479496e646578000604984120626f756e74792065787069727920697320657874656e6465642e205c5b696e6465785c5d04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a09090935010c2c70616c6c65745f746970731870616c6c6574144576656e74040454000114184e6577546970040024011c543a3a48617368000004c841206e6577207469702073756767657374696f6e20686173206265656e206f70656e65642e205c5b7469705f686173685c5d28546970436c6f73696e67040024011c543a3a486173680001040d0141207469702073756767657374696f6e206861732072656163686564207468726573686f6c6420616e6420697320636c6f73696e672e205c5b7469705f686173685c5d24546970436c6f7365640c0024011c543a3a486173680000000130543a3a4163636f756e744964000018013042616c616e63654f663c543e000204ec41207469702073756767657374696f6e20686173206265656e20636c6f7365642e205c5b7469705f686173682c2077686f2c207061796f75745c5d30546970526574726163746564040024011c543a3a48617368000304c441207469702073756767657374696f6e20686173206265656e207265747261637465642e205c5b7469705f686173685c5d28546970536c61736865640c0024011c543a3a486173680000000130543a3a4163636f756e744964000018013042616c616e63654f663c543e000404010141207469702073756767657374696f6e20686173206265656e20736c61736865642e205c5b7469705f686173682c2066696e6465722c206465706f7369745c5d04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a09090939010c9070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173651870616c6c6574144576656e7404045400011838536f6c7574696f6e53746f72656408003d01013c456c656374696f6e436f6d707574650000e80110626f6f6c000018b44120736f6c7574696f6e207761732073746f72656420776974682074686520676976656e20636f6d707574652e003d0149662074686520736f6c7574696f6e206973207369676e65642c2074686973206d65616e732074686174206974206861736e277420796574206265656e2070726f6365737365642e204966207468650501736f6c7574696f6e20697320756e7369676e65642c2074686973206d65616e7320746861742069742068617320616c736f206265656e2070726f6365737365642e0051015468652060626f6f6c6020697320607472756560207768656e20612070726576696f757320736f6c7574696f6e2077617320656a656374656420746f206d616b6520726f6f6d20666f722074686973206f6e652e44456c656374696f6e46696e616c697a656404004101015c4f7074696f6e3c456c656374696f6e436f6d707574653e000108550154686520656c656374696f6e20686173206265656e2066696e616c697a65642c20776974682060536f6d6560206f662074686520676976656e20636f6d7075746174696f6e2c206f7220656c73652069662074686560656c656374696f6e206661696c65642c20604e6f6e65602e20526577617264656408000001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e744964000018013042616c616e63654f663c543e0002042501416e206163636f756e7420686173206265656e20726577617264656420666f72207468656972207369676e6564207375626d697373696f6e206265696e672066696e616c697a65642e1c536c617368656408000001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e744964000018013042616c616e63654f663c543e0003042101416e206163636f756e7420686173206265656e20736c617368656420666f72207375626d697474696e6720616e20696e76616c6964207369676e6564207375626d697373696f6e2e485369676e6564506861736553746172746564040010010c753332000404c0546865207369676e6564207068617365206f662074686520676976656e20726f756e642068617320737461727465642e50556e7369676e6564506861736553746172746564040010010c753332000504c854686520756e7369676e6564207068617365206f662074686520676976656e20726f756e642068617320737461727465642e04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a0909093d01089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173653c456c656374696f6e436f6d707574650001141c4f6e436861696e000000185369676e656400010020556e7369676e65640002002046616c6c6261636b00030024456d657267656e637900040000410104184f7074696f6e040454013d010108104e6f6e6500000010536f6d6504003d0100000100004501106c706f6c6b61646f745f72756e74696d655f70617261636861696e7324696e636c7573696f6e1870616c6c6574144576656e7404045400010c3c43616e6469646174654261636b656410004901016443616e646964617465526563656970743c543a3a486173683e000069010120486561644461746100006d010124436f7265496e64657800007101012847726f7570496e646578000004c0412063616e64696461746520776173206261636b65642e20605b63616e6469646174652c20686561645f646174615d604443616e646964617465496e636c7564656410004901016443616e646964617465526563656970743c543a3a486173683e000069010120486561644461746100006d010124436f7265496e64657800007101012847726f7570496e646578000104c8412063616e6469646174652077617320696e636c756465642e20605b63616e6469646174652c20686561645f646174615d604443616e64696461746554696d65644f75740c004901016443616e646964617465526563656970743c543a3a486173683e000069010120486561644461746100006d010124436f7265496e646578000204bc412063616e6469646174652074696d6564206f75742e20605b63616e6469646174652c20686561645f646174615d6004a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a09090949010c4c706f6c6b61646f745f7072696d6974697665730876314043616e6469646174655265636569707404044801240008012864657363726970746f724d01015843616e64696461746544657363726970746f723c483e000140636f6d6d69746d656e74735f686173682401104861736800004d010c4c706f6c6b61646f745f7072696d6974697665730876314c43616e64696461746544657363726970746f7204044801240024011c706172615f696451010108496400013072656c61795f706172656e7424010448000120636f6c6c61746f7255010128436f6c6c61746f7249640001787065727369737465645f76616c69646174696f6e5f646174615f6861736824011048617368000120706f765f6861736824011048617368000130657261737572655f726f6f74240110486173680001247369676e617475726559010144436f6c6c61746f725369676e6174757265000124706172615f686561642401104861736800015076616c69646174696f6e5f636f64655f686173686501014856616c69646174696f6e436f646548617368000051010c48706f6c6b61646f745f70617261636861696e287072696d6974697665730849640000040010010c75333200005501104c706f6c6b61646f745f7072696d69746976657308763030636f6c6c61746f725f617070185075626c696300000400bc013c737232353531393a3a5075626c696300005901104c706f6c6b61646f745f7072696d69746976657308763030636f6c6c61746f725f617070245369676e6174757265000004005d010148737232353531393a3a5369676e617475726500005d010c1c73705f636f72651c73723235353139245369676e617475726500000400610101205b75383b2036345d0000610100000340000000080065010c48706f6c6b61646f745f70617261636861696e287072696d6974697665734856616c69646174696f6e436f6465486173680000040024011048617368000069010c48706f6c6b61646f745f70617261636861696e287072696d6974697665732048656164446174610000040028011c5665633c75383e00006d010c4c706f6c6b61646f745f7072696d69746976657308763124436f7265496e6465780000040010010c753332000071010c4c706f6c6b61646f745f7072696d6974697665730876312847726f7570496e6465780000040010010c75333200007501106c706f6c6b61646f745f72756e74696d655f70617261636861696e731470617261731870616c6c6574144576656e740001144843757272656e74436f646555706461746564040051010118506172614964000004cc43757272656e7420636f646520686173206265656e207570646174656420666f72206120506172612e2060706172615f6964604843757272656e744865616455706461746564040051010118506172614964000104cc43757272656e74206865616420686173206265656e207570646174656420666f72206120506172612e2060706172615f69646050436f6465557067726164655363686564756c6564040051010118506172614964000204dc4120636f6465207570677261646520686173206265656e207363686564756c656420666f72206120506172612e2060706172615f696460304e6577486561644e6f746564040051010118506172614964000304bc41206e6577206865616420686173206265656e206e6f74656420666f72206120506172612e2060706172615f69646030416374696f6e517565756564080051010118506172614964000010013053657373696f6e496e646578000404f041207061726120686173206265656e2071756575656420746f20657865637574652070656e64696e6720616374696f6e732e2060706172615f69646004a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a0909097901106c706f6c6b61646f745f72756e74696d655f70617261636861696e730c756d701870616c6c6574144576656e7400011c34496e76616c6964466f726d617404000401244d657373616765496400000878557077617264206d65737361676520697320696e76616c69642058434d2e205c5b206964205c5d48556e737570706f7274656456657273696f6e04000401244d6573736167654964000108b4557077617264206d65737361676520697320756e737570706f727465642076657273696f6e206f662058434d2e205c5b206964205c5d38457865637574656455707761726408000401244d657373616765496400007d01011c4f7574636f6d65000208bc557077617264206d65737361676520657865637574656420776974682074686520676976656e206f7574636f6d652e445c5b2069642c206f7574636f6d65205c5d3c5765696768744578686175737465640c000401244d657373616765496400002001185765696768740000200118576569676874000308f054686520776569676874206c696d697420666f722068616e646c696e6720646f776e77617264206d657373616765732077617320726561636865642e745c5b2069642c2072656d61696e696e672c207265717569726564205c5d585570776172644d6573736167657352656365697665640c0051010118506172614964000010010c753332000010010c7533320004080101536f6d6520646f776e77617264206d657373616765732068617665206265656e20726563656976656420616e642077696c6c2062652070726f6365737365642e5c5c5b20706172612c20636f756e742c2073697a65205c5d484f766572776569676874456e71756575656410005101011850617261496400000401244d6573736167654964000020013c4f766572776569676874496e6465780000200118576569676874000518090154686520776569676874206275646765742077617320657863656564656420666f7220616e20696e646976696475616c20646f776e77617264206d6573736167652e00550154686973206d6573736167652063616e206265206c617465722064697370617463686564206d616e75616c6c79207573696e672060736572766963655f6f7665727765696768746020646973706174636861626c65987573696e67207468652061737369676e656420606f7665727765696768745f696e646578602e00a85c5b20706172612c2069642c206f7665727765696768745f696e6465782c207265717569726564205c5d484f7665727765696768745365727669636564080020013c4f766572776569676874496e64657800002001185765696768740006105101446f776e77617264206d6573736167652066726f6d20746865206f7665727765696768742071756575652077617320657865637574656420776974682074686520676976656e2061637475616c2077656967687414757365642e00705c5b206f7665727765696768745f696e6465782c2075736564205c5d04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a0909097d01100c78636d087632187472616974731c4f7574636f6d6500010c20436f6d706c657465040020011857656967687400000028496e636f6d706c65746508002001185765696768740000810101144572726f72000100144572726f720400810101144572726f72000200008101100c78636d08763218747261697473144572726f72000168204f766572666c6f7700000034556e696d706c656d656e74656400010060556e74727573746564526573657276654c6f636174696f6e00020064556e7472757374656454656c65706f72744c6f636174696f6e000300444d756c74694c6f636174696f6e46756c6c000400684d756c74694c6f636174696f6e4e6f74496e7665727469626c65000500244261644f726967696e0006003c496e76616c69644c6f636174696f6e0007003441737365744e6f74466f756e64000800544661696c6564546f5472616e7361637441737365740009003c4e6f74576974686472617761626c65000a00484c6f636174696f6e43616e6e6f74486f6c64000b0054457863656564734d61784d65737361676553697a65000c005844657374696e6174696f6e556e737570706f72746564000d00245472616e73706f7274000e0028556e726f757461626c65000f0030556e6b6e6f776e436c61696d001000384661696c6564546f4465636f646500110054546f6f4d7563685765696768745265717569726564001200384e6f74486f6c64696e674665657300130030546f6f457870656e736976650014001054726170040020010c7536340015004c556e68616e646c656458636d56657273696f6e001600485765696768744c696d69745265616368656404002001185765696768740017001c426172726965720018004c5765696768744e6f74436f6d70757461626c65001900008501106c706f6c6b61646f745f72756e74696d655f70617261636861696e731068726d701870616c6c6574144576656e74040454000110504f70656e4368616e6e656c526571756573746564100051010118506172614964000051010118506172614964000010010c753332000010010c753332000008704f70656e2048524d50206368616e6e656c207265717565737465642e1d01605b73656e6465722c20726563697069656e742c2070726f706f7365645f6d61785f63617061636974792c2070726f706f7365645f6d61785f6d6573736167655f73697a655d604c4f70656e4368616e6e656c43616e63656c656408005101011850617261496400008901013448726d704368616e6e656c49640001082901416e2048524d50206368616e6e656c20726571756573742073656e7420627920746865207265636569766572207761732063616e63656c6564206279206569746865722070617274792e70605b62795f70617261636861696e2c206368616e6e656c5f69645d604c4f70656e4368616e6e656c4163636570746564080051010118506172614964000051010118506172614964000204c44f70656e2048524d50206368616e6e656c2061636365707465642e20605b73656e6465722c20726563697069656e745d60344368616e6e656c436c6f73656408005101011850617261496400008901013448726d704368616e6e656c4964000304c448524d50206368616e6e656c20636c6f7365642e20605b62795f70617261636861696e2c206368616e6e656c5f69645d6004a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a09090989010c48706f6c6b61646f745f70617261636861696e287072696d6974697665733448726d704368616e6e656c4964000008011873656e646572510101084964000124726563697069656e7451010108496400008d01105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e3c70617261735f7265676973747261721870616c6c6574144576656e7404045400010c28526567697374657265640800510101185061726149640000000130543a3a4163636f756e744964000000304465726567697374657265640400510101185061726149640001002052657365727665640800510101185061726149640000000130543a3a4163636f756e74496400020004a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a0909099101105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e14736c6f74731870616c6c6574144576656e74040454000108384e65774c65617365506572696f6404001001404c65617365506572696f644f663c543e0000049041206e657720605b6c656173655f706572696f645d6020697320626567696e6e696e672e184c65617365641800510101185061726149640000000130543a3a4163636f756e74496400001001404c65617365506572696f644f663c543e00001001404c65617365506572696f644f663c543e000018013042616c616e63654f663c543e000018013042616c616e63654f663c543e00011035014120706172612068617320776f6e2074686520726967687420746f206120636f6e74696e756f757320736574206f66206c6561736520706572696f647320617320612070617261636861696e2e450146697273742062616c616e636520697320616e7920657874726120616d6f756e74207265736572766564206f6e20746f70206f662074686520706172612773206578697374696e67206465706f7369742eb05365636f6e642062616c616e63652069732074686520746f74616c20616d6f756e742072657365727665642e4901605b70617261636861696e5f69642c206c65617365722c20706572696f645f626567696e2c20706572696f645f636f756e742c2065787472615f72657365727665642c20746f74616c5f616d6f756e745d6004a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a0909099501105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e2061756374696f6e731870616c6c6574144576656e7404045400011c3841756374696f6e537461727465640c0010013041756374696f6e496e64657800001001404c65617365506572696f644f663c543e0000100138543a3a426c6f636b4e756d62657200000c4901416e2061756374696f6e20737461727465642e2050726f76696465732069747320696e64657820616e642074686520626c6f636b206e756d6265722077686572652069742077696c6c20626567696e20746f1501636c6f736520616e6420746865206669727374206c6561736520706572696f64206f662074686520717561647275706c657420746861742069732061756374696f6e65642e9c605b61756374696f6e5f696e6465782c206c656173655f706572696f642c20656e64696e675d603441756374696f6e436c6f736564040010013041756374696f6e496e6465780001040101416e2061756374696f6e20656e6465642e20416c6c2066756e6473206265636f6d6520756e72657365727665642e20605b61756374696f6e5f696e6465785d602052657365727665640c00000130543a3a4163636f756e744964000018013042616c616e63654f663c543e000018013042616c616e63654f663c543e000208490146756e6473207765726520726573657276656420666f7220612077696e6e696e67206269642e2046697273742062616c616e63652069732074686520657874726120616d6f756e742072657365727665642ef45365636f6e642069732074686520746f74616c2e20605b6269646465722c2065787472615f72657365727665642c20746f74616c5f616d6f756e745d6028556e72657365727665640800000130543a3a4163636f756e744964000018013042616c616e63654f663c543e000304290146756e6473207765726520756e72657365727665642073696e636520626964646572206973206e6f206c6f6e676572206163746976652e20605b6269646465722c20616d6f756e745d604852657365727665436f6e66697363617465640c00510101185061726149640000000130543a3a4163636f756e744964000018013042616c616e63654f663c543e00040c7501536f6d656f6e6520617474656d7074656420746f206c65617365207468652073616d6520736c6f7420747769636520666f7220612070617261636861696e2e2054686520616d6f756e742069732068656c6420696e207265736572766598627574206e6f2070617261636861696e20736c6f7420686173206265656e206c65617365642e80605b70617261636861696e5f69642c206c65617365722c20616d6f756e745d602c42696441636365707465641400000130543a3a4163636f756e744964000051010118506172614964000018013042616c616e63654f663c543e00001001404c65617365506572696f644f663c543e00001001404c65617365506572696f644f663c543e000508c841206e65772062696420686173206265656e206163636570746564206173207468652063757272656e742077696e6e65722ebc605b77686f2c20706172615f69642c20616d6f756e742c2066697273745f736c6f742c206c6173745f736c6f745d603457696e6e696e674f6666736574080010013041756374696f6e496e6465780000100138543a3a426c6f636b4e756d6265720006086d015468652077696e6e696e67206f6666736574207761732063686f73656e20666f7220616e2061756374696f6e2e20546869732077696c6c206d617020696e746f20746865206057696e6e696e67602073746f72616765206d61702e7c605b61756374696f6e5f696e6465782c20626c6f636b5f6e756d6265725d6004a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a0909099901105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e2463726f77646c6f616e1870616c6c6574144576656e740404540001281c43726561746564040051010118506172614964000004c84372656174652061206e65772063726f77646c6f616e696e672063616d706169676e2e20605b66756e645f696e6465785d602c436f6e74726962757465640c00000130543a3a4163636f756e744964000051010118506172614964000018013042616c616e63654f663c543e000104e0436f6e747269627574656420746f20612063726f77642073616c652e20605b77686f2c2066756e645f696e6465782c20616d6f756e745d602057697468647265770c00000130543a3a4163636f756e744964000051010118506172614964000018013042616c616e63654f663c543e0002040d0157697468647265772066756c6c2062616c616e6365206f66206120636f6e7472696275746f722e20605b77686f2c2066756e645f696e6465782c20616d6f756e745d60445061727469616c6c79526566756e6465640400510101185061726149640003082d01546865206c6f616e7320696e20612066756e642068617665206265656e207061727469616c6c7920646973736f6c7665642c20692e652e2074686572652061726520736f6d65206c656674f06f766572206368696c64206b6579732074686174207374696c6c206e65656420746f206265206b696c6c65642e20605b66756e645f696e6465785d602c416c6c526566756e646564040051010118506172614964000404d8416c6c206c6f616e7320696e20612066756e642068617665206265656e20726566756e6465642e20605b66756e645f696e6465785d6024446973736f6c7665640400510101185061726149640005048446756e6420697320646973736f6c7665642e20605b66756e645f696e6465785d603c48616e646c65426964526573756c7408005101011850617261496400007c01384469737061746368526573756c74000604f454686520726573756c74206f6620747279696e6720746f207375626d69742061206e65772062696420746f2074686520536c6f74732070616c6c65742e18456469746564040051010118506172614964000704010154686520636f6e66696775726174696f6e20746f20612063726f77646c6f616e20686173206265656e206564697465642e20605b66756e645f696e6465785d602c4d656d6f557064617465640c00000130543a3a4163636f756e744964000051010118506172614964000028011c5665633c75383e000804c841206d656d6f20686173206265656e20757064617465642e20605b77686f2c2066756e645f696e6465782c206d656d6f5d603c4164646564546f4e65775261697365040051010118506172614964000904a0412070617261636861696e20686173206265656e206d6f76656420746f20604e657752616973656004a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a0909099d0108306672616d655f73797374656d14506861736500010c384170706c7945787472696e736963040010010c7533320000003046696e616c697a6174696f6e00010038496e697469616c697a6174696f6e00020000a1010000022400a5010000027400a90108306672616d655f73797374656d584c61737452756e74696d6555706772616465496e666f0000080130737065635f76657273696f6ead01014c636f6465633a3a436f6d706163743c7533323e000124737065635f6e616d65b101016473705f72756e74696d653a3a52756e74696d65537472696e670000ad010000061000b1010000050200b5010c306672616d655f73797374656d1870616c6c65741043616c6c0404540001282866696c6c5f626c6f636b040114726174696fb901011c50657262696c6c00000405014120646973706174636820746861742077696c6c2066696c6c2074686520626c6f636b2077656967687420757020746f2074686520676976656e20726174696f2e1872656d61726b04011872656d61726b28011c5665633c75383e000114684d616b6520736f6d65206f6e2d636861696e2072656d61726b2e002823203c7765696768743e202d20604f283129602c23203c2f7765696768743e387365745f686561705f7061676573040114706167657320010c753634000224f853657420746865206e756d626572206f6620706167657320696e2074686520576562417373656d626c7920656e7669726f6e6d656e74277320686561702e002823203c7765696768743e202d20604f28312960482d20312073746f726167652077726974652e602d2042617365205765696768743a20312e34303520c2b5735c2d203120777269746520746f20484541505f50414745533c2d203120646967657374206974656d2c23203c2f7765696768743e207365745f636f6465040110636f646528011c5665633c75383e0003306453657420746865206e65772072756e74696d6520636f64652e002823203c7765696768743e31012d20604f2843202b2053296020776865726520604360206c656e677468206f662060636f64656020616e642060536020636f6d706c6578697479206f66206063616e5f7365745f636f64656045012d20312063616c6c20746f206063616e5f7365745f636f6465603a20604f28532960202863616c6c73206073705f696f3a3a6d6973633a3a72756e74696d655f76657273696f6e60207768696368206973342020657870656e73697665292e842d20312073746f726167652077726974652028636f64656320604f28432960292e402d203120646967657374206974656d2e282d2031206576656e742e4d0154686520776569676874206f6620746869732066756e6374696f6e20697320646570656e64656e74206f6e207468652072756e74696d652c206275742067656e6572616c6c7920746869732069732076657279b8657870656e736976652e2057652077696c6c207472656174207468697320617320612066756c6c20626c6f636b2e2c23203c2f7765696768743e5c7365745f636f64655f776974686f75745f636865636b73040110636f646528011c5665633c75383e000424190153657420746865206e65772072756e74696d6520636f646520776974686f757420646f696e6720616e7920636865636b73206f662074686520676976656e2060636f6465602e002823203c7765696768743e8c2d20604f2843296020776865726520604360206c656e677468206f662060636f646560842d20312073746f726167652077726974652028636f64656320604f28432960292e402d203120646967657374206974656d2e282d2031206576656e742e550154686520776569676874206f6620746869732066756e6374696f6e20697320646570656e64656e74206f6e207468652072756e74696d652e2057652077696c6c207472656174207468697320617320612066756c6c48626c6f636b2e2023203c2f7765696768743e5c7365745f6368616e6765735f747269655f636f6e66696704014c6368616e6765735f747269655f636f6e6669674001804f7074696f6e3c4368616e67657354726965436f6e66696775726174696f6e3e0005289c53657420746865206e6577206368616e676573207472696520636f6e66696775726174696f6e2e002823203c7765696768743e202d20604f28312960ac2d20312073746f72616765207772697465206f722064656c6574652028636f64656320604f28312960292ed42d20312063616c6c20746f20606465706f7369745f6c6f67603a20557365732060617070656e6460204150492c20736f204f283129602d2042617365205765696768743a20372e32313820c2b573302d204442205765696768743aa4202020202d205772697465733a204368616e67657320547269652c2053797374656d204469676573742c23203c2f7765696768743e2c7365745f73746f726167650401146974656d73bd0101345665633c4b657956616c75653e0006206853657420736f6d65206974656d73206f662073746f726167652e002823203c7765696768743e902d20604f2849296020776865726520604960206c656e677468206f6620606974656d7360782d206049602073746f72616765207772697465732028604f28312960292e702d2042617365205765696768743a20302e353638202a206920c2b573642d205772697465733a204e756d626572206f66206974656d732c23203c2f7765696768743e306b696c6c5f73746f726167650401106b657973c50101205665633c4b65793e000720744b696c6c20736f6d65206974656d732066726f6d2073746f726167652e002823203c7765696768743ef82d20604f28494b296020776865726520604960206c656e677468206f6620606b6579736020616e6420604b60206c656e677468206f66206f6e65206b6579602d206049602073746f726167652064656c6574696f6e732e6c2d2042617365205765696768743a202e333738202a206920c2b573642d205772697465733a204e756d626572206f66206974656d732c23203c2f7765696768743e2c6b696c6c5f70726566697808011870726566697828010c4b657900011c7375626b65797310010c75333200082c11014b696c6c20616c6c2073746f72616765206974656d7320776974682061206b657920746861742073746172747320776974682074686520676976656e207072656669782e0039012a2a4e4f54453a2a2a2057652072656c79206f6e2074686520526f6f74206f726967696e20746f2070726f7669646520757320746865206e756d626572206f66207375626b65797320756e6465723d0174686520707265666978207765206172652072656d6f76696e6720746f2061636375726174656c792063616c63756c6174652074686520776569676874206f6620746869732066756e6374696f6e2e002823203c7765696768743ed82d20604f285029602077686572652060506020616d6f756e74206f66206b657973207769746820707265666978206070726566697860602d206050602073746f726167652064656c6574696f6e732e702d2042617365205765696768743a20302e383334202a205020c2b5737c2d205772697465733a204e756d626572206f66207375626b657973202b20312c23203c2f7765696768743e4472656d61726b5f776974685f6576656e7404011872656d61726b28011c5665633c75383e000918a44d616b6520736f6d65206f6e2d636861696e2072656d61726b20616e6420656d6974206576656e742e002823203c7765696768743eb42d20604f28622960207768657265206220697320746865206c656e677468206f66207468652072656d61726b2e282d2031206576656e742e2c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632eb9010c3473705f61726974686d65746963287065725f7468696e67731c50657262696c6c0000040010010c7533320000bd01000002c10100c10100000408282800c5010000022800c9010c306672616d655f73797374656d186c696d69747330426c6f636b5765696768747300000c0128626173655f626c6f636b2001185765696768740001246d61785f626c6f636b2001185765696768740001247065725f636c617373cd0101845065724469737061746368436c6173733c57656967687473506572436c6173733e0000cd010c346672616d655f737570706f72741c77656967687473405065724469737061746368436c61737304045401d101000c01186e6f726d616cd10101045400012c6f7065726174696f6e616cd1010104540001246d616e6461746f7279d1010104540000d1010c306672616d655f73797374656d186c696d6974733c57656967687473506572436c6173730000100138626173655f65787472696e7369632001185765696768740001346d61785f65787472696e736963d50101384f7074696f6e3c5765696768743e0001246d61785f746f74616cd50101384f7074696f6e3c5765696768743e0001207265736572766564d50101384f7074696f6e3c5765696768743e0000d50104184f7074696f6e04045401200108104e6f6e6500000010536f6d650400200000010000d9010c306672616d655f73797374656d186c696d6974732c426c6f636b4c656e677468000004010c6d6178dd0101545065724469737061746368436c6173733c7533323e0000dd010c346672616d655f737570706f72741c77656967687473405065724469737061746368436c6173730404540110000c01186e6f726d616c1001045400012c6f7065726174696f6e616c100104540001246d616e6461746f7279100104540000e1010c346672616d655f737570706f72741c776569676874733c52756e74696d65446257656967687400000801107265616420011857656967687400011477726974652001185765696768740000e501082873705f76657273696f6e3852756e74696d6556657273696f6e00001c0124737065635f6e616d65b101013452756e74696d65537472696e67000124696d706c5f6e616d65b101013452756e74696d65537472696e67000144617574686f72696e675f76657273696f6e10010c753332000130737065635f76657273696f6e10010c753332000130696d706c5f76657273696f6e10010c75333200011061706973e901011c4170697356656300014c7472616e73616374696f6e5f76657273696f6e10010c7533320000e901040c436f7704045401ed01000400ed01000000ed01000002f10100f10100000408f5011000f501000003080000000800f9010c306672616d655f73797374656d1870616c6c6574144572726f720404540001143c496e76616c6964537065634e616d650000081101546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e63726561736500010841015468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e00020cec4661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e0009014569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f73697465000304fc537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e74000404350154686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e046c4572726f7220666f72207468652053797374656d2070616c6c6574fd01000002010200010204184f7074696f6e0404540105020108104e6f6e6500000010536f6d650400050200000100000502084070616c6c65745f7363686564756c65722c5363686564756c65645632101043616c6c0109022c426c6f636b4e756d62657201103450616c6c6574734f726967696e019505244163636f756e7449640100001401206d617962655f696478013c4f7074696f6e3c5665633c75383e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6c0902011043616c6c0001386d617962655f706572696f646963110201944f7074696f6e3c7363686564756c653a3a506572696f643c426c6f636b4e756d6265723e3e0001186f726967696e9505013450616c6c6574734f726967696e000009020840706f6c6b61646f745f72756e74696d651043616c6c00019c1853797374656d0400b50101ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53797374656d2c2052756e74696d653e000000245363686564756c657204000d0201b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5363686564756c65722c2052756e74696d653e00010010426162650400150201a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c426162652c2052756e74696d653e0002002454696d657374616d7004003d0201b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54696d657374616d702c2052756e74696d653e0003001c496e64696365730400450201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c496e64696365732c2052756e74696d653e0004002042616c616e6365730400490201b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42616c616e6365732c2052756e74696d653e00050028417574686f72736869700400550201bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c417574686f72736869702c2052756e74696d653e0006001c5374616b696e6704005d0201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5374616b696e672c2052756e74696d653e0007001c53657373696f6e0400810201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53657373696f6e2c2052756e74696d653e0009001c4772616e6470610400950201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4772616e6470612c2052756e74696d653e000b0020496d4f6e6c696e650400c10201b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c496d4f6e6c696e652c2052756e74696d653e000c002444656d6f63726163790400dd0201b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c44656d6f63726163792c2052756e74696d653e000e001c436f756e63696c0400ed0201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f756e63696c2c2052756e74696d653e000f0048546563686e6963616c436f6d6d69747465650400f50201dd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c546563686e6963616c436f6d6d69747465652c2052756e74696d653e0010004050687261676d656e456c656374696f6e0400f90201d50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50687261676d656e456c656374696f6e2c2052756e74696d653e0011004c546563686e6963616c4d656d626572736869700400010301e10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c546563686e6963616c4d656d626572736869702c2052756e74696d653e0012002054726561737572790400050301b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54726561737572792c2052756e74696d653e00130018436c61696d730400090301ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436c61696d732c2052756e74696d653e0018001c56657374696e670400250301b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c56657374696e672c2052756e74696d653e0019001c5574696c69747904002d0301b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5574696c6974792c2052756e74696d653e001a00204964656e746974790400350301b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4964656e746974792c2052756e74696d653e001c001450726f78790400d50301a90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50726f78792c2052756e74696d653e001d00204d756c74697369670400dd0301b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d756c74697369672c2052756e74696d653e001e0020426f756e746965730400e50301b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c426f756e746965732c2052756e74696d653e00220010546970730400e90301a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c546970732c2052756e74696d653e00230068456c656374696f6e50726f76696465724d756c746950686173650400ed0301fd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c456c656374696f6e50726f76696465724d756c746950686173652c2052756e74696d653e00240034436f6e66696775726174696f6e0400d90401c90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f6e66696775726174696f6e2c2052756e74696d653e0033002c50617261735368617265640400dd0401c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50617261735368617265642c2052756e74696d653e0034003450617261496e636c7573696f6e0400e10401c90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50617261496e636c7573696f6e2c2052756e74696d653e0035003050617261496e686572656e740400e50401c50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50617261496e686572656e742c2052756e74696d653e0036001450617261730400510501a90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50617261732c2052756e74696d653e0038002c496e697469616c697a65720400550501c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c496e697469616c697a65722c2052756e74696d653e0039000c446d700400590501a10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c446d702c2052756e74696d653e003a000c556d7004005d0501a10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c556d702c2052756e74696d653e003b001048726d700400610501a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c48726d702c2052756e74696d653e003c00245265676973747261720400650501b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5265676973747261722c2052756e74696d653e00460014536c6f74730400690501a90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c536c6f74732c2052756e74696d653e0047002041756374696f6e7304006d0501b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c41756374696f6e732c2052756e74696d653e0048002443726f77646c6f616e0400750501b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c43726f77646c6f616e2c2052756e74696d653e004900000d020c4070616c6c65745f7363686564756c65721870616c6c65741043616c6c040454000118207363686564756c651001107768656e100138543a3a426c6f636b4e756d6265720001386d617962655f706572696f646963110201a04f7074696f6e3c7363686564756c653a3a506572696f643c543a3a426c6f636b4e756d6265723e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6c09020160426f783c3c5420617320436f6e6669673e3a3a43616c6c3e00002870416e6f6e796d6f75736c79207363686564756c652061207461736b2e002823203c7765696768743e9c2d2053203d204e756d626572206f6620616c7265616479207363686564756c65642063616c6c738c2d2042617365205765696768743a2032322e3239202b202e313236202a205320c2b573302d204442205765696768743a48202020202d20526561643a204167656e64614c202020202d2057726974653a204167656e646139012d2057696c6c20757365206261736520776569676874206f662032352077686963682073686f756c6420626520676f6f6420666f7220757020746f203330207363686564756c65642063616c6c732c23203c2f7765696768743e1863616e63656c0801107768656e100138543a3a426c6f636b4e756d626572000114696e64657810010c7533320001289443616e63656c20616e20616e6f6e796d6f75736c79207363686564756c6564207461736b2e002823203c7765696768743e9c2d2053203d204e756d626572206f6620616c7265616479207363686564756c65642063616c6c73902d2042617365205765696768743a2032322e3135202b20322e383639202a205320c2b573302d204442205765696768743a48202020202d20526561643a204167656e64616c202020202d2057726974653a204167656e64612c204c6f6f6b75703d012d2057696c6c20757365206261736520776569676874206f66203130302077686963682073686f756c6420626520676f6f6420666f7220757020746f203330207363686564756c65642063616c6c732c23203c2f7765696768743e387363686564756c655f6e616d6564140108696428011c5665633c75383e0001107768656e100138543a3a426c6f636b4e756d6265720001386d617962655f706572696f646963110201a04f7074696f6e3c7363686564756c653a3a506572696f643c543a3a426c6f636b4e756d6265723e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6c09020160426f783c3c5420617320436f6e6669673e3a3a43616c6c3e000228585363686564756c652061206e616d6564207461736b2e002823203c7765696768743e9c2d2053203d204e756d626572206f6620616c7265616479207363686564756c65642063616c6c73882d2042617365205765696768743a2032392e36202b202e313539202a205320c2b573302d204442205765696768743a68202020202d20526561643a204167656e64612c204c6f6f6b75706c202020202d2057726974653a204167656e64612c204c6f6f6b757049012d2057696c6c20757365206261736520776569676874206f662033352077686963682073686f756c6420626520676f6f6420666f72206d6f7265207468616e203330207363686564756c65642063616c6c732c23203c2f7765696768743e3063616e63656c5f6e616d6564040108696428011c5665633c75383e0003287843616e63656c2061206e616d6564207363686564756c6564207461736b2e002823203c7765696768743e9c2d2053203d204e756d626572206f6620616c7265616479207363686564756c65642063616c6c73902d2042617365205765696768743a2032342e3931202b20322e393037202a205320c2b573302d204442205765696768743a68202020202d20526561643a204167656e64612c204c6f6f6b75706c202020202d2057726974653a204167656e64612c204c6f6f6b75703d012d2057696c6c20757365206261736520776569676874206f66203130302077686963682073686f756c6420626520676f6f6420666f7220757020746f203330207363686564756c65642063616c6c732c23203c2f7765696768743e387363686564756c655f61667465721001146166746572100138543a3a426c6f636b4e756d6265720001386d617962655f706572696f646963110201a04f7074696f6e3c7363686564756c653a3a506572696f643c543a3a426c6f636b4e756d6265723e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6c09020160426f783c3c5420617320436f6e6669673e3a3a43616c6c3e000414a8416e6f6e796d6f75736c79207363686564756c652061207461736b20616674657220612064656c61792e002823203c7765696768743e5453616d65206173205b607363686564756c65605d2e2c23203c2f7765696768743e507363686564756c655f6e616d65645f6166746572140108696428011c5665633c75383e0001146166746572100138543a3a426c6f636b4e756d6265720001386d617962655f706572696f646963110201a04f7074696f6e3c7363686564756c653a3a506572696f643c543a3a426c6f636b4e756d6265723e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6c09020160426f783c3c5420617320436f6e6669673e3a3a43616c6c3e000514905363686564756c652061206e616d6564207461736b20616674657220612064656c61792e002823203c7765696768743ec453616d65206173205b607363686564756c655f6e616d6564605d2853656c663a3a7363686564756c655f6e616d6564292e2c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e110204184f7074696f6e04045401740108104e6f6e6500000010536f6d65040074000001000015020c2c70616c6c65745f626162651870616c6c65741043616c6c04045400010c4c7265706f72745f65717569766f636174696f6e08014865717569766f636174696f6e5f70726f6f6619020184426f783c45717569766f636174696f6e50726f6f663c543a3a4865616465723e3e00013c6b65795f6f776e65725f70726f6f662d020140543a3a4b65794f776e657250726f6f6600001009015265706f727420617574686f726974792065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667905017468652065717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f660d01616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63652077696c6c306265207265706f727465642e707265706f72745f65717569766f636174696f6e5f756e7369676e656408014865717569766f636174696f6e5f70726f6f6619020184426f783c45717569766f636174696f6e50726f6f663c543a3a4865616465723e3e00013c6b65795f6f776e65725f70726f6f662d020140543a3a4b65794f776e657250726f6f6600012009015265706f727420617574686f726974792065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667905017468652065717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f660d01616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63652077696c6c306265207265706f727465642e0d01546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c791501626c6f636b20617574686f72732077696c6c2063616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c2061732073756368150169662074686520626c6f636b20617574686f7220697320646566696e65642069742077696c6c20626520646566696e6564206173207468652065717569766f636174696f6e247265706f727465722e48706c616e5f636f6e6669675f6368616e6765040118636f6e666967310201504e657874436f6e66696744657363726970746f720002105d01506c616e20616e2065706f636820636f6e666967206368616e67652e205468652065706f636820636f6e666967206368616e6765206973207265636f7264656420616e642077696c6c20626520656e6163746564206f6e5101746865206e6578742063616c6c20746f2060656e6163745f65706f63685f6368616e6765602e2054686520636f6e6669672077696c6c20626520616374697661746564206f6e652065706f63682061667465722e59014d756c7469706c652063616c6c7320746f2074686973206d6574686f642077696c6c207265706c61636520616e79206578697374696e6720706c616e6e656420636f6e666967206368616e6765207468617420686164546e6f74206265656e20656e6163746564207965742e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e1902084873705f636f6e73656e7375735f736c6f74734445717569766f636174696f6e50726f6f660818486561646572011d02084964012502001001206f6666656e646572250201084964000110736c6f7429020110536c6f7400013066697273745f6865616465721d0201184865616465720001347365636f6e645f6865616465721d02011848656164657200001d02102873705f72756e74696d651c67656e65726963186865616465721848656164657208184e756d626572011010486173680121020014012c706172656e745f68617368240130486173683a3a4f75747075740001186e756d626572ad0101184e756d62657200012873746174655f726f6f74240130486173683a3a4f757470757400013c65787472696e736963735f726f6f74240130486173683a3a4f75747075740001186469676573742c01504469676573743c486173683a3a4f75747075743e000021020c2873705f72756e74696d65187472616974732c426c616b6554776f3235360000000025020c4473705f636f6e73656e7375735f626162650c617070185075626c696300000400bc013c737232353531393a3a5075626c696300002902084873705f636f6e73656e7375735f736c6f747310536c6f740000040020010c75363400002d02082873705f73657373696f6e3c4d656d6265727368697050726f6f6600000c011c73657373696f6e10013053657373696f6e496e646578000128747269655f6e6f646573c50101305665633c5665633c75383e3e00013c76616c696461746f725f636f756e7410013856616c696461746f72436f756e74000031020c4473705f636f6e73656e7375735f626162651c64696765737473504e657874436f6e66696744657363726970746f720001040856310801046335020128287536342c2075363429000134616c6c6f7765645f736c6f747339020130416c6c6f776564536c6f7473000100003502000004082020003902084473705f636f6e73656e7375735f6261626530416c6c6f776564536c6f747300010c305072696d617279536c6f7473000000745072696d617279416e645365636f6e64617279506c61696e536c6f74730001006c5072696d617279416e645365636f6e64617279565246536c6f7473000200003d020c4070616c6c65745f74696d657374616d701870616c6c65741043616c6c0404540001040c73657404010c6e6f7741020124543a3a4d6f6d656e7400004054536574207468652063757272656e742074696d652e005501546869732063616c6c2073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6ed470686173652c20696620746869732063616c6c206861736e2774206265656e20696e766f6b656420627920746861742074696d652e0041015468652074696d657374616d702073686f756c642062652067726561746572207468616e207468652070726576696f7573206f6e652062792074686520616d6f756e742073706563696669656420627940604d696e696d756d506572696f64602e00d4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652060496e686572656e74602e002823203c7765696768743e31012d20604f2831296020284e6f7465207468617420696d706c656d656e746174696f6e73206f6620604f6e54696d657374616d7053657460206d75737420616c736f20626520604f283129602961012d20312073746f72616765207265616420616e6420312073746f72616765206d75746174696f6e2028636f64656320604f28312960292e202862656361757365206f6620604469645570646174653a3a74616b656020696e402020606f6e5f66696e616c697a656029d42d2031206576656e742068616e646c657220606f6e5f74696d657374616d705f736574602e204d75737420626520604f283129602e2c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e4102000006200045020c3870616c6c65745f696e64696365731870616c6c65741043616c6c04045400011414636c61696d040114696e64657810013c543a3a4163636f756e74496e6465780000489841737369676e20616e2070726576696f75736c7920756e61737369676e656420696e6465782e00dc5061796d656e743a20604465706f736974602069732072657365727665642066726f6d207468652073656e646572206163636f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e00f02d2060696e646578603a2074686520696e64657820746f20626520636c61696d65642e2054686973206d757374206e6f7420626520696e207573652e0090456d6974732060496e64657841737369676e656460206966207375636365737366756c2e002823203c7765696768743e242d20604f283129602e982d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28312960292e602d204f6e652072657365727665206f7065726174696f6e2e302d204f6e65206576656e742e4c2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d902d204442205765696768743a203120526561642f577269746520284163636f756e7473292c23203c2f7765696768743e207472616e7366657208010c6e6577000130543a3a4163636f756e744964000114696e64657810013c543a3a4163636f756e74496e6465780001505d0141737369676e20616e20696e64657820616c7265616479206f776e6564206279207468652073656e64657220746f20616e6f74686572206163636f756e742e205468652062616c616e6365207265736572766174696f6eb86973206566666563746976656c79207472616e7366657272656420746f20746865206e6577206163636f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0025012d2060696e646578603a2074686520696e64657820746f2062652072652d61737369676e65642e2054686973206d757374206265206f776e6564206279207468652073656e6465722e5d012d20606e6577603a20746865206e6577206f776e6572206f662074686520696e6465782e20546869732066756e6374696f6e2069732061206e6f2d6f7020696620697420697320657175616c20746f2073656e6465722e0090456d6974732060496e64657841737369676e656460206966207375636365737366756c2e002823203c7765696768743e242d20604f283129602e982d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28312960292e642d204f6e65207472616e73666572206f7065726174696f6e2e302d204f6e65206576656e742e4c2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d302d204442205765696768743ae02020202d2052656164733a20496e6469636573204163636f756e74732c2053797374656d204163636f756e742028726563697069656e7429e42020202d205772697465733a20496e6469636573204163636f756e74732c2053797374656d204163636f756e742028726563697069656e74292c23203c2f7765696768743e1066726565040114696e64657810013c543a3a4163636f756e74496e646578000248944672656520757020616e20696e646578206f776e6564206279207468652073656e6465722e005d015061796d656e743a20416e792070726576696f7573206465706f73697420706c6163656420666f722074686520696e64657820697320756e726573657276656420696e207468652073656e646572206163636f756e742e005501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d757374206f776e2074686520696e6465782e000d012d2060696e646578603a2074686520696e64657820746f2062652066726565642e2054686973206d757374206265206f776e6564206279207468652073656e6465722e0084456d6974732060496e646578467265656460206966207375636365737366756c2e002823203c7765696768743e242d20604f283129602e982d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28312960292e602d204f6e652072657365727665206f7065726174696f6e2e302d204f6e65206576656e742e4c2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d902d204442205765696768743a203120526561642f577269746520284163636f756e7473292c23203c2f7765696768743e38666f7263655f7472616e736665720c010c6e6577000130543a3a4163636f756e744964000114696e64657810013c543a3a4163636f756e74496e646578000118667265657a65e80110626f6f6c0003545501466f72636520616e20696e64657820746f20616e206163636f756e742e205468697320646f65736e277420726571756972652061206465706f7369742e2049662074686520696e64657820697320616c7265616479e868656c642c207468656e20616e79206465706f736974206973207265696d62757273656420746f206974732063757272656e74206f776e65722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e00a42d2060696e646578603a2074686520696e64657820746f206265202872652d2961737369676e65642e5d012d20606e6577603a20746865206e6577206f776e6572206f662074686520696e6465782e20546869732066756e6374696f6e2069732061206e6f2d6f7020696620697420697320657175616c20746f2073656e6465722e41012d2060667265657a65603a2069662073657420746f206074727565602c2077696c6c20667265657a652074686520696e64657820736f2069742063616e6e6f74206265207472616e736665727265642e0090456d6974732060496e64657841737369676e656460206966207375636365737366756c2e002823203c7765696768743e242d20604f283129602e982d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28312960292e782d20557020746f206f6e652072657365727665206f7065726174696f6e2e302d204f6e65206576656e742e4c2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d302d204442205765696768743af42020202d2052656164733a20496e6469636573204163636f756e74732c2053797374656d204163636f756e7420286f726967696e616c206f776e657229f82020202d205772697465733a20496e6469636573204163636f756e74732c2053797374656d204163636f756e7420286f726967696e616c206f776e6572292c23203c2f7765696768743e18667265657a65040114696e64657810013c543a3a4163636f756e74496e6465780004484101467265657a6520616e20696e64657820736f2069742077696c6c20616c7761797320706f696e7420746f207468652073656e646572206163636f756e742e205468697320636f6e73756d657320746865206465706f7369742e005901546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d757374206861766520616c6e6f6e2d66726f7a656e206163636f756e742060696e646578602e00ac2d2060696e646578603a2074686520696e64657820746f2062652066726f7a656e20696e20706c6163652e0088456d6974732060496e64657846726f7a656e60206966207375636365737366756c2e002823203c7765696768743e242d20604f283129602e982d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28312960292e702d20557020746f206f6e6520736c617368206f7065726174696f6e2e302d204f6e65206576656e742e4c2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d902d204442205765696768743a203120526561642f577269746520284163636f756e7473292c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e49020c3c70616c6c65745f62616c616e6365731870616c6c65741043616c6c080454000449000118207472616e73666572080110646573744d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500011476616c7565cc0128543a3a42616c616e6365000070d45472616e7366657220736f6d65206c697175696420667265652062616c616e636520746f20616e6f74686572206163636f756e742e000501607472616e73666572602077696c6c207365742074686520604672656542616c616e636560206f66207468652073656e64657220616e642072656365697665722e1d0149742077696c6c2064656372656173652074686520746f74616c2069737375616e6365206f66207468652073797374656d2062792074686520605472616e73666572466565602e11014966207468652073656e6465722773206163636f756e742069732062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c74b06f6620746865207472616e736665722c20746865206163636f756e742077696c6c206265207265617065642e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520605369676e65646020627920746865207472616e736163746f722e002823203c7765696768743e61012d20446570656e64656e74206f6e20617267756d656e747320627574206e6f7420637269746963616c2c20676976656e2070726f70657220696d706c656d656e746174696f6e7320666f7220696e70757420636f6e66696794202074797065732e205365652072656c617465642066756e6374696f6e732062656c6f772e31012d20497420636f6e7461696e732061206c696d69746564206e756d626572206f6620726561647320616e642077726974657320696e7465726e616c6c7920616e64206e6f20636f6d706c6578382020636f6d7075746174696f6e2e004852656c617465642066756e6374696f6e733a004d0120202d2060656e737572655f63616e5f77697468647261776020697320616c776179732063616c6c656420696e7465726e616c6c792062757420686173206120626f756e64656420636f6d706c65786974792e290120202d205472616e7366657272696e672062616c616e63657320746f206163636f756e7473207468617420646964206e6f74206578697374206265666f72652077696c6c206361757365cc2020202060543a3a4f6e4e65774163636f756e743a3a6f6e5f6e65775f6163636f756e746020746f2062652063616c6c65642e5d0120202d2052656d6f76696e6720656e6f7567682066756e64732066726f6d20616e206163636f756e742077696c6c20747269676765722060543a3a4475737452656d6f76616c3a3a6f6e5f756e62616c616e636564602e5d0120202d20607472616e736665725f6b6565705f616c6976656020776f726b73207468652073616d652077617920617320607472616e73666572602c206275742068617320616e206164646974696f6e616c20636865636bdc202020207468617420746865207472616e736665722077696c6c206e6f74206b696c6c20746865206f726967696e206163636f756e742e842d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d41012d2042617365205765696768743a2037332e363420c2b5732c20776f7273742063617365207363656e6172696f20286163636f756e7420637265617465642c206163636f756e742072656d6f76656429d82d204442205765696768743a2031205265616420616e64203120577269746520746f2064657374696e6174696f6e206163636f756e7411012d204f726967696e206163636f756e7420697320616c726561647920696e206d656d6f72792c20736f206e6f204442206f7065726174696f6e7320666f72207468656d2e2c23203c2f7765696768743e2c7365745f62616c616e63650c010c77686f4d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001206e65775f66726565cc0128543a3a42616c616e63650001306e65775f7265736572766564cc0128543a3a42616c616e636500014890536574207468652062616c616e636573206f66206120676976656e206163636f756e742e001d01546869732077696c6c20616c74657220604672656542616c616e63656020616e642060526573657276656442616c616e63656020696e2073746f726167652e2069742077696c6c0501616c736f2064656372656173652074686520746f74616c2069737375616e6365206f66207468652073797374656d202860546f74616c49737375616e636560292e1501496620746865206e65772066726565206f722072657365727665642062616c616e63652069732062656c6f7720746865206578697374656e7469616c206465706f7369742cfc69742077696c6c20726573657420746865206163636f756e74206e6f6e63652028606672616d655f73797374656d3a3a4163636f756e744e6f6e636560292e00b0546865206469737061746368206f726967696e20666f7220746869732063616c6c2069732060726f6f74602e002823203c7765696768743e7c2d20496e646570656e64656e74206f662074686520617267756d656e74732ec02d20436f6e7461696e732061206c696d69746564206e756d626572206f6620726561647320616e64207772697465732e542d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d382d2042617365205765696768743a64202020202d204372656174696e673a2032372e353620c2b57360202020202d204b696c6c696e673a2033352e313120c2b573942d204442205765696768743a203120526561642c203120577269746520746f206077686f602c23203c2f7765696768743e38666f7263655f7472616e736665720c0118736f757263654d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365000110646573744d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500011476616c7565cc0128543a3a42616c616e63650002184d0145786163746c7920617320607472616e73666572602c2065786365707420746865206f726967696e206d75737420626520726f6f7420616e642074686520736f75726365206163636f756e74206d6179206265287370656369666965642e2823203c7765696768743e4d012d2053616d65206173207472616e736665722c20627574206164646974696f6e616c207265616420616e6420777269746520626563617573652074686520736f75726365206163636f756e74206973206e6f747c2020617373756d656420746f20626520696e20746865206f7665726c61792e2c23203c2f7765696768743e4c7472616e736665725f6b6565705f616c697665080110646573744d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500011476616c7565cc0128543a3a42616c616e636500032c4d0153616d6520617320746865205b607472616e73666572605d2063616c6c2c206275742077697468206120636865636b207468617420746865207472616e736665722077696c6c206e6f74206b696c6c207468653c6f726967696e206163636f756e742e00b8393925206f66207468652074696d6520796f752077616e74205b607472616e73666572605d20696e73746561642e00c05b607472616e73666572605d3a207374727563742e50616c6c65742e68746d6c236d6574686f642e7472616e736665722823203c7765696768743ee42d2043686561706572207468616e207472616e736665722062656361757365206163636f756e742063616e6e6f74206265206b696c6c65642e5c2d2042617365205765696768743a2035312e3420c2b57319012d204442205765696768743a2031205265616420616e64203120577269746520746f2064657374202873656e64657220697320696e206f7665726c617920616c72656164792928233c2f7765696768743e307472616e736665725f616c6c080110646573744d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001286b6565705f616c697665e80110626f6f6c00044405015472616e736665722074686520656e74697265207472616e7366657261626c652062616c616e63652066726f6d207468652063616c6c6572206163636f756e742e0059014e4f54453a20546869732066756e6374696f6e206f6e6c7920617474656d70747320746f207472616e73666572205f7472616e7366657261626c655f2062616c616e6365732e2054686973206d65616e7320746861746101616e79206c6f636b65642c2072657365727665642c206f72206578697374656e7469616c206465706f7369747320287768656e20606b6565705f616c6976656020697320607472756560292c2077696c6c206e6f742062655d017472616e7366657272656420627920746869732066756e6374696f6e2e20546f20656e73757265207468617420746869732066756e6374696f6e20726573756c747320696e2061206b696c6c6564206163636f756e742c4501796f75206d69676874206e65656420746f207072657061726520746865206163636f756e742062792072656d6f76696e6720616e79207265666572656e636520636f756e746572732c2073746f72616765406465706f736974732c206574632e2e2e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205369676e65642e00a02d206064657374603a2054686520726563697069656e74206f6620746865207472616e736665722e59012d20606b6565705f616c697665603a204120626f6f6c65616e20746f2064657465726d696e652069662074686520607472616e736665725f616c6c60206f7065726174696f6e2073686f756c642073656e6420616c6c4d0120206f66207468652066756e647320746865206163636f756e74206861732c2063617573696e67207468652073656e646572206163636f756e7420746f206265206b696c6c6564202866616c7365292c206f72590120207472616e736665722065766572797468696e6720657863657074206174206c6561737420746865206578697374656e7469616c206465706f7369742c2077686963682077696c6c2067756172616e74656520746fc820206b656570207468652073656e646572206163636f756e7420616c697665202874727565292e2023203c7765696768743e39012d204f2831292e204a757374206c696b65207472616e736665722c206275742072656164696e672074686520757365722773207472616e7366657261626c652062616c616e63652066697273742e302020233c2f7765696768743e3c666f7263655f756e7265736572766508010c77686f4d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365000118616d6f756e74180128543a3a42616c616e636500050cb0556e7265736572766520736f6d652062616c616e63652066726f6d2061207573657220627920666f7263652e006c43616e206f6e6c792062652063616c6c656420627920524f4f542e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e4d020c2873705f72756e74696d65306d756c746961646472657373304d756c74694164647265737308244163636f756e7449640100304163636f756e74496e6465780180011408496404000001244163636f756e74496400000014496e6465780400510201304163636f756e74496e6465780001000c526177040028011c5665633c75383e0002002441646472657373333204000401205b75383b2033325d0003002441646472657373323004000d0101205b75383b2032305d000400005102000006800055020c4470616c6c65745f617574686f72736869701870616c6c65741043616c6c040454000104287365745f756e636c65730401286e65775f756e636c6573590201385665633c543a3a4865616465723e0000046050726f76696465206120736574206f6620756e636c65732e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e59020000021d02005d02103870616c6c65745f7374616b696e671870616c6c65741870616c6c65741043616c6c04045400016410626f6e640c0128636f6e74726f6c6c65724d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500011476616c7565cc013042616c616e63654f663c543e00011470617965656102017c52657761726444657374696e6174696f6e3c543a3a4163636f756e7449643e000044610154616b6520746865206f726967696e206163636f756e74206173206120737461736820616e64206c6f636b207570206076616c756560206f66206974732062616c616e63652e2060636f6e74726f6c6c6572602077696c6c80626520746865206163636f756e74207468617420636f6e74726f6c732069742e002d016076616c756560206d757374206265206d6f7265207468616e2074686520606d696e696d756d5f62616c616e636560207370656369666965642062792060543a3a43757272656e6379602e002101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20627920746865207374617368206163636f756e742e003c456d6974732060426f6e646564602e2823203c7765696768743ed02d20496e646570656e64656e74206f662074686520617267756d656e74732e204d6f64657261746520636f6d706c65786974792e1c2d204f2831292e642d20546872656520657874726120444220656e74726965732e004d014e4f54453a2054776f206f66207468652073746f726167652077726974657320286053656c663a3a626f6e646564602c206053656c663a3a7061796565602920617265205f6e657665725f20636c65616e65643d01756e6c6573732074686520606f726967696e602066616c6c732062656c6f77205f6578697374656e7469616c206465706f7369745f20616e6420676574732072656d6f76656420617320647573742e482d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2c23203c2f7765696768743e28626f6e645f65787472610401386d61785f6164646974696f6e616ccc013042616c616e63654f663c543e00013c610141646420736f6d6520657874726120616d6f756e742074686174206861766520617070656172656420696e207468652073746173682060667265655f62616c616e63656020696e746f207468652062616c616e636520757030666f72207374616b696e672e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c65722e004d01557365207468697320696620746865726520617265206164646974696f6e616c2066756e647320696e20796f7572207374617368206163636f756e74207468617420796f75207769736820746f20626f6e642e5501556e6c696b65205b60626f6e64605d2853656c663a3a626f6e6429206f72205b60756e626f6e64605d2853656c663a3a756e626f6e642920746869732066756e6374696f6e20646f6573206e6f7420696d706f7365bc616e79206c696d69746174696f6e206f6e2074686520616d6f756e7420746861742063616e2062652061646465642e003c456d6974732060426f6e646564602e002823203c7765696768743ee42d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e1c2d204f2831292e2c23203c2f7765696768743e18756e626f6e6404011476616c7565cc013042616c616e63654f663c543e00024c51015363686564756c65206120706f7274696f6e206f662074686520737461736820746f20626520756e6c6f636b656420726561647920666f72207472616e73666572206f75742061667465722074686520626f6e64fc706572696f6420656e64732e2049662074686973206c656176657320616e20616d6f756e74206163746976656c7920626f6e646564206c657373207468616e2101543a3a43757272656e63793a3a6d696e696d756d5f62616c616e636528292c207468656e20697420697320696e6372656173656420746f207468652066756c6c20616d6f756e742e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0045014f6e63652074686520756e6c6f636b20706572696f6420697320646f6e652c20796f752063616e2063616c6c206077697468647261775f756e626f6e6465646020746f2061637475616c6c79206d6f7665bc7468652066756e6473206f7574206f66206d616e6167656d656e7420726561647920666f72207472616e736665722e0039014e6f206d6f7265207468616e2061206c696d69746564206e756d626572206f6620756e6c6f636b696e67206368756e6b73202873656520604d41585f554e4c4f434b494e475f4348554e4b536029390163616e20636f2d657869737473206174207468652073616d652074696d652e20496e207468617420636173652c205b6043616c6c3a3a77697468647261775f756e626f6e646564605d206e656564f8746f2062652063616c6c656420666972737420746f2072656d6f766520736f6d65206f6620746865206368756e6b732028696620706f737369626c65292e00390149662061207573657220656e636f756e74657273207468652060496e73756666696369656e74426f6e6460206572726f72207768656e2063616c6c696e6720746869732065787472696e7369632c1901746865792073686f756c642063616c6c20606368696c6c6020666972737420696e206f7264657220746f206672656520757020746865697220626f6e6465642066756e64732e0044456d6974732060556e626f6e646564602e009453656520616c736f205b6043616c6c3a3a77697468647261775f756e626f6e646564605d2e4477697468647261775f756e626f6e6465640401486e756d5f736c617368696e675f7370616e7310010c75333200033c290152656d6f766520616e7920756e6c6f636b6564206368756e6b732066726f6d207468652060756e6c6f636b696e67602071756575652066726f6d206f7572206d616e6167656d656e742e0031015468697320657373656e7469616c6c7920667265657320757020746861742062616c616e636520746f206265207573656420627920746865207374617368206163636f756e7420746f20646f4877686174657665722069742077616e74732e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722e0048456d697473206057697468647261776e602e006853656520616c736f205b6043616c6c3a3a756e626f6e64605d2e002823203c7765696768743e0501436f6d706c6578697479204f285329207768657265205320697320746865206e756d626572206f6620736c617368696e67207370616e7320746f2072656d6f766509014e4f54453a2057656967687420616e6e6f746174696f6e20697320746865206b696c6c207363656e6172696f2c20776520726566756e64206f74686572776973652e2c23203c2f7765696768743e2076616c696461746504011470726566736502013856616c696461746f725072656673000414e44465636c617265207468652064657369726520746f2076616c696461746520666f7220746865206f726967696e20636f6e74726f6c6c65722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e206e6f6d696e61746504011c746172676574736d0201a05665633c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653e00052c0d014465636c617265207468652064657369726520746f206e6f6d696e6174652060746172676574736020666f7220746865206f726967696e20636f6e74726f6c6c65722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e002823203c7765696768743e2d012d20546865207472616e73616374696f6e277320636f6d706c65786974792069732070726f706f7274696f6e616c20746f207468652073697a65206f662060746172676574736020284e29fc77686963682069732063617070656420617420436f6d7061637441737369676e6d656e74733a3a4c494d495420284d41585f4e4f4d494e4154494f4e53292ed42d20426f74682074686520726561647320616e642077726974657320666f6c6c6f7720612073696d696c6172207061747465726e2e2c23203c2f7765696768743e146368696c6c00062cc44465636c617265206e6f2064657369726520746f206569746865722076616c6964617465206f72206e6f6d696e6174652e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e002823203c7765696768743ee42d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e502d20436f6e7461696e73206f6e6520726561642ec42d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e2c23203c2f7765696768743e247365745f706179656504011470617965656102017c52657761726444657374696e6174696f6e3c543a3a4163636f756e7449643e000740b42852652d2973657420746865207061796d656e742074617267657420666f72206120636f6e74726f6c6c65722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e002823203c7765696768743ee42d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e942d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec42d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e242d2d2d2d2d2d2d2d2d382d205765696768743a204f283129302d204442205765696768743a48202020202d20526561643a204c656467657248202020202d2057726974653a2050617965652c23203c2f7765696768743e387365745f636f6e74726f6c6c6572040128636f6e74726f6c6c65724d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650008408c2852652d297365742074686520636f6e74726f6c6c6572206f6620612073746173682e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c65722e002823203c7765696768743ee42d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e942d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec42d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e282d2d2d2d2d2d2d2d2d2d305765696768743a204f283129284442205765696768743af02d20526561643a20426f6e6465642c204c6564676572204e657720436f6e74726f6c6c65722c204c6564676572204f6c6420436f6e74726f6c6c6572f42d2057726974653a20426f6e6465642c204c6564676572204e657720436f6e74726f6c6c65722c204c6564676572204f6c6420436f6e74726f6c6c65722c23203c2f7765696768743e4c7365745f76616c696461746f725f636f756e7404010c6e6577ad01010c75333200092090536574732074686520696465616c206e756d626572206f662076616c696461746f72732e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002823203c7765696768743e305765696768743a204f2831295857726974653a2056616c696461746f7220436f756e742c23203c2f7765696768743e60696e6372656173655f76616c696461746f725f636f756e740401286164646974696f6e616cad01010c753332000a1ca8496e6372656d656e74732074686520696465616c206e756d626572206f662076616c696461746f72732e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002823203c7765696768743e9853616d65206173205b6053656c663a3a7365745f76616c696461746f725f636f756e74605d2e2c23203c2f7765696768743e547363616c655f76616c696461746f725f636f756e74040118666163746f727102011c50657263656e74000b1cd05363616c652075702074686520696465616c206e756d626572206f662076616c696461746f7273206279206120666163746f722e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002823203c7765696768743e9853616d65206173205b6053656c663a3a7365745f76616c696461746f725f636f756e74605d2e2c23203c2f7765696768743e34666f7263655f6e6f5f65726173000c3cac466f72636520746865726520746f206265206e6f206e6577206572617320696e646566696e6974656c792e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002423205761726e696e6700190154686520656c656374696f6e2070726f6365737320737461727473206d756c7469706c6520626c6f636b73206265666f72652074686520656e64206f6620746865206572612e3901546875732074686520656c656374696f6e2070726f63657373206d6179206265206f6e676f696e67207768656e20746869732069732063616c6c65642e20496e2074686973206361736520746865dc656c656374696f6e2077696c6c20636f6e74696e756520756e74696c20746865206e65787420657261206973207472696767657265642e002823203c7765696768743e3c2d204e6f20617267756d656e74732e382d205765696768743a204f283129442d2057726974653a20466f7263654572612c23203c2f7765696768743e34666f7263655f6e65775f657261000d404901466f72636520746865726520746f2062652061206e6577206572612061742074686520656e64206f6620746865206e6578742073657373696f6e2e20416674657220746869732c2069742077696c6c2062659c726573657420746f206e6f726d616c20286e6f6e2d666f7263656429206265686176696f75722e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002423205761726e696e6700190154686520656c656374696f6e2070726f6365737320737461727473206d756c7469706c6520626c6f636b73206265666f72652074686520656e64206f6620746865206572612e4901496620746869732069732063616c6c6564206a757374206265666f72652061206e657720657261206973207472696767657265642c2074686520656c656374696f6e2070726f63657373206d6179206e6f748c6861766520656e6f75676820626c6f636b7320746f20676574206120726573756c742e002823203c7765696768743e3c2d204e6f20617267756d656e74732e382d205765696768743a204f283129402d20577269746520466f7263654572612c23203c2f7765696768743e447365745f696e76756c6e657261626c6573040134696e76756c6e657261626c6573dc01445665633c543a3a4163636f756e7449643e000e20c8536574207468652076616c696461746f72732077686f2063616e6e6f7420626520736c61736865642028696620616e79292e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002823203c7765696768743e182d204f285629582d2057726974653a20496e76756c6e657261626c65732c23203c2f7765696768743e34666f7263655f756e7374616b650801147374617368000130543a3a4163636f756e7449640001486e756d5f736c617368696e675f7370616e7310010c753332000f280901466f72636520612063757272656e74207374616b657220746f206265636f6d6520636f6d706c6574656c7920756e7374616b65642c20696d6d6564696174656c792e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002823203c7765696768743ee84f285329207768657265205320697320746865206e756d626572206f6620736c617368696e67207370616e7320746f2062652072656d6f766564b452656164733a20426f6e6465642c20536c617368696e67205370616e732c204163636f756e742c204c6f636b7345015772697465733a20426f6e6465642c20536c617368696e67205370616e73202869662053203e2030292c204c65646765722c2050617965652c2056616c696461746f72732c204e6f6d696e61746f72732ca44163636f756e742c204c6f636b732057726974657320456163683a205370616e536c617368202a20532c23203c2f7765696768743e50666f7263655f6e65775f6572615f616c776179730010380101466f72636520746865726520746f2062652061206e6577206572612061742074686520656e64206f662073657373696f6e7320696e646566696e6974656c792e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002423205761726e696e6700190154686520656c656374696f6e2070726f6365737320737461727473206d756c7469706c6520626c6f636b73206265666f72652074686520656e64206f6620746865206572612e4901496620746869732069732063616c6c6564206a757374206265666f72652061206e657720657261206973207472696767657265642c2074686520656c656374696f6e2070726f63657373206d6179206e6f748c6861766520656e6f75676820626c6f636b7320746f20676574206120726573756c742e002823203c7765696768743e382d205765696768743a204f283129442d2057726974653a20466f7263654572612c23203c2f7765696768743e5463616e63656c5f64656665727265645f736c61736808010c657261100120457261496e646578000134736c6173685f696e6469636573750201205665633c7533323e0011349443616e63656c20656e6163746d656e74206f66206120646566657272656420736c6173682e00b043616e2062652063616c6c6564206279207468652060543a3a536c61736843616e63656c4f726967696e602e000101506172616d65746572733a2065726120616e6420696e6469636573206f662074686520736c617368657320666f7220746861742065726120746f206b696c6c2e002823203c7765696768743e50436f6d706c65786974793a204f2855202b205329b477697468205520756e6170706c69656420736c6173686573207765696768746564207769746820553d31303030d0616e64205320697320746865206e756d626572206f6620736c61736820696e646963657320746f2062652063616e63656c65642e642d20526561643a20556e6170706c69656420536c6173686573682d2057726974653a20556e6170706c69656420536c61736865732c23203c2f7765696768743e387061796f75745f7374616b65727308013c76616c696461746f725f7374617368000130543a3a4163636f756e74496400010c657261100120457261496e6465780012540d01506179206f757420616c6c20746865207374616b65727320626568696e6420612073696e676c652076616c696461746f7220666f7220612073696e676c65206572612e0049012d206076616c696461746f725f73746173686020697320746865207374617368206163636f756e74206f66207468652076616c696461746f722e205468656972206e6f6d696e61746f72732c20757020746f2501202060543a3a4d61784e6f6d696e61746f72526577617264656450657256616c696461746f72602c2077696c6c20616c736f207265636569766520746865697220726577617264732e31012d206065726160206d617920626520616e7920657261206265747765656e20605b63757272656e745f657261202d20686973746f72795f64657074683b2063757272656e745f6572615d602e005501546865206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e20416e79206163636f756e742063616e2063616c6c20746869732066756e6374696f6e2c206576656e206966746974206973206e6f74206f6e65206f6620746865207374616b6572732e002823203c7765696768743efc2d2054696d6520636f6d706c65786974793a206174206d6f7374204f284d61784e6f6d696e61746f72526577617264656450657256616c696461746f72292ec02d20436f6e7461696e732061206c696d69746564206e756d626572206f6620726561647320616e64207772697465732e2c2d2d2d2d2d2d2d2d2d2d2d19014e20697320746865204e756d626572206f66207061796f75747320666f72207468652076616c696461746f722028696e636c7564696e67207468652076616c696461746f72291c5765696768743a842d205265776172642044657374696e6174696f6e205374616b65643a204f284e29c02d205265776172642044657374696e6174696f6e20436f6e74726f6c6c657220284372656174696e67293a204f284e29004d0120204e4f54453a20776569676874732061726520617373756d696e672074686174207061796f75747320617265206d61646520746f20616c697665207374617368206163636f756e7420285374616b6564292e55012020506179696e67206576656e2061206465616420636f6e74726f6c6c65722069732063686561706572207765696768742d776973652e20576520646f6e277420646f20616e7920726566756e647320686572652e2c23203c2f7765696768743e187265626f6e6404011476616c7565cc013042616c616e63654f663c543e001324dc5265626f6e64206120706f7274696f6e206f6620746865207374617368207363686564756c656420746f20626520756e6c6f636b65642e00d4546865206469737061746368206f726967696e206d757374206265207369676e65642062792074686520636f6e74726f6c6c65722e002823203c7765696768743ed02d2054696d6520636f6d706c65786974793a204f284c292c207768657265204c20697320756e6c6f636b696e67206368756e6b73902d20426f756e64656420627920604d41585f554e4c4f434b494e475f4348554e4b53602ef02d2053746f72616765206368616e6765733a2043616e277420696e6372656173652073746f726167652c206f6e6c792064656372656173652069742e2c23203c2f7765696768743e447365745f686973746f72795f64657074680801446e65775f686973746f72795f6465707468ad010120457261496e6465780001446572615f6974656d735f64656c65746564ad01010c7533320014582d015365742060486973746f72794465707468602076616c75652e20546869732066756e6374696f6e2077696c6c2064656c65746520616e7920686973746f727920696e666f726d6174696f6e7c7768656e2060486973746f727944657074686020697320726564756365642e002c506172616d65746572733a0d012d20606e65775f686973746f72795f6465707468603a20546865206e657720686973746f727920646570746820796f7520776f756c64206c696b6520746f207365742e59012d20606572615f6974656d735f64656c65746564603a20546865206e756d626572206f66206974656d7320746861742077696c6c2062652064656c6574656420627920746869732064697370617463682e20546869735d01202073686f756c64207265706f727420616c6c207468652073746f72616765206974656d7320746861742077696c6c2062652064656c6574656420627920636c656172696e67206f6c642065726120686973746f72792e590120204e656564656420746f207265706f727420616e2061636375726174652077656967687420666f72207468652064697370617463682e20547275737465642062792060526f6f746020746f207265706f727420616e4820206163637572617465206e756d6265722e00504f726967696e206d75737420626520726f6f742e002823203c7765696768743edc2d20453a204e756d626572206f6620686973746f7279206465707468732072656d6f7665642c20692e652e203130202d3e2037203d2033382d205765696768743a204f284529302d204442205765696768743a9c202020202d2052656164733a2043757272656e74204572612c20486973746f72792044657074686c202020202d205772697465733a20486973746f72792044657074682d01202020202d20436c6561722050726566697820456163683a20457261205374616b6572732c204572615374616b657273436c69707065642c204572617356616c696461746f7250726566732501202020202d2057726974657320456163683a204572617356616c696461746f725265776172642c2045726173526577617264506f696e74732c2045726173546f74616c5374616b652c6c20202020202045726173537461727453657373696f6e496e6465782c23203c2f7765696768743e28726561705f73746173680801147374617368000130543a3a4163636f756e7449640001486e756d5f736c617368696e675f7370616e7310010c7533320015405d0152656d6f766520616c6c20646174612073747275637475726520636f6e6365726e696e672061207374616b65722f7374617368206f6e6365206974732062616c616e636520697320617420746865206d696e696d756d2e5d015468697320697320657373656e7469616c6c79206571756976616c656e7420746f206077697468647261775f756e626f6e64656460206578636570742069742063616e2062652063616c6c656420627920616e796f6e65f4616e6420746865207461726765742060737461736860206d7573742068617665206e6f2066756e6473206c656674206265796f6e64207468652045442e008c546869732063616e2062652063616c6c65642066726f6d20616e79206f726967696e2e00fc2d20607374617368603a20546865207374617368206163636f756e7420746f20726561702e204974732062616c616e6365206d757374206265207a65726f2e002823203c7765696768743e2101436f6d706c65786974793a204f285329207768657265205320697320746865206e756d626572206f6620736c617368696e67207370616e73206f6e20746865206163636f756e742e284442205765696768743ad42d2052656164733a205374617368204163636f756e742c20426f6e6465642c20536c617368696e67205370616e732c204c6f636b734d012d205772697465733a20426f6e6465642c20536c617368696e67205370616e73202869662053203e2030292c204c65646765722c2050617965652c2056616c696461746f72732c204e6f6d696e61746f72732c5820205374617368204163636f756e742c204c6f636b73702d2057726974657320456163683a205370616e536c617368202a20532c23203c2f7765696768743e106b69636b04010c77686f6d0201a05665633c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653e00162ce052656d6f76652074686520676976656e206e6f6d696e6174696f6e732066726f6d207468652063616c6c696e672076616c696461746f722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e004d012d206077686f603a2041206c697374206f66206e6f6d696e61746f72207374617368206163636f756e74732077686f20617265206e6f6d696e6174696e6720746869732076616c696461746f72207768696368c0202073686f756c64206e6f206c6f6e676572206265206e6f6d696e6174696e6720746869732076616c696461746f722e0055014e6f74653a204d616b696e6720746869732063616c6c206f6e6c79206d616b65732073656e736520696620796f7520666972737420736574207468652076616c696461746f7220707265666572656e63657320746f78626c6f636b20616e792066757274686572206e6f6d696e6174696f6e732e487365745f7374616b696e675f6c696d6974731401486d696e5f6e6f6d696e61746f725f626f6e6418013042616c616e63654f663c543e0001486d696e5f76616c696461746f725f626f6e6418013042616c616e63654f663c543e00014c6d61785f6e6f6d696e61746f725f636f756e747902012c4f7074696f6e3c7533323e00014c6d61785f76616c696461746f725f636f756e747902012c4f7074696f6e3c7533323e0001247468726573686f6c647d02013c4f7074696f6e3c50657263656e743e001734b85570646174652074686520766172696f7573207374616b696e67206c696d69747320746869732070616c6c65742e0025012a20606d696e5f6e6f6d696e61746f725f626f6e64603a20546865206d696e696d756d2061637469766520626f6e64206e656564656420746f2062652061206e6f6d696e61746f722e25012a20606d696e5f76616c696461746f725f626f6e64603a20546865206d696e696d756d2061637469766520626f6e64206e656564656420746f20626520612076616c696461746f722e55012a20606d61785f6e6f6d696e61746f725f636f756e74603a20546865206d6178206e756d626572206f662075736572732077686f2063616e2062652061206e6f6d696e61746f72206174206f6e63652e205768656e98202073657420746f20604e6f6e65602c206e6f206c696d697420697320656e666f726365642e55012a20606d61785f76616c696461746f725f636f756e74603a20546865206d6178206e756d626572206f662075736572732077686f2063616e20626520612076616c696461746f72206174206f6e63652e205768656e98202073657420746f20604e6f6e65602c206e6f206c696d697420697320656e666f726365642e00a84f726967696e206d75737420626520526f6f7420746f2063616c6c20746869732066756e6374696f6e2e0035014e4f54453a204578697374696e67206e6f6d696e61746f727320616e642076616c696461746f72732077696c6c206e6f742062652061666665637465642062792074686973207570646174652e1101746f206b69636b2070656f706c6520756e64657220746865206e6577206c696d6974732c20606368696c6c5f6f74686572602073686f756c642062652063616c6c65642e2c6368696c6c5f6f74686572040128636f6e74726f6c6c6572000130543a3a4163636f756e74496400185441014465636c61726520612060636f6e74726f6c6c65726020746f2073746f702070617274696369706174696e672061732065697468657220612076616c696461746f72206f72206e6f6d696e61746f722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e004101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2c206275742063616e2062652063616c6c656420627920616e796f6e652e0059014966207468652063616c6c6572206973207468652073616d652061732074686520636f6e74726f6c6c6572206265696e672074617267657465642c207468656e206e6f206675727468657220636865636b7320617265d8656e666f726365642c20616e6420746869732066756e6374696f6e2062656861766573206a757374206c696b6520606368696c6c602e005d014966207468652063616c6c657220697320646966666572656e74207468616e2074686520636f6e74726f6c6c6572206265696e672074617267657465642c2074686520666f6c6c6f77696e6720636f6e646974696f6e73306d757374206265206d65743a3d012a204120604368696c6c5468726573686f6c6460206d7573742062652073657420616e6420636865636b656420776869636820646566696e657320686f7720636c6f736520746f20746865206d6178550120206e6f6d696e61746f7273206f722076616c696461746f7273207765206d757374207265616368206265666f72652075736572732063616e207374617274206368696c6c696e67206f6e652d616e6f746865722e59012a204120604d61784e6f6d696e61746f72436f756e746020616e6420604d617856616c696461746f72436f756e7460206d75737420626520736574207768696368206973207573656420746f2064657465726d696e65902020686f7720636c6f73652077652061726520746f20746865207468726573686f6c642e5d012a204120604d696e4e6f6d696e61746f72426f6e646020616e6420604d696e56616c696461746f72426f6e6460206d7573742062652073657420616e6420636865636b65642c2077686963682064657465726d696e65735101202069662074686973206973206120706572736f6e20746861742073686f756c64206265206368696c6c6564206265636175736520746865792068617665206e6f74206d657420746865207468726573686f6c64402020626f6e642072657175697265642e005501546869732063616e2062652068656c7066756c20696620626f6e6420726571756972656d656e74732061726520757064617465642c20616e64207765206e65656420746f2072656d6f7665206f6c642075736572739877686f20646f206e6f74207361746973667920746865736520726571756972656d656e74732e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e6102083870616c6c65745f7374616b696e674452657761726444657374696e6174696f6e04244163636f756e74496401000114185374616b656400000014537461736800010028436f6e74726f6c6c65720002001c4163636f756e7404000001244163636f756e744964000300104e6f6e65000400006502083870616c6c65745f7374616b696e673856616c696461746f7250726566730000080128636f6d6d697373696f6e6902011c50657262696c6c00011c626c6f636b6564e80110626f6f6c00006902000006b901006d020000024d020071020c3473705f61726974686d65746963287065725f7468696e67731c50657263656e74000004000801087538000075020000021000790204184f7074696f6e04045401100108104e6f6e6500000010536f6d6504001000000100007d0204184f7074696f6e0404540171020108104e6f6e6500000010536f6d6504007102000001000081020c3870616c6c65745f73657373696f6e1870616c6c65741043616c6c040454000108207365745f6b6579730801106b6579738502011c543a3a4b65797300011470726f6f6628011c5665633c75383e000038e453657473207468652073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c657220746f20606b657973602e1d01416c6c6f777320616e206163636f756e7420746f20736574206974732073657373696f6e206b6579207072696f7220746f206265636f6d696e6720612076616c696461746f722ec05468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e00d0546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265207369676e65642e002823203c7765696768743e11012d20436f6d706c65786974793a20604f283129602e2041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f6698202060543a3a4b6579733a3a6b65795f6964732829602077686963682069732066697865642eec2d20446252656164733a20606f726967696e206163636f756e74602c2060543a3a56616c696461746f7249644f66602c20604e6578744b65797360a02d2044625772697465733a20606f726967696e206163636f756e74602c20604e6578744b65797360802d204462526561647320706572206b65792069643a20604b65794f776e657260842d20446257726974657320706572206b65792069643a20604b65794f776e6572602c23203c2f7765696768743e2870757267655f6b657973000130c852656d6f76657320616e792073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c65722ec05468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e00d0546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265207369676e65642e002823203c7765696768743e61012d20436f6d706c65786974793a20604f2831296020696e206e756d626572206f66206b65792074797065732e2041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468a420206f662060543a3a4b6579733a3a6b65795f6964732829602077686963682069732066697865642eec2d20446252656164733a2060543a3a56616c696461746f7249644f66602c20604e6578744b657973602c20606f726967696e206163636f756e7460a02d2044625772697465733a20604e6578744b657973602c20606f726967696e206163636f756e7460842d20446257726974657320706572206b65792069643a20604b65794f776e6572602c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e85020840706f6c6b61646f745f72756e74696d652c53657373696f6e4b657973000018011c6772616e647061ac01d03c4772616e647061206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c696300011062616265250201c43c42616265206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c6963000124696d5f6f6e6c696e65b801d43c496d4f6e6c696e65206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c6963000138706172615f76616c696461746f72890201e03c496e697469616c697a6572206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c696300013c706172615f61737369676e6d656e748d0201f03c5061726153657373696f6e496e666f206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c696300014c617574686f726974795f646973636f76657279910201fc3c417574686f72697479446973636f76657279206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c696300008902104c706f6c6b61646f745f7072696d6974697665730876303476616c696461746f725f617070185075626c696300000400bc013c737232353531393a3a5075626c696300008d02104c706f6c6b61646f745f7072696d6974697665730876313861737369676e6d656e745f617070185075626c696300000400bc013c737232353531393a3a5075626c6963000091020c5873705f617574686f726974795f646973636f766572790c617070185075626c696300000400bc013c737232353531393a3a5075626c6963000095020c3870616c6c65745f6772616e6470611870616c6c65741043616c6c04045400010c4c7265706f72745f65717569766f636174696f6e08014865717569766f636174696f6e5f70726f6f66990201bc426f783c45717569766f636174696f6e50726f6f663c543a3a486173682c20543a3a426c6f636b4e756d6265723e3e00013c6b65795f6f776e65725f70726f6f662d020140543a3a4b65794f776e657250726f6f6600001009015265706f727420766f7465722065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667920746865f465717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66f8616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63654477696c6c206265207265706f727465642e707265706f72745f65717569766f636174696f6e5f756e7369676e656408014865717569766f636174696f6e5f70726f6f66990201bc426f783c45717569766f636174696f6e50726f6f663c543a3a486173682c20543a3a426c6f636b4e756d6265723e3e00013c6b65795f6f776e65725f70726f6f662d020140543a3a4b65794f776e657250726f6f6600012409015265706f727420766f7465722065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667920746865f465717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66f8616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63654477696c6c206265207265706f727465642e000d01546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c791501626c6f636b20617574686f72732077696c6c2063616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c2061732073756368150169662074686520626c6f636b20617574686f7220697320646566696e65642069742077696c6c20626520646566696e6564206173207468652065717569766f636174696f6e247265706f727465722e306e6f74655f7374616c6c656408011464656c6179100138543a3a426c6f636b4e756d62657200016c626573745f66696e616c697a65645f626c6f636b5f6e756d626572100138543a3a426c6f636b4e756d62657200021c19014e6f74652074686174207468652063757272656e7420617574686f7269747920736574206f6620746865204752414e4450412066696e616c697479206761646765742068617325017374616c6c65642e20546869732077696c6c2074726967676572206120666f7263656420617574686f7269747920736574206368616e67652061742074686520626567696e6e696e671d016f6620746865206e6578742073657373696f6e2c20746f20626520656e6163746564206064656c61796020626c6f636b7320616674657220746861742e205468652064656c6179110173686f756c64206265206869676820656e6f75676820746f20736166656c7920617373756d6520746861742074686520626c6f636b207369676e616c6c696e67207468652501666f72636564206368616e67652077696c6c206e6f742062652072652d6f726765642028652e672e203130303020626c6f636b73292e20546865204752414e44504120766f74657273250177696c6c20737461727420746865206e657720617574686f7269747920736574207573696e672074686520676976656e2066696e616c697a656420626c6f636b20617320626173652e584f6e6c792063616c6c61626c6520627920726f6f742e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e9902084c73705f66696e616c6974795f6772616e6470614445717569766f636174696f6e50726f6f660804480124044e0110000801187365745f6964200114536574496400013065717569766f636174696f6e9d02014845717569766f636174696f6e3c482c204e3e00009d02084c73705f66696e616c6974795f6772616e6470613045717569766f636174696f6e0804480124044e011001081c507265766f74650400a1020139016772616e6470613a3a45717569766f636174696f6e3c417574686f7269747949642c206772616e6470613a3a507265766f74653c482c204e3e2c0a417574686f726974795369676e61747572653e00000024507265636f6d6d69740400b5020141016772616e6470613a3a45717569766f636174696f6e3c417574686f7269747949642c206772616e6470613a3a507265636f6d6d69743c482c204e3e2c0a417574686f726974795369676e61747572653e00010000a102084066696e616c6974795f6772616e6470613045717569766f636174696f6e0c08496401ac045601a502045301a90200100130726f756e645f6e756d62657220010c7536340001206964656e74697479ac010849640001146669727374b102011828562c2053290001187365636f6e64b102011828562c2053290000a502084066696e616c6974795f6772616e6470611c507265766f74650804480124044e01100008012c7461726765745f68617368240104480001347461726765745f6e756d6265721001044e0000a9020c4c73705f66696e616c6974795f6772616e6470610c617070245369676e617475726500000400ad020148656432353531393a3a5369676e61747572650000ad020c1c73705f636f72651c65643235353139245369676e617475726500000400610101205b75383b2036345d0000b10200000408a502a90200b502084066696e616c6974795f6772616e6470613045717569766f636174696f6e0c08496401ac045601b902045301a90200100130726f756e645f6e756d62657220010c7536340001206964656e74697479ac010849640001146669727374bd02011828562c2053290001187365636f6e64bd02011828562c2053290000b902084066696e616c6974795f6772616e64706124507265636f6d6d69740804480124044e01100008012c7461726765745f68617368240104480001347461726765745f6e756d6265721001044e0000bd0200000408b902a90200c1020c4070616c6c65745f696d5f6f6e6c696e651870616c6c65741043616c6c04045400010424686561727462656174080124686561727462656174c50201644865617274626561743c543a3a426c6f636b4e756d6265723e0001247369676e6174757265d90201bc3c543a3a417574686f7269747949642061732052756e74696d654170705075626c69633e3a3a5369676e61747572650000242823203c7765696768743e61012d20436f6d706c65786974793a20604f284b202b20452960207768657265204b206973206c656e677468206f6620604b6579736020286865617274626561742e76616c696461746f72735f6c656e2920616e642045206973d820206c656e677468206f6620606865617274626561742e6e6574776f726b5f73746174652e65787465726e616c5f61646472657373608820202d20604f284b29603a206465636f64696e67206f66206c656e67746820604b60ac20202d20604f284529603a206465636f64696e672f656e636f64696e67206f66206c656e6774682060456039012d20446252656164733a2070616c6c65745f73657373696f6e206056616c696461746f7273602c2070616c6c65745f73657373696f6e206043757272656e74496e646578602c20604b657973602c5820206052656365697665644865617274626561747360802d2044625772697465733a2060526563656976656448656172746265617473602c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ec502084070616c6c65745f696d5f6f6e6c696e6524486561727462656174042c426c6f636b4e756d626572011000140130626c6f636b5f6e756d62657210012c426c6f636b4e756d6265720001346e6574776f726b5f7374617465c90201484f70617175654e6574776f726b537461746500013473657373696f6e5f696e64657810013053657373696f6e496e64657800013c617574686f726974795f696e64657810012441757468496e64657800013876616c696461746f72735f6c656e10010c7533320000c9020c1c73705f636f7265206f6666636861696e484f70617175654e6574776f726b5374617465000008011c706565725f6964cd0201304f706171756550656572496400014865787465726e616c5f616464726573736573d10201505665633c4f70617175654d756c7469616464723e0000cd02081c73705f636f7265304f70617175655065657249640000040028011c5665633c75383e0000d102000002d50200d5020c1c73705f636f7265206f6666636861696e3c4f70617175654d756c7469616464720000040028011c5665633c75383e0000d902104070616c6c65745f696d5f6f6e6c696e651c737232353531392c6170705f73723235353139245369676e6174757265000004005d010148737232353531393a3a5369676e61747572650000dd020c4070616c6c65745f64656d6f63726163791870616c6c65741043616c6c0404540001641c70726f706f736508013470726f706f73616c5f6861736824011c543a3a4861736800011476616c7565cc013042616c616e63654f663c543e00002c9c50726f706f736520612073656e73697469766520616374696f6e20746f2062652074616b656e2e001501546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737480686176652066756e647320746f20636f76657220746865206465706f7369742e00d42d206070726f706f73616c5f68617368603a205468652068617368206f66207468652070726f706f73616c20707265696d6167652e15012d206076616c7565603a2054686520616d6f756e74206f66206465706f73697420286d757374206265206174206c6561737420604d696e696d756d4465706f73697460292e0044456d697473206050726f706f736564602e00385765696768743a20604f28702960187365636f6e6408012070726f706f73616cad01012450726f70496e64657800014c7365636f6e64735f75707065725f626f756e64ad01010c753332000128b45369676e616c732061677265656d656e742077697468206120706172746963756c61722070726f706f73616c2e000101546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e64657211016d75737420686176652066756e647320746f20636f76657220746865206465706f7369742c20657175616c20746f20746865206f726967696e616c206465706f7369742e00c82d206070726f706f73616c603a2054686520696e646578206f66207468652070726f706f73616c20746f207365636f6e642e41012d20607365636f6e64735f75707065725f626f756e64603a20616e20757070657220626f756e64206f6e207468652063757272656e74206e756d626572206f66207365636f6e6473206f6e20746869732501202070726f706f73616c2e2045787472696e736963206973207765696768746564206163636f7264696e6720746f20746869732076616c75652077697468206e6f20726566756e642e001d015765696768743a20604f28532960207768657265205320697320746865206e756d626572206f66207365636f6e647320612070726f706f73616c20616c7265616479206861732e10766f74650801247265665f696e646578ad01013c5265666572656e64756d496e646578000110766f7465e10201644163636f756e74566f74653c42616c616e63654f663c543e3e0002243101566f746520696e2061207265666572656e64756d2e2049662060766f74652e69735f6179652829602c2074686520766f746520697320746f20656e616374207468652070726f706f73616c3bb86f7468657277697365206974206973206120766f746520746f206b65657020746865207374617475732071756f2e00c8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00dc2d20607265665f696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f20766f746520666f722e842d2060766f7465603a2054686520766f746520636f6e66696775726174696f6e2e002d015765696768743a20604f28522960207768657265205220697320746865206e756d626572206f66207265666572656e64756d732074686520766f7465722068617320766f746564206f6e2e40656d657267656e63795f63616e63656c0401247265665f696e64657810013c5265666572656e64756d496e6465780003204d015363686564756c6520616e20656d657267656e63792063616e63656c6c6174696f6e206f662061207265666572656e64756d2e2043616e6e6f742068617070656e20747769636520746f207468652073616d652c7265666572656e64756d2e00f8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265206043616e63656c6c6174696f6e4f726967696e602e00d02d607265665f696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f2063616e63656c2e003c5765696768743a20604f283129602e4065787465726e616c5f70726f706f736504013470726f706f73616c5f6861736824011c543a3a486173680004242d015363686564756c652061207265666572656e64756d20746f206265207461626c6564206f6e6365206974206973206c6567616c20746f207363686564756c6520616e2065787465726e616c2c7265666572656e64756d2e00e8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265206045787465726e616c4f726967696e602e00d42d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f66207468652070726f706f73616c2e0015015765696768743a20604f2856296020776974682056206e756d626572206f66207665746f65727320696e2074686520626c61636b6c697374206f662070726f706f73616c2eb820204465636f64696e6720766563206f66206c656e67746820562e2043686172676564206173206d6178696d756d6465787465726e616c5f70726f706f73655f6d616a6f7269747904013470726f706f73616c5f6861736824011c543a3a4861736800052c55015363686564756c652061206d616a6f726974792d63617272696573207265666572656e64756d20746f206265207461626c6564206e657874206f6e6365206974206973206c6567616c20746f207363686564756c655c616e2065787465726e616c207265666572656e64756d2e00ec546865206469737061746368206f6620746869732063616c6c206d757374206265206045787465726e616c4d616a6f726974794f726967696e602e00d42d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f66207468652070726f706f73616c2e004901556e6c696b65206065787465726e616c5f70726f706f7365602c20626c61636b6c697374696e6720686173206e6f20656666656374206f6e207468697320616e64206974206d6179207265706c6163652061987072652d7363686564756c6564206065787465726e616c5f70726f706f7365602063616c6c2e00385765696768743a20604f283129606065787465726e616c5f70726f706f73655f64656661756c7404013470726f706f73616c5f6861736824011c543a3a4861736800062c45015363686564756c652061206e656761746976652d7475726e6f75742d62696173207265666572656e64756d20746f206265207461626c6564206e657874206f6e6365206974206973206c6567616c20746f807363686564756c6520616e2065787465726e616c207265666572656e64756d2e00e8546865206469737061746368206f6620746869732063616c6c206d757374206265206045787465726e616c44656661756c744f726967696e602e00d42d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f66207468652070726f706f73616c2e004901556e6c696b65206065787465726e616c5f70726f706f7365602c20626c61636b6c697374696e6720686173206e6f20656666656374206f6e207468697320616e64206974206d6179207265706c6163652061987072652d7363686564756c6564206065787465726e616c5f70726f706f7365602063616c6c2e00385765696768743a20604f2831296028666173745f747261636b0c013470726f706f73616c5f6861736824011c543a3a48617368000134766f74696e675f706572696f64100138543a3a426c6f636b4e756d62657200011464656c6179100138543a3a426c6f636b4e756d62657200073c4d015363686564756c65207468652063757272656e746c792065787465726e616c6c792d70726f706f736564206d616a6f726974792d63617272696573207265666572656e64756d20746f206265207461626c65646101696d6d6564696174656c792e204966207468657265206973206e6f2065787465726e616c6c792d70726f706f736564207265666572656e64756d2063757272656e746c792c206f72206966207468657265206973206f6e65e8627574206974206973206e6f742061206d616a6f726974792d63617272696573207265666572656e64756d207468656e206974206661696c732e00d0546865206469737061746368206f6620746869732063616c6c206d757374206265206046617374547261636b4f726967696e602e00f42d206070726f706f73616c5f68617368603a205468652068617368206f66207468652063757272656e742065787465726e616c2070726f706f73616c2e5d012d2060766f74696e675f706572696f64603a2054686520706572696f64207468617420697320616c6c6f77656420666f7220766f74696e67206f6e20746869732070726f706f73616c2e20496e6372656173656420746f9420206046617374547261636b566f74696e67506572696f646020696620746f6f206c6f772e51012d206064656c6179603a20546865206e756d626572206f6620626c6f636b20616674657220766f74696e672068617320656e64656420696e20617070726f76616c20616e6420746869732073686f756c64206265b82020656e61637465642e205468697320646f65736e277420686176652061206d696e696d756d20616d6f756e742e0040456d697473206053746172746564602e00385765696768743a20604f28312960347665746f5f65787465726e616c04013470726f706f73616c5f6861736824011c543a3a48617368000824b85665746f20616e6420626c61636b6c697374207468652065787465726e616c2070726f706f73616c20686173682e00d8546865206469737061746368206f726967696e206f6620746869732063616c6c206d75737420626520605665746f4f726967696e602e002d012d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f66207468652070726f706f73616c20746f207665746f20616e6420626c61636b6c6973742e003c456d69747320605665746f6564602e00fc5765696768743a20604f2856202b206c6f6728562929602077686572652056206973206e756d626572206f6620606578697374696e67207665746f657273604463616e63656c5f7265666572656e64756d0401247265665f696e646578ad01013c5265666572656e64756d496e64657800091c5052656d6f76652061207265666572656e64756d2e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f526f6f745f2e00d42d20607265665f696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f2063616e63656c2e004423205765696768743a20604f283129602e3463616e63656c5f717565756564040114776869636810013c5265666572656e64756d496e646578000a1c9c43616e63656c20612070726f706f73616c2071756575656420666f7220656e6163746d656e742e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f526f6f745f2e00c42d20607768696368603a2054686520696e646578206f6620746865207265666572656e64756d20746f2063616e63656c2e0049015765696768743a20604f284429602077686572652060446020697320746865206974656d7320696e207468652064697370617463682071756575652e205765696768746564206173206044203d203130602e2064656c65676174650c0108746f000130543a3a4163636f756e744964000128636f6e76696374696f6ee9020128436f6e76696374696f6e00011c62616c616e636518013042616c616e63654f663c543e000b50390144656c65676174652074686520766f74696e6720706f77657220287769746820736f6d6520676976656e20636f6e76696374696f6e29206f66207468652073656e64696e67206163636f756e742e0055015468652062616c616e63652064656c656761746564206973206c6f636b656420666f72206173206c6f6e6720617320697427732064656c6567617465642c20616e64207468657265616674657220666f7220746865c874696d6520617070726f70726961746520666f722074686520636f6e76696374696f6e2773206c6f636b20706572696f642e005d01546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2c20616e6420746865207369676e696e67206163636f756e74206d757374206569746865723a7420202d2062652064656c65676174696e6720616c72656164793b206f72590120202d2068617665206e6f20766f74696e67206163746976697479202869662074686572652069732c207468656e2069742077696c6c206e65656420746f2062652072656d6f7665642f636f6e736f6c69646174656494202020207468726f7567682060726561705f766f746560206f722060756e766f746560292e0045012d2060746f603a20546865206163636f756e742077686f736520766f74696e6720746865206074617267657460206163636f756e74277320766f74696e6720706f7765722077696c6c20666f6c6c6f772e55012d2060636f6e76696374696f6e603a2054686520636f6e76696374696f6e20746861742077696c6c20626520617474616368656420746f207468652064656c65676174656420766f7465732e205768656e20746865410120206163636f756e7420697320756e64656c6567617465642c207468652066756e64732077696c6c206265206c6f636b656420666f722074686520636f72726573706f6e64696e6720706572696f642e61012d206062616c616e6365603a2054686520616d6f756e74206f6620746865206163636f756e7427732062616c616e636520746f206265207573656420696e2064656c65676174696e672e2054686973206d757374206e6f74b420206265206d6f7265207468616e20746865206163636f756e7427732063757272656e742062616c616e63652e0048456d697473206044656c656761746564602e003d015765696768743a20604f28522960207768657265205220697320746865206e756d626572206f66207265666572656e64756d732074686520766f7465722064656c65676174696e6720746f20686173c82020766f746564206f6e2e205765696768742069732063686172676564206173206966206d6178696d756d20766f7465732e28756e64656c6567617465000c30cc556e64656c65676174652074686520766f74696e6720706f776572206f66207468652073656e64696e67206163636f756e742e005d01546f6b656e73206d617920626520756e6c6f636b656420666f6c6c6f77696e67206f6e636520616e20616d6f756e74206f662074696d6520636f6e73697374656e74207769746820746865206c6f636b20706572696f64dc6f662074686520636f6e76696374696f6e2077697468207768696368207468652064656c65676174696f6e20776173206973737565642e004501546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d7573742062655463757272656e746c792064656c65676174696e672e0050456d6974732060556e64656c656761746564602e003d015765696768743a20604f28522960207768657265205220697320746865206e756d626572206f66207265666572656e64756d732074686520766f7465722064656c65676174696e6720746f20686173c82020766f746564206f6e2e205765696768742069732063686172676564206173206966206d6178696d756d20766f7465732e58636c6561725f7075626c69635f70726f706f73616c73000d1470436c6561727320616c6c207075626c69632070726f706f73616c732e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f526f6f745f2e003c5765696768743a20604f283129602e346e6f74655f707265696d616765040140656e636f6465645f70726f706f73616c28011c5665633c75383e000e285d0152656769737465722074686520707265696d61676520666f7220616e207570636f6d696e672070726f706f73616c2e205468697320646f65736e27742072657175697265207468652070726f706f73616c20746f2062652101696e207468652064697370617463682071756575652062757420646f657320726571756972652061206465706f7369742c2072657475726e6564206f6e636520656e61637465642e00c8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00c42d2060656e636f6465645f70726f706f73616c603a2054686520707265696d616765206f6620612070726f706f73616c2e0058456d6974732060507265696d6167654e6f746564602e004d015765696768743a20604f28452960207769746820452073697a65206f662060656e636f6465645f70726f706f73616c60202870726f7465637465642062792061207265717569726564206465706f736974292e646e6f74655f707265696d6167655f6f7065726174696f6e616c040140656e636f6465645f70726f706f73616c28011c5665633c75383e000f04090153616d6520617320606e6f74655f707265696d6167656020627574206f726967696e20697320604f7065726174696f6e616c507265696d6167654f726967696e602e586e6f74655f696d6d696e656e745f707265696d616765040140656e636f6465645f70726f706f73616c28011c5665633c75383e001030410152656769737465722074686520707265696d61676520666f7220616e207570636f6d696e672070726f706f73616c2e2054686973207265717569726573207468652070726f706f73616c20746f2062653d01696e207468652064697370617463682071756575652e204e6f206465706f736974206973206e65656465642e205768656e20746869732063616c6c206973207375636365737366756c2c20692e652e350174686520707265696d61676520686173206e6f74206265656e2075706c6f61646564206265666f726520616e64206d61746368657320736f6d6520696d6d696e656e742070726f706f73616c2c3c6e6f2066656520697320706169642e00c8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00c42d2060656e636f6465645f70726f706f73616c603a2054686520707265696d616765206f6620612070726f706f73616c2e0058456d6974732060507265696d6167654e6f746564602e004d015765696768743a20604f28452960207769746820452073697a65206f662060656e636f6465645f70726f706f73616c60202870726f7465637465642062792061207265717569726564206465706f736974292e886e6f74655f696d6d696e656e745f707265696d6167655f6f7065726174696f6e616c040140656e636f6465645f70726f706f73616c28011c5665633c75383e0011042d0153616d6520617320606e6f74655f696d6d696e656e745f707265696d6167656020627574206f726967696e20697320604f7065726174696f6e616c507265696d6167654f726967696e602e34726561705f707265696d61676508013470726f706f73616c5f6861736824011c543a3a4861736800016070726f706f73616c5f6c656e5f75707065725f626f756e64ad01010c75333200123cf052656d6f766520616e20657870697265642070726f706f73616c20707265696d61676520616e6420636f6c6c65637420746865206465706f7369742e00c8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00cc2d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f6620612070726f706f73616c2e5d012d206070726f706f73616c5f6c656e6774685f75707065725f626f756e64603a20616e20757070657220626f756e64206f6e206c656e677468206f66207468652070726f706f73616c2e2045787472696e736963206973c820207765696768746564206163636f7264696e6720746f20746869732076616c75652077697468206e6f20726566756e642e004d01546869732077696c6c206f6e6c7920776f726b2061667465722060566f74696e67506572696f646020626c6f636b732066726f6d207468652074696d6520746861742074686520707265696d6167652077617359016e6f7465642c2069662069742773207468652073616d65206163636f756e7420646f696e672069742e2049662069742773206120646966666572656e74206163636f756e742c207468656e206974276c6c206f6e6c79ac776f726b20616e206164646974696f6e616c2060456e6163746d656e74506572696f6460206c617465722e005c456d6974732060507265696d616765526561706564602e00b45765696768743a20604f284429602077686572652044206973206c656e677468206f662070726f706f73616c2e18756e6c6f636b040118746172676574000130543a3a4163636f756e74496400131ca0556e6c6f636b20746f6b656e732074686174206861766520616e2065787069726564206c6f636b2e00c8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00b82d2060746172676574603a20546865206163636f756e7420746f2072656d6f766520746865206c6f636b206f6e2e00bc5765696768743a20604f2852296020776974682052206e756d626572206f6620766f7465206f66207461726765742e2c72656d6f76655f766f7465040114696e64657810013c5265666572656e64756d496e64657800146c7c52656d6f7665206120766f746520666f722061207265666572656e64756d2e000c49663a882d20746865207265666572656e64756d207761732063616e63656c6c65642c206f727c2d20746865207265666572656e64756d206973206f6e676f696e672c206f72902d20746865207265666572656e64756d2068617320656e64656420737563682074686174fc20202d2074686520766f7465206f6620746865206163636f756e742077617320696e206f70706f736974696f6e20746f2074686520726573756c743b206f72d420202d20746865726520776173206e6f20636f6e76696374696f6e20746f20746865206163636f756e74277320766f74653b206f728420202d20746865206163636f756e74206d61646520612073706c697420766f74655d012e2e2e7468656e2074686520766f74652069732072656d6f76656420636c65616e6c7920616e64206120666f6c6c6f77696e672063616c6c20746f2060756e6c6f636b60206d617920726573756c7420696e206d6f72655866756e6473206265696e6720617661696c61626c652e00a849662c20686f77657665722c20746865207265666572656e64756d2068617320656e64656420616e643aec2d2069742066696e697368656420636f72726573706f6e64696e6720746f2074686520766f7465206f6620746865206163636f756e742c20616e64dc2d20746865206163636f756e74206d6164652061207374616e6461726420766f7465207769746820636f6e76696374696f6e2c20616e64bc2d20746865206c6f636b20706572696f64206f662074686520636f6e76696374696f6e206973206e6f74206f76657259012e2e2e7468656e20746865206c6f636b2077696c6c206265206167677265676174656420696e746f20746865206f766572616c6c206163636f756e742773206c6f636b2c207768696368206d617920696e766f6c766559012a6f7665726c6f636b696e672a20287768657265207468652074776f206c6f636b732061726520636f6d62696e656420696e746f20612073696e676c65206c6f636b207468617420697320746865206d6178696d756de46f6620626f74682074686520616d6f756e74206c6f636b656420616e64207468652074696d65206973206974206c6f636b656420666f72292e004901546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2c20616e6420746865207369676e6572206d7573742068617665206120766f7465887265676973746572656420666f72207265666572656e64756d2060696e646578602e00f42d2060696e646578603a2054686520696e646578206f66207265666572656e64756d206f662074686520766f746520746f2062652072656d6f7665642e0055015765696768743a20604f2852202b206c6f6720522960207768657265205220697320746865206e756d626572206f66207265666572656e646120746861742060746172676574602068617320766f746564206f6e2ed820205765696768742069732063616c63756c6174656420666f7220746865206d6178696d756d206e756d626572206f6620766f74652e4472656d6f76655f6f746865725f766f7465080118746172676574000130543a3a4163636f756e744964000114696e64657810013c5265666572656e64756d496e64657800153c7c52656d6f7665206120766f746520666f722061207265666572656e64756d2e004d0149662074686520607461726765746020697320657175616c20746f20746865207369676e65722c207468656e20746869732066756e6374696f6e2069732065786163746c79206571756976616c656e7420746f2d016072656d6f76655f766f7465602e204966206e6f7420657175616c20746f20746865207369676e65722c207468656e2074686520766f7465206d757374206861766520657870697265642c5501656974686572206265636175736520746865207265666572656e64756d207761732063616e63656c6c65642c20626563617573652074686520766f746572206c6f737420746865207265666572656e64756d206f7298626563617573652074686520636f6e76696374696f6e20706572696f64206973206f7665722e00c8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e004d012d2060746172676574603a20546865206163636f756e74206f662074686520766f746520746f2062652072656d6f7665643b2074686973206163636f756e74206d757374206861766520766f74656420666f725420207265666572656e64756d2060696e646578602ef42d2060696e646578603a2054686520696e646578206f66207265666572656e64756d206f662074686520766f746520746f2062652072656d6f7665642e0055015765696768743a20604f2852202b206c6f6720522960207768657265205220697320746865206e756d626572206f66207265666572656e646120746861742060746172676574602068617320766f746564206f6e2ed820205765696768742069732063616c63756c6174656420666f7220746865206d6178696d756d206e756d626572206f6620766f74652e38656e6163745f70726f706f73616c08013470726f706f73616c5f6861736824011c543a3a48617368000114696e64657810013c5265666572656e64756d496e6465780016044d01456e61637420612070726f706f73616c2066726f6d2061207265666572656e64756d2e20466f72206e6f77207765206a757374206d616b65207468652077656967687420626520746865206d6178696d756d2e24626c61636b6c69737408013470726f706f73616c5f6861736824011c543a3a4861736800013c6d617962655f7265665f696e6465787902015c4f7074696f6e3c5265666572656e64756d496e6465783e00173c45015065726d616e656e746c7920706c61636520612070726f706f73616c20696e746f2074686520626c61636b6c6973742e20546869732070726576656e74732069742066726f6d2065766572206265696e673c70726f706f73656420616761696e2e00510149662063616c6c6564206f6e206120717565756564207075626c6963206f722065787465726e616c2070726f706f73616c2c207468656e20746869732077696c6c20726573756c7420696e206974206265696e67510172656d6f7665642e2049662074686520607265665f696e6465786020737570706c69656420697320616e20616374697665207265666572656e64756d2077697468207468652070726f706f73616c20686173682c687468656e2069742077696c6c2062652063616e63656c6c65642e00ec546865206469737061746368206f726967696e206f6620746869732063616c6c206d7573742062652060426c61636b6c6973744f726967696e602e00f82d206070726f706f73616c5f68617368603a205468652070726f706f73616c206861736820746f20626c61636b6c697374207065726d616e656e746c792e45012d20607265665f696e646578603a20416e206f6e676f696e67207265666572656e64756d2077686f73652068617368206973206070726f706f73616c5f68617368602c2077686963682077696c6c2062652863616e63656c6c65642e0041015765696768743a20604f28702960202874686f756768206173207468697320697320616e20686967682d70726976696c6567652064697370617463682c20776520617373756d65206974206861732061502020726561736f6e61626c652076616c7565292e3c63616e63656c5f70726f706f73616c04012870726f705f696e646578ad01012450726f70496e64657800181c4852656d6f766520612070726f706f73616c2e000101546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265206043616e63656c50726f706f73616c4f726967696e602e00d02d206070726f705f696e646578603a2054686520696e646578206f66207468652070726f706f73616c20746f2063616e63656c2e00e45765696768743a20604f28702960207768657265206070203d205075626c696350726f70733a3a3c543e3a3a6465636f64655f6c656e282960042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ee1020c4070616c6c65745f64656d6f637261637910766f74652c4163636f756e74566f7465041c42616c616e636501180108205374616e64617264080110766f7465e5020110566f746500011c62616c616e636518011c42616c616e63650000001453706c697408010c61796518011c42616c616e636500010c6e617918011c42616c616e636500010000e5020c4070616c6c65745f64656d6f637261637910766f746510566f74650000040008000000e9020c4070616c6c65745f64656d6f637261637928636f6e76696374696f6e28436f6e76696374696f6e00011c104e6f6e65000000204c6f636b65643178000100204c6f636b65643278000200204c6f636b65643378000300204c6f636b65643478000400204c6f636b65643578000500204c6f636b6564367800060000ed020c4470616c6c65745f636f6c6c6563746976651870616c6c65741043616c6c0804540004490001182c7365745f6d656d626572730c012c6e65775f6d656d62657273dc01445665633c543a3a4163636f756e7449643e0001147072696d65f10201504f7074696f6e3c543a3a4163636f756e7449643e0001246f6c645f636f756e7410012c4d656d626572436f756e74000064805365742074686520636f6c6c6563746976652773206d656d626572736869702e0045012d20606e65775f6d656d62657273603a20546865206e6577206d656d626572206c6973742e204265206e69636520746f2074686520636861696e20616e642070726f7669646520697420736f727465642ee02d20607072696d65603a20546865207072696d65206d656d6265722077686f736520766f74652073657473207468652064656661756c742e59012d20606f6c645f636f756e74603a2054686520757070657220626f756e6420666f72207468652070726576696f7573206e756d626572206f66206d656d6265727320696e2073746f726167652e205573656420666f7250202077656967687420657374696d6174696f6e2e0054526571756972657320726f6f74206f726967696e2e0051014e4f54453a20446f6573206e6f7420656e666f7263652074686520657870656374656420604d61784d656d6265727360206c696d6974206f6e2074686520616d6f756e74206f66206d656d626572732c2062757421012020202020207468652077656967687420657374696d6174696f6e732072656c79206f6e20697420746f20657374696d61746520646973706174636861626c65207765696768742e002823203c7765696768743e24232320576569676874502d20604f284d50202b204e29602077686572653ae020202d20604d60206f6c642d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429e020202d20604e60206e65772d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e646564299820202d206050602070726f706f73616c732d636f756e742028636f64652d626f756e64656429142d2044423a510120202d20312073746f72616765206d75746174696f6e2028636f64656320604f284d296020726561642c20604f284e29602077726974652920666f722072656164696e6720616e642077726974696e67207468652c202020206d656d62657273ec20202d20312073746f7261676520726561642028636f64656320604f285029602920666f722072656164696e67207468652070726f706f73616c73450120202d206050602073746f72616765206d75746174696f6e732028636f64656320604f284d29602920666f72207570646174696e672074686520766f74657320666f7220656163682070726f706f73616c5d0120202d20312073746f726167652077726974652028636f64656320604f283129602920666f722064656c6574696e6720746865206f6c6420607072696d656020616e642073657474696e6720746865206e6577206f6e652c23203c2f7765696768743e1c6578656375746508012070726f706f73616c0902017c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e0001306c656e6774685f626f756e64ad01010c75333200012cf0446973706174636820612070726f706f73616c2066726f6d2061206d656d626572207573696e672074686520604d656d62657260206f726967696e2e00a84f726967696e206d7573742062652061206d656d626572206f662074686520636f6c6c6563746976652e002823203c7765696768743e2423232057656967687455012d20604f284d202b2050296020776865726520604d60206d656d626572732d636f756e742028636f64652d626f756e6465642920616e642060506020636f6d706c6578697479206f66206469737061746368696e673020206070726f706f73616c60d42d2044423a203120726561642028636f64656320604f284d296029202b20444220616363657373206f66206070726f706f73616c60242d2031206576656e742c23203c2f7765696768743e1c70726f706f73650c01247468726573686f6c64ad01012c4d656d626572436f756e7400012070726f706f73616c0902017c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e0001306c656e6774685f626f756e64ad01010c75333200026cf84164642061206e65772070726f706f73616c20746f2065697468657220626520766f746564206f6e206f72206578656375746564206469726563746c792e00845265717569726573207468652073656e64657220746f206265206d656d6265722e004101607468726573686f6c64602064657465726d696e65732077686574686572206070726f706f73616c60206973206578656375746564206469726563746c792028607468726573686f6c64203c20326029546f722070757420757020666f7220766f74696e672e002823203c7765696768743e24232320576569676874ac2d20604f2842202b204d202b2050312960206f7220604f2842202b204d202b20503229602077686572653ae020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429dc20202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429c420202d206272616e6368696e6720697320696e666c75656e63656420627920607468726573686f6c64602077686572653af4202020202d20605031602069732070726f706f73616c20657865637574696f6e20636f6d706c65786974792028607468726573686f6c64203c20326029fc202020202d20605032602069732070726f706f73616c732d636f756e742028636f64652d626f756e646564292028607468726573686f6c64203e3d20326029142d2044423ab420202d20312073746f726167652072656164206069735f6d656d626572602028636f64656320604f284d296029f020202d20312073746f726167652072656164206050726f706f73616c4f663a3a636f6e7461696e735f6b6579602028636f64656320604f2831296029a820202d20444220616363657373657320696e666c75656e63656420627920607468726573686f6c64603a0901202020202d204549544845522073746f7261676520616363657373657320646f6e65206279206070726f706f73616c602028607468726573686f6c64203c20326029b8202020202d204f522070726f706f73616c20696e73657274696f6e2028607468726573686f6c64203c3d20326029d82020202020202d20312073746f72616765206d75746174696f6e206050726f706f73616c73602028636f64656320604f285032296029e42020202020202d20312073746f72616765206d75746174696f6e206050726f706f73616c436f756e74602028636f64656320604f2831296029cc2020202020202d20312073746f72616765207772697465206050726f706f73616c4f66602028636f64656320604f2842296029bc2020202020202d20312073746f726167652077726974652060566f74696e67602028636f64656320604f284d2960292c20202d2031206576656e742c23203c2f7765696768743e10766f74650c012070726f706f73616c24011c543a3a48617368000114696e646578ad01013450726f706f73616c496e64657800011c617070726f7665e80110626f6f6c00033cf041646420616e20617965206f72206e617920766f746520666f72207468652073656e64657220746f2074686520676976656e2070726f706f73616c2e008c5265717569726573207468652073656e64657220746f2062652061206d656d6265722e0049015472616e73616374696f6e20666565732077696c6c2062652077616976656420696620746865206d656d62657220697320766f74696e67206f6e20616e7920706172746963756c61722070726f706f73616c5101666f72207468652066697273742074696d6520616e64207468652063616c6c206973207375636365737366756c2e2053756273657175656e7420766f7465206368616e6765732077696c6c206368617267652061106665652e2823203c7765696768743e2423232057656967687409012d20604f284d296020776865726520604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429142d2044423aac20202d20312073746f72616765207265616420604d656d62657273602028636f64656320604f284d296029b820202d20312073746f72616765206d75746174696f6e2060566f74696e67602028636f64656320604f284d296029242d2031206576656e742c23203c2f7765696768743e14636c6f736510013470726f706f73616c5f6861736824011c543a3a48617368000114696e646578ad01013450726f706f73616c496e64657800015470726f706f73616c5f7765696768745f626f756e64410201185765696768740001306c656e6774685f626f756e64ad01010c7533320004804d01436c6f7365206120766f746520746861742069732065697468657220617070726f7665642c20646973617070726f766564206f722077686f736520766f74696e6720706572696f642068617320656e6465642e0055014d61792062652063616c6c656420627920616e79207369676e6564206163636f756e7420696e206f7264657220746f2066696e69736820766f74696e6720616e6420636c6f7365207468652070726f706f73616c2e00490149662063616c6c6564206265666f72652074686520656e64206f662074686520766f74696e6720706572696f642069742077696c6c206f6e6c7920636c6f73652074686520766f7465206966206974206973bc68617320656e6f75676820766f74657320746f20626520617070726f766564206f7220646973617070726f7665642e00490149662063616c6c65642061667465722074686520656e64206f662074686520766f74696e6720706572696f642061627374656e74696f6e732061726520636f756e7465642061732072656a656374696f6e732501756e6c6573732074686572652069732061207072696d65206d656d6265722073657420616e6420746865207072696d65206d656d626572206361737420616e20617070726f76616c2e00610149662074686520636c6f7365206f7065726174696f6e20636f6d706c65746573207375636365737366756c6c79207769746820646973617070726f76616c2c20746865207472616e73616374696f6e206665652077696c6c5d016265207761697665642e204f746865727769736520657865637574696f6e206f662074686520617070726f766564206f7065726174696f6e2077696c6c206265206368617267656420746f207468652063616c6c65722e0061012b206070726f706f73616c5f7765696768745f626f756e64603a20546865206d6178696d756d20616d6f756e74206f662077656967687420636f6e73756d656420627920657865637574696e672074686520636c6f7365642470726f706f73616c2e61012b20606c656e6774685f626f756e64603a2054686520757070657220626f756e6420666f7220746865206c656e677468206f66207468652070726f706f73616c20696e2073746f726167652e20436865636b65642076696135016073746f726167653a3a726561646020736f206974206973206073697a655f6f663a3a3c7533323e2829203d3d203460206c6172676572207468616e207468652070757265206c656e6774682e002823203c7765696768743e24232320576569676874742d20604f2842202b204d202b205031202b20503229602077686572653ae020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429dc20202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429c820202d20605031602069732074686520636f6d706c6578697479206f66206070726f706f73616c6020707265696d6167652ea420202d20605032602069732070726f706f73616c2d636f756e742028636f64652d626f756e64656429142d2044423a0d01202d20322073746f726167652072656164732028604d656d62657273603a20636f64656320604f284d29602c20605072696d65603a20636f64656320604f28312960295901202d2033206d75746174696f6e73202860566f74696e67603a20636f64656320604f284d29602c206050726f706f73616c4f66603a20636f64656320604f284229602c206050726f706f73616c73603a20636f6465632c202020604f285032296029dc202d20616e79206d75746174696f6e7320646f6e65207768696c6520657865637574696e67206070726f706f73616c6020286050316029402d20757020746f2033206576656e74732c23203c2f7765696768743e4c646973617070726f76655f70726f706f73616c04013470726f706f73616c5f6861736824011c543a3a486173680005385901446973617070726f766520612070726f706f73616c2c20636c6f73652c20616e642072656d6f76652069742066726f6d207468652073797374656d2c207265676172646c657373206f66206974732063757272656e741873746174652e00884d7573742062652063616c6c65642062792074686520526f6f74206f726967696e2e002c506172616d65746572733a1d012a206070726f706f73616c5f68617368603a205468652068617368206f66207468652070726f706f73616c20746861742073686f756c6420626520646973617070726f7665642e002823203c7765696768743edc436f6d706c65786974793a204f285029207768657265205020697320746865206e756d626572206f66206d61782070726f706f73616c73284442205765696768743a482a2052656164733a2050726f706f73616c739c2a205772697465733a20566f74696e672c2050726f706f73616c732c2050726f706f73616c4f662c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ef10204184f7074696f6e04045401000108104e6f6e6500000010536f6d650400000000010000f5020c4470616c6c65745f636f6c6c6563746976651870616c6c65741043616c6c0804540004490001182c7365745f6d656d626572730c012c6e65775f6d656d62657273dc01445665633c543a3a4163636f756e7449643e0001147072696d65f10201504f7074696f6e3c543a3a4163636f756e7449643e0001246f6c645f636f756e7410012c4d656d626572436f756e74000064805365742074686520636f6c6c6563746976652773206d656d626572736869702e0045012d20606e65775f6d656d62657273603a20546865206e6577206d656d626572206c6973742e204265206e69636520746f2074686520636861696e20616e642070726f7669646520697420736f727465642ee02d20607072696d65603a20546865207072696d65206d656d6265722077686f736520766f74652073657473207468652064656661756c742e59012d20606f6c645f636f756e74603a2054686520757070657220626f756e6420666f72207468652070726576696f7573206e756d626572206f66206d656d6265727320696e2073746f726167652e205573656420666f7250202077656967687420657374696d6174696f6e2e0054526571756972657320726f6f74206f726967696e2e0051014e4f54453a20446f6573206e6f7420656e666f7263652074686520657870656374656420604d61784d656d6265727360206c696d6974206f6e2074686520616d6f756e74206f66206d656d626572732c2062757421012020202020207468652077656967687420657374696d6174696f6e732072656c79206f6e20697420746f20657374696d61746520646973706174636861626c65207765696768742e002823203c7765696768743e24232320576569676874502d20604f284d50202b204e29602077686572653ae020202d20604d60206f6c642d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429e020202d20604e60206e65772d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e646564299820202d206050602070726f706f73616c732d636f756e742028636f64652d626f756e64656429142d2044423a510120202d20312073746f72616765206d75746174696f6e2028636f64656320604f284d296020726561642c20604f284e29602077726974652920666f722072656164696e6720616e642077726974696e67207468652c202020206d656d62657273ec20202d20312073746f7261676520726561642028636f64656320604f285029602920666f722072656164696e67207468652070726f706f73616c73450120202d206050602073746f72616765206d75746174696f6e732028636f64656320604f284d29602920666f72207570646174696e672074686520766f74657320666f7220656163682070726f706f73616c5d0120202d20312073746f726167652077726974652028636f64656320604f283129602920666f722064656c6574696e6720746865206f6c6420607072696d656020616e642073657474696e6720746865206e6577206f6e652c23203c2f7765696768743e1c6578656375746508012070726f706f73616c0902017c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e0001306c656e6774685f626f756e64ad01010c75333200012cf0446973706174636820612070726f706f73616c2066726f6d2061206d656d626572207573696e672074686520604d656d62657260206f726967696e2e00a84f726967696e206d7573742062652061206d656d626572206f662074686520636f6c6c6563746976652e002823203c7765696768743e2423232057656967687455012d20604f284d202b2050296020776865726520604d60206d656d626572732d636f756e742028636f64652d626f756e6465642920616e642060506020636f6d706c6578697479206f66206469737061746368696e673020206070726f706f73616c60d42d2044423a203120726561642028636f64656320604f284d296029202b20444220616363657373206f66206070726f706f73616c60242d2031206576656e742c23203c2f7765696768743e1c70726f706f73650c01247468726573686f6c64ad01012c4d656d626572436f756e7400012070726f706f73616c0902017c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e0001306c656e6774685f626f756e64ad01010c75333200026cf84164642061206e65772070726f706f73616c20746f2065697468657220626520766f746564206f6e206f72206578656375746564206469726563746c792e00845265717569726573207468652073656e64657220746f206265206d656d6265722e004101607468726573686f6c64602064657465726d696e65732077686574686572206070726f706f73616c60206973206578656375746564206469726563746c792028607468726573686f6c64203c20326029546f722070757420757020666f7220766f74696e672e002823203c7765696768743e24232320576569676874ac2d20604f2842202b204d202b2050312960206f7220604f2842202b204d202b20503229602077686572653ae020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429dc20202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429c420202d206272616e6368696e6720697320696e666c75656e63656420627920607468726573686f6c64602077686572653af4202020202d20605031602069732070726f706f73616c20657865637574696f6e20636f6d706c65786974792028607468726573686f6c64203c20326029fc202020202d20605032602069732070726f706f73616c732d636f756e742028636f64652d626f756e646564292028607468726573686f6c64203e3d20326029142d2044423ab420202d20312073746f726167652072656164206069735f6d656d626572602028636f64656320604f284d296029f020202d20312073746f726167652072656164206050726f706f73616c4f663a3a636f6e7461696e735f6b6579602028636f64656320604f2831296029a820202d20444220616363657373657320696e666c75656e63656420627920607468726573686f6c64603a0901202020202d204549544845522073746f7261676520616363657373657320646f6e65206279206070726f706f73616c602028607468726573686f6c64203c20326029b8202020202d204f522070726f706f73616c20696e73657274696f6e2028607468726573686f6c64203c3d20326029d82020202020202d20312073746f72616765206d75746174696f6e206050726f706f73616c73602028636f64656320604f285032296029e42020202020202d20312073746f72616765206d75746174696f6e206050726f706f73616c436f756e74602028636f64656320604f2831296029cc2020202020202d20312073746f72616765207772697465206050726f706f73616c4f66602028636f64656320604f2842296029bc2020202020202d20312073746f726167652077726974652060566f74696e67602028636f64656320604f284d2960292c20202d2031206576656e742c23203c2f7765696768743e10766f74650c012070726f706f73616c24011c543a3a48617368000114696e646578ad01013450726f706f73616c496e64657800011c617070726f7665e80110626f6f6c00033cf041646420616e20617965206f72206e617920766f746520666f72207468652073656e64657220746f2074686520676976656e2070726f706f73616c2e008c5265717569726573207468652073656e64657220746f2062652061206d656d6265722e0049015472616e73616374696f6e20666565732077696c6c2062652077616976656420696620746865206d656d62657220697320766f74696e67206f6e20616e7920706172746963756c61722070726f706f73616c5101666f72207468652066697273742074696d6520616e64207468652063616c6c206973207375636365737366756c2e2053756273657175656e7420766f7465206368616e6765732077696c6c206368617267652061106665652e2823203c7765696768743e2423232057656967687409012d20604f284d296020776865726520604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429142d2044423aac20202d20312073746f72616765207265616420604d656d62657273602028636f64656320604f284d296029b820202d20312073746f72616765206d75746174696f6e2060566f74696e67602028636f64656320604f284d296029242d2031206576656e742c23203c2f7765696768743e14636c6f736510013470726f706f73616c5f6861736824011c543a3a48617368000114696e646578ad01013450726f706f73616c496e64657800015470726f706f73616c5f7765696768745f626f756e64410201185765696768740001306c656e6774685f626f756e64ad01010c7533320004804d01436c6f7365206120766f746520746861742069732065697468657220617070726f7665642c20646973617070726f766564206f722077686f736520766f74696e6720706572696f642068617320656e6465642e0055014d61792062652063616c6c656420627920616e79207369676e6564206163636f756e7420696e206f7264657220746f2066696e69736820766f74696e6720616e6420636c6f7365207468652070726f706f73616c2e00490149662063616c6c6564206265666f72652074686520656e64206f662074686520766f74696e6720706572696f642069742077696c6c206f6e6c7920636c6f73652074686520766f7465206966206974206973bc68617320656e6f75676820766f74657320746f20626520617070726f766564206f7220646973617070726f7665642e00490149662063616c6c65642061667465722074686520656e64206f662074686520766f74696e6720706572696f642061627374656e74696f6e732061726520636f756e7465642061732072656a656374696f6e732501756e6c6573732074686572652069732061207072696d65206d656d6265722073657420616e6420746865207072696d65206d656d626572206361737420616e20617070726f76616c2e00610149662074686520636c6f7365206f7065726174696f6e20636f6d706c65746573207375636365737366756c6c79207769746820646973617070726f76616c2c20746865207472616e73616374696f6e206665652077696c6c5d016265207761697665642e204f746865727769736520657865637574696f6e206f662074686520617070726f766564206f7065726174696f6e2077696c6c206265206368617267656420746f207468652063616c6c65722e0061012b206070726f706f73616c5f7765696768745f626f756e64603a20546865206d6178696d756d20616d6f756e74206f662077656967687420636f6e73756d656420627920657865637574696e672074686520636c6f7365642470726f706f73616c2e61012b20606c656e6774685f626f756e64603a2054686520757070657220626f756e6420666f7220746865206c656e677468206f66207468652070726f706f73616c20696e2073746f726167652e20436865636b65642076696135016073746f726167653a3a726561646020736f206974206973206073697a655f6f663a3a3c7533323e2829203d3d203460206c6172676572207468616e207468652070757265206c656e6774682e002823203c7765696768743e24232320576569676874742d20604f2842202b204d202b205031202b20503229602077686572653ae020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429dc20202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429c820202d20605031602069732074686520636f6d706c6578697479206f66206070726f706f73616c6020707265696d6167652ea420202d20605032602069732070726f706f73616c2d636f756e742028636f64652d626f756e64656429142d2044423a0d01202d20322073746f726167652072656164732028604d656d62657273603a20636f64656320604f284d29602c20605072696d65603a20636f64656320604f28312960295901202d2033206d75746174696f6e73202860566f74696e67603a20636f64656320604f284d29602c206050726f706f73616c4f66603a20636f64656320604f284229602c206050726f706f73616c73603a20636f6465632c202020604f285032296029dc202d20616e79206d75746174696f6e7320646f6e65207768696c6520657865637574696e67206070726f706f73616c6020286050316029402d20757020746f2033206576656e74732c23203c2f7765696768743e4c646973617070726f76655f70726f706f73616c04013470726f706f73616c5f6861736824011c543a3a486173680005385901446973617070726f766520612070726f706f73616c2c20636c6f73652c20616e642072656d6f76652069742066726f6d207468652073797374656d2c207265676172646c657373206f66206974732063757272656e741873746174652e00884d7573742062652063616c6c65642062792074686520526f6f74206f726967696e2e002c506172616d65746572733a1d012a206070726f706f73616c5f68617368603a205468652068617368206f66207468652070726f706f73616c20746861742073686f756c6420626520646973617070726f7665642e002823203c7765696768743edc436f6d706c65786974793a204f285029207768657265205020697320746865206e756d626572206f66206d61782070726f706f73616c73284442205765696768743a482a2052656164733a2050726f706f73616c739c2a205772697465733a20566f74696e672c2050726f706f73616c732c2050726f706f73616c4f662c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ef9020c6470616c6c65745f656c656374696f6e735f70687261676d656e1870616c6c65741043616c6c04045400011810766f7465080114766f746573dc01445665633c543a3a4163636f756e7449643e00011476616c7565cc013042616c616e63654f663c543e00005c5901566f746520666f72206120736574206f662063616e6469646174657320666f7220746865207570636f6d696e6720726f756e64206f6620656c656374696f6e2e20546869732063616e2062652063616c6c656420746fe07365742074686520696e697469616c20766f7465732c206f722075706461746520616c7265616479206578697374696e6720766f7465732e005d0155706f6e20696e697469616c20766f74696e672c206076616c75656020756e697473206f66206077686f6027732062616c616e6365206973206c6f636b656420616e642061206465706f73697420616d6f756e742069734d0172657365727665642e20546865206465706f736974206973206261736564206f6e20746865206e756d626572206f6620766f74657320616e642063616e2062652075706461746564206f7665722074696d652e004c5468652060766f746573602073686f756c643a4420202d206e6f7420626520656d7074792e550120202d206265206c657373207468616e20746865206e756d626572206f6620706f737369626c652063616e646964617465732e204e6f7465207468617420616c6c2063757272656e74206d656d6265727320616e6411012020202072756e6e6572732d75702061726520616c736f206175746f6d61746963616c6c792063616e6469646174657320666f7220746865206e65787420726f756e642e004d014966206076616c756560206973206d6f7265207468616e206077686f60277320746f74616c2062616c616e63652c207468656e20746865206d6178696d756d206f66207468652074776f20697320757365642e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e65642e002c232323205761726e696e6700550149742069732074686520726573706f6e736962696c697479206f66207468652063616c6c657220746f202a2a4e4f542a2a20706c61636520616c6c206f662074686569722062616c616e636520696e746f20746865a86c6f636b20616e64206b65657020736f6d6520666f722066757274686572206f7065726174696f6e732e002823203c7765696768743e5101576520617373756d6520746865206d6178696d756d2077656967687420616d6f6e6720616c6c20332063617365733a20766f74655f657175616c2c20766f74655f6d6f726520616e6420766f74655f6c6573732e2c23203c2f7765696768743e3072656d6f76655f766f7465720001146c52656d6f766520606f726967696e60206173206120766f7465722e00b8546869732072656d6f76657320746865206c6f636b20616e642072657475726e7320746865206465706f7369742e00fc546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e656420616e64206265206120766f7465722e407375626d69745f63616e64696461637904013c63616e6469646174655f636f756e74ad01010c75333200023c11015375626d6974206f6e6573656c6620666f722063616e6469646163792e204120666978656420616d6f756e74206f66206465706f736974206973207265636f726465642e005d01416c6c2063616e64696461746573206172652077697065642061742074686520656e64206f6620746865207465726d2e205468657920656974686572206265636f6d652061206d656d6265722f72756e6e65722d75702ccc6f72206c65617665207468652073797374656d207768696c65207468656972206465706f73697420697320736c61736865642e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e65642e002c232323205761726e696e67005d014576656e20696620612063616e64696461746520656e6473207570206265696e672061206d656d6265722c2074686579206d7573742063616c6c205b6043616c6c3a3a72656e6f756e63655f63616e646964616379605d5901746f20676574207468656972206465706f736974206261636b2e204c6f73696e67207468652073706f7420696e20616e20656c656374696f6e2077696c6c20616c77617973206c65616420746f206120736c6173682e002823203c7765696768743e0901546865206e756d626572206f662063757272656e742063616e64696461746573206d7573742062652070726f7669646564206173207769746e65737320646174612e2c23203c2f7765696768743e4872656e6f756e63655f63616e64696461637904012872656e6f756e63696e67fd02012852656e6f756e63696e670003484d0152656e6f756e6365206f6e65277320696e74656e74696f6e20746f20626520612063616e64696461746520666f7220746865206e65787420656c656374696f6e20726f756e642e203320706f74656e7469616c3c6f7574636f6d65732065786973743a0049012d20606f726967696e6020697320612063616e64696461746520616e64206e6f7420656c656374656420696e20616e79207365742e20496e207468697320636173652c20746865206465706f736974206973f02020756e72657365727665642c2072657475726e656420616e64206f726967696e2069732072656d6f76656420617320612063616e6469646174652e61012d20606f726967696e6020697320612063757272656e742072756e6e65722d75702e20496e207468697320636173652c20746865206465706f73697420697320756e72657365727665642c2072657475726e656420616e648c20206f726967696e2069732072656d6f76656420617320612072756e6e65722d75702e55012d20606f726967696e6020697320612063757272656e74206d656d6265722e20496e207468697320636173652c20746865206465706f73697420697320756e726573657276656420616e64206f726967696e2069735501202072656d6f7665642061732061206d656d6265722c20636f6e73657175656e746c79206e6f74206265696e6720612063616e64696461746520666f7220746865206e65787420726f756e6420616e796d6f72652e6101202053696d696c617220746f205b6072656d6f76655f6d656d626572605d2853656c663a3a72656d6f76655f6d656d626572292c206966207265706c6163656d656e742072756e6e657273206578697374732c20746865795901202061726520696d6d6564696174656c7920757365642e20496620746865207072696d652069732072656e6f756e63696e672c207468656e206e6f207072696d652077696c6c20657869737420756e74696c207468653420206e65787420726f756e642e004501546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e65642c20616e642068617665206f6e65206f66207468652061626f766520726f6c65732e002823203c7765696768743ee05468652074797065206f662072656e6f756e63696e67206d7573742062652070726f7669646564206173207769746e65737320646174612e2c23203c2f7765696768743e3472656d6f76655f6d656d62657208010c77686f4d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500013c6861735f7265706c6163656d656e74e80110626f6f6c000438590152656d6f7665206120706172746963756c6172206d656d6265722066726f6d20746865207365742e20546869732069732065666665637469766520696d6d6564696174656c7920616e642074686520626f6e64206f667c746865206f7574676f696e67206d656d62657220697320736c61736865642e005501496620612072756e6e65722d757020697320617661696c61626c652c207468656e2074686520626573742072756e6e65722d75702077696c6c2062652072656d6f76656420616e64207265706c6163657320746865fc6f7574676f696e67206d656d6265722e204f74686572776973652c2061206e65772070687261676d656e20656c656374696f6e20697320737461727465642e00b8546865206469737061746368206f726967696e206f6620746869732063616c6c206d75737420626520726f6f742e0041014e6f74652074686174207468697320646f6573206e6f7420616666656374207468652064657369676e6174656420626c6f636b206e756d626572206f6620746865206e65787420656c656374696f6e2e002823203c7765696768743e5101496620776520686176652061207265706c6163656d656e742c20776520757365206120736d616c6c207765696768742e20456c73652c2073696e63652074686973206973206120726f6f742063616c6c20616e64d077696c6c20676f20696e746f2070687261676d656e2c20776520617373756d652066756c6c20626c6f636b20666f72206e6f772e2c23203c2f7765696768743e50636c65616e5f646566756e63745f766f746572730801286e756d5f766f7465727310010c75333200012c6e756d5f646566756e637410010c7533320005284501436c65616e20616c6c20766f746572732077686f2061726520646566756e63742028692e652e207468657920646f206e6f7420736572766520616e7920707572706f736520617420616c6c292e20546865ac6465706f736974206f66207468652072656d6f76656420766f74657273206172652072657475726e65642e0001015468697320697320616e20726f6f742066756e6374696f6e20746f2062652075736564206f6e6c7920666f7220636c65616e696e67207468652073746174652e00b8546865206469737061746368206f726967696e206f6620746869732063616c6c206d75737420626520726f6f742e002823203c7765696768743e5d0154686520746f74616c206e756d626572206f6620766f7465727320616e642074686f736520746861742061726520646566756e6374206d7573742062652070726f7669646564206173207769746e65737320646174612e2c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632efd02086470616c6c65745f656c656374696f6e735f70687261676d656e2852656e6f756e63696e6700010c184d656d6265720000002052756e6e657255700001002443616e6469646174650400ad01010c7533320002000001030c4470616c6c65745f6d656d626572736869701870616c6c65741043616c6c08045400044900011c286164645f6d656d62657204010c77686f000130543a3a4163636f756e74496400000c784164642061206d656d626572206077686f6020746f20746865207365742e009c4d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a4164644f726967696e602e3472656d6f76655f6d656d62657204010c77686f000130543a3a4163636f756e74496400010c8c52656d6f76652061206d656d626572206077686f602066726f6d20746865207365742e00a84d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a52656d6f76654f726967696e602e2c737761705f6d656d62657208011872656d6f7665000130543a3a4163636f756e74496400010c616464000130543a3a4163636f756e744964000214bc53776170206f7574206f6e65206d656d626572206072656d6f76656020666f7220616e6f746865722060616464602e00a04d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a537761704f726967696e602e000d015072696d65206d656d62657273686970206973202a6e6f742a207061737365642066726f6d206072656d6f76656020746f2060616464602c20696620657874616e742e3472657365745f6d656d6265727304011c6d656d62657273dc01445665633c543a3a4163636f756e7449643e00031055014368616e676520746865206d656d6265727368697020746f2061206e6577207365742c20646973726567617264696e6720746865206578697374696e67206d656d626572736869702e204265206e69636520616e64687061737320606d656d6265727360207072652d736f727465642e00a44d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a52657365744f726967696e602e286368616e67655f6b657904010c6e6577000130543a3a4163636f756e744964000414d453776170206f7574207468652073656e64696e67206d656d62657220666f7220736f6d65206f74686572206b657920606e6577602e00f04d6179206f6e6c792062652063616c6c65642066726f6d20605369676e656460206f726967696e206f6620612063757272656e74206d656d6265722e001d015072696d65206d656d62657273686970206973207061737365642066726f6d20746865206f726967696e206163636f756e7420746f20606e6577602c20696620657874616e742e247365745f7072696d6504010c77686f000130543a3a4163636f756e74496400050cbc53657420746865207072696d65206d656d6265722e204d75737420626520612063757272656e74206d656d6265722e00a44d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a5072696d654f726967696e602e2c636c6561725f7072696d6500060c9452656d6f766520746865207072696d65206d656d626572206966206974206578697374732e00a44d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a5072696d654f726967696e602e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e05030c3c70616c6c65745f74726561737572791870616c6c65741043616c6c08045400044900010c3470726f706f73655f7370656e6408011476616c7565cc013c42616c616e63654f663c542c20493e00012c62656e65666963696172794d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365000024290150757420666f727761726420612073756767657374696f6e20666f72207370656e64696e672e2041206465706f7369742070726f706f7274696f6e616c20746f207468652076616c75653101697320726573657276656420616e6420736c6173686564206966207468652070726f706f73616c2069732072656a65637465642e2049742069732072657475726e6564206f6e6365207468655070726f706f73616c20697320617761726465642e002823203c7765696768743e482d20436f6d706c65786974793a204f283129b02d20446252656164733a206050726f706f73616c436f756e74602c20606f726967696e206163636f756e7460e82d2044625772697465733a206050726f706f73616c436f756e74602c206050726f706f73616c73602c20606f726967696e206163636f756e74602c23203c2f7765696768743e3c72656a6563745f70726f706f73616c04012c70726f706f73616c5f6964ad01013450726f706f73616c496e646578000124f852656a65637420612070726f706f736564207370656e642e20546865206f726967696e616c206465706f7369742077696c6c20626520736c61736865642e00a84d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a52656a6563744f726967696e602e002823203c7765696768743e482d20436f6d706c65786974793a204f283129cc2d20446252656164733a206050726f706f73616c73602c206072656a65637465642070726f706f736572206163636f756e7460d02d2044625772697465733a206050726f706f73616c73602c206072656a65637465642070726f706f736572206163636f756e74602c23203c2f7765696768743e40617070726f76655f70726f706f73616c04012c70726f706f73616c5f6964ad01013450726f706f73616c496e6465780002285901417070726f766520612070726f706f73616c2e2041742061206c617465722074696d652c207468652070726f706f73616c2077696c6c20626520616c6c6f636174656420746f207468652062656e6566696369617279a8616e6420746865206f726967696e616c206465706f7369742077696c6c2062652072657475726e65642e00ac4d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a417070726f76654f726967696e602e002823203c7765696768743e4c2d20436f6d706c65786974793a204f2831292e8c2d20446252656164733a206050726f706f73616c73602c2060417070726f76616c7360582d20446257726974653a2060417070726f76616c73602c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e0903105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e18636c61696d731870616c6c65741043616c6c04045400011414636c61696d08011064657374000130543a3a4163636f756e744964000148657468657265756d5f7369676e61747572650d03013845636473615369676e6174757265000060884d616b65206120636c61696d20746f20636f6c6c65637420796f757220444f54732e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f4e6f6e655f2e0050556e7369676e65642056616c69646174696f6e3a0501412063616c6c20746f20636c61696d206973206465656d65642076616c696420696620746865207369676e61747572652070726f7669646564206d6174636865737c746865206578706563746564207369676e6564206d657373616765206f663a00683e20457468657265756d205369676e6564204d6573736167653a943e2028636f6e666967757265642070726566697820737472696e672928616464726573732900a4616e6420606164647265737360206d6174636865732074686520606465737460206163636f756e742e002c506172616d65746572733ad82d206064657374603a205468652064657374696e6174696f6e206163636f756e7420746f207061796f75742074686520636c61696d2e0d012d2060657468657265756d5f7369676e6174757265603a20546865207369676e6174757265206f6620616e20657468657265756d207369676e6564206d6573736167659c2020206d61746368696e672074686520666f726d6174206465736372696265642061626f76652e00203c7765696768743efc54686520776569676874206f6620746869732063616c6c20697320696e76617269616e74206f7665722074686520696e70757420706172616d65746572732ee057656967687420696e636c75646573206c6f67696320746f2076616c696461746520756e7369676e65642060636c61696d602063616c6c2e0058546f74616c20436f6d706c65786974793a204f283129243c2f7765696768743e286d696e745f636c61696d10010c77686f0901013c457468657265756d4164647265737300011476616c756518013042616c616e63654f663c543e00014076657374696e675f7363686564756c65150301d04f7074696f6e3c2842616c616e63654f663c543e2c2042616c616e63654f663c543e2c20543a3a426c6f636b4e756d626572293e00012473746174656d656e741d0301544f7074696f6e3c53746174656d656e744b696e643e00013c844d696e742061206e657720636c61696d20746f20636f6c6c65637420444f54732e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e002c506172616d65746572733af02d206077686f603a2054686520457468657265756d206164647265737320616c6c6f77656420746f20636f6c6c656374207468697320636c61696d2ecc2d206076616c7565603a20546865206e756d626572206f6620444f547320746861742077696c6c20626520636c61696d65642e09012d206076657374696e675f7363686564756c65603a20416e206f7074696f6e616c2076657374696e67207363686564756c6520666f7220746865736520444f54732e00203c7765696768743efc54686520776569676874206f6620746869732063616c6c20697320696e76617269616e74206f7665722074686520696e70757420706172616d65746572732e1d01576520617373756d6520776f7273742063617365207468617420626f74682076657374696e6720616e642073746174656d656e74206973206265696e6720696e7365727465642e0058546f74616c20436f6d706c65786974793a204f283129243c2f7765696768743e30636c61696d5f6174746573740c011064657374000130543a3a4163636f756e744964000148657468657265756d5f7369676e61747572650d03013845636473615369676e617475726500012473746174656d656e7428011c5665633c75383e000268e44d616b65206120636c61696d20746f20636f6c6c65637420796f757220444f5473206279207369676e696e6720612073746174656d656e742e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f4e6f6e655f2e0050556e7369676e65642056616c69646174696f6e3a2901412063616c6c20746f2060636c61696d5f61747465737460206973206465656d65642076616c696420696620746865207369676e61747572652070726f7669646564206d6174636865737c746865206578706563746564207369676e6564206d657373616765206f663a00683e20457468657265756d205369676e6564204d6573736167653ac03e2028636f6e666967757265642070726566697820737472696e67292861646472657373292873746174656d656e7429004901616e6420606164647265737360206d6174636865732074686520606465737460206163636f756e743b20746865206073746174656d656e7460206d757374206d617463682074686174207768696368206973c06578706563746564206163636f7264696e6720746f20796f757220707572636861736520617272616e67656d656e742e002c506172616d65746572733ad82d206064657374603a205468652064657374696e6174696f6e206163636f756e7420746f207061796f75742074686520636c61696d2e0d012d2060657468657265756d5f7369676e6174757265603a20546865207369676e6174757265206f6620616e20657468657265756d207369676e6564206d6573736167659c2020206d61746368696e672074686520666f726d6174206465736372696265642061626f76652e65012d206073746174656d656e74603a20546865206964656e74697479206f66207468652073746174656d656e74207768696368206973206265696e6720617474657374656420746f20696e20746865207369676e61747572652e00203c7765696768743efc54686520776569676874206f6620746869732063616c6c20697320696e76617269616e74206f7665722074686520696e70757420706172616d65746572732efc57656967687420696e636c75646573206c6f67696320746f2076616c696461746520756e7369676e65642060636c61696d5f617474657374602063616c6c2e0058546f74616c20436f6d706c65786974793a204f283129243c2f7765696768743e1861747465737404012473746174656d656e7428011c5665633c75383e000344f441747465737420746f20612073746174656d656e742c206e656564656420746f2066696e616c697a652074686520636c61696d732070726f636573732e0065015741524e494e473a20496e73656375726520756e6c65737320796f757220636861696e20696e636c75646573206050726576616c69646174654174746573747360206173206120605369676e6564457874656e73696f6e602e0050556e7369676e65642056616c69646174696f6e3a2901412063616c6c20746f20617474657374206973206465656d65642076616c6964206966207468652073656e6465722068617320612060507265636c61696d602072656769737465726564f4616e642070726f76696465732061206073746174656d656e746020776869636820697320657870656374656420666f7220746865206163636f756e742e002c506172616d65746572733a65012d206073746174656d656e74603a20546865206964656e74697479206f66207468652073746174656d656e74207768696368206973206265696e6720617474657374656420746f20696e20746865207369676e61747572652e00203c7765696768743efc54686520776569676874206f6620746869732063616c6c20697320696e76617269616e74206f7665722074686520696e70757420706172616d65746572732ef057656967687420696e636c75646573206c6f67696320746f20646f207072652d76616c69646174696f6e206f6e2060617474657374602063616c6c2e0058546f74616c20436f6d706c65786974793a204f283129243c2f7765696768743e286d6f76655f636c61696d0c010c6f6c640901013c457468657265756d4164647265737300010c6e65770901013c457468657265756d416464726573730001386d617962655f707265636c61696df10201504f7074696f6e3c543a3a4163636f756e7449643e000400042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e0d030c5c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e18636c61696d733845636473615369676e617475726500000400110301205b75383b2036355d00001103000003410000000800150304184f7074696f6e0404540119030108104e6f6e6500000010536f6d6504001903000001000019030000040c181810001d0304184f7074696f6e0404540121030108104e6f6e6500000010536f6d6504002103000001000021030c5c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e18636c61696d733453746174656d656e744b696e640001081c526567756c617200000010536166740001000025030c3870616c6c65745f76657374696e671870616c6c65741043616c6c0404540001141076657374000034b8556e6c6f636b20616e79207665737465642066756e6473206f66207468652073656e646572206163636f756e742e005d01546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652066756e6473207374696c6c646c6f636b656420756e64657220746869732070616c6c65742e00d0456d69747320656974686572206056657374696e67436f6d706c6574656460206f72206056657374696e6755706461746564602e002823203c7765696768743e242d20604f283129602e742d2044625765696768743a20322052656164732c203220577269746573f8202020202d2052656164733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c205b53656e646572204163636f756e745dfc202020202d205772697465733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c205b53656e646572204163636f756e745d2c23203c2f7765696768743e28766573745f6f746865720401187461726765744d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500013cb8556e6c6f636b20616e79207665737465642066756e6473206f662061206074617267657460206163636f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0051012d2060746172676574603a20546865206163636f756e742077686f7365207665737465642066756e64732073686f756c6420626520756e6c6f636b65642e204d75737420686176652066756e6473207374696c6c646c6f636b656420756e64657220746869732070616c6c65742e00d0456d69747320656974686572206056657374696e67436f6d706c6574656460206f72206056657374696e6755706461746564602e002823203c7765696768743e242d20604f283129602e742d2044625765696768743a20332052656164732c203320577269746573f0202020202d2052656164733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e74f4202020202d205772697465733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e742c23203c2f7765696768743e3c7665737465645f7472616e736665720801187461726765744d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001207363686564756c65290301a456657374696e67496e666f3c42616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265723e00024464437265617465206120766573746564207472616e736665722e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e00cc2d2060746172676574603a20546865206163636f756e7420726563656976696e6720746865207665737465642066756e64732ef02d20607363686564756c65603a205468652076657374696e67207363686564756c6520617474616368656420746f20746865207472616e736665722e005c456d697473206056657374696e6743726561746564602e00fc4e4f54453a20546869732077696c6c20756e6c6f636b20616c6c207363686564756c6573207468726f756768207468652063757272656e7420626c6f636b2e002823203c7765696768743e242d20604f283129602e742d2044625765696768743a20332052656164732c2033205772697465733901202020202d2052656164733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e742c205b53656e646572204163636f756e745d3d01202020202d205772697465733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e742c205b53656e646572204163636f756e745d2c23203c2f7765696768743e54666f7263655f7665737465645f7472616e736665720c0118736f757263654d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001187461726765744d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001207363686564756c65290301a456657374696e67496e666f3c42616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265723e00034860466f726365206120766573746564207472616e736665722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e00e82d2060736f75726365603a20546865206163636f756e742077686f73652066756e64732073686f756c64206265207472616e736665727265642e11012d2060746172676574603a20546865206163636f756e7420746861742073686f756c64206265207472616e7366657272656420746865207665737465642066756e64732ef02d20607363686564756c65603a205468652076657374696e67207363686564756c6520617474616368656420746f20746865207472616e736665722e005c456d697473206056657374696e6743726561746564602e00fc4e4f54453a20546869732077696c6c20756e6c6f636b20616c6c207363686564756c6573207468726f756768207468652063757272656e7420626c6f636b2e002823203c7765696768743e242d20604f283129602e742d2044625765696768743a20342052656164732c2034205772697465733101202020202d2052656164733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e742c20536f75726365204163636f756e743501202020202d205772697465733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e742c20536f75726365204163636f756e742c23203c2f7765696768743e3c6d657267655f7363686564756c657308013c7363686564756c65315f696e64657810010c75333200013c7363686564756c65325f696e64657810010c7533320004545d014d657267652074776f2076657374696e67207363686564756c657320746f6765746865722c206372656174696e672061206e65772076657374696e67207363686564756c65207468617420756e6c6f636b73206f7665725501746865206869676865737420706f737369626c6520737461727420616e6420656e6420626c6f636b732e20496620626f7468207363686564756c6573206861766520616c7265616479207374617274656420746865590163757272656e7420626c6f636b2077696c6c206265207573656420617320746865207363686564756c652073746172743b207769746820746865206361766561742074686174206966206f6e65207363686564756c655d0169732066696e6973686564206279207468652063757272656e7420626c6f636b2c20746865206f746865722077696c6c206265207472656174656420617320746865206e6577206d6572676564207363686564756c652c2c756e6d6f6469666965642e00f84e4f54453a20496620607363686564756c65315f696e646578203d3d207363686564756c65325f696e6465786020746869732069732061206e6f2d6f702e41014e4f54453a20546869732077696c6c20756e6c6f636b20616c6c207363686564756c6573207468726f756768207468652063757272656e7420626c6f636b207072696f7220746f206d657267696e672e61014e4f54453a20496620626f7468207363686564756c6573206861766520656e646564206279207468652063757272656e7420626c6f636b2c206e6f206e6577207363686564756c652077696c6c206265206372656174656464616e6420626f74682077696c6c2062652072656d6f7665642e006c4d6572676564207363686564756c6520617474726962757465733a35012d20607374617274696e675f626c6f636b603a20604d4158287363686564756c65312e7374617274696e675f626c6f636b2c207363686564756c6564322e7374617274696e675f626c6f636b2c48202063757272656e745f626c6f636b29602e21012d2060656e64696e675f626c6f636b603a20604d4158287363686564756c65312e656e64696e675f626c6f636b2c207363686564756c65322e656e64696e675f626c6f636b29602e59012d20606c6f636b6564603a20607363686564756c65312e6c6f636b65645f61742863757272656e745f626c6f636b29202b207363686564756c65322e6c6f636b65645f61742863757272656e745f626c6f636b29602e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e00e82d20607363686564756c65315f696e646578603a20696e646578206f6620746865206669727374207363686564756c6520746f206d657267652eec2d20607363686564756c65325f696e646578603a20696e646578206f6620746865207365636f6e64207363686564756c6520746f206d657267652e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e29030c3870616c6c65745f76657374696e673076657374696e675f696e666f2c56657374696e67496e666f081c42616c616e636501182c426c6f636b4e756d6265720110000c01186c6f636b656418011c42616c616e63650001247065725f626c6f636b18011c42616c616e63650001387374617274696e675f626c6f636b10012c426c6f636b4e756d62657200002d030c3870616c6c65745f7574696c6974791870616c6c65741043616c6c04045400010c14626174636804011463616c6c73310301605665633c3c5420617320436f6e6669673e3a3a43616c6c3e00004c7c53656e642061206261746368206f662064697370617463682063616c6c732e00784d61792062652063616c6c65642066726f6d20616e79206f726967696e2e005d012d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f74390120206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e005d014966206f726967696e20697320726f6f74207468656e2063616c6c2061726520646973706174636820776974686f757420636865636b696e67206f726967696e2066696c7465722e20285468697320696e636c75646573c8627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e002823203c7765696768743e01012d20436f6d706c65786974793a204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e2c23203c2f7765696768743e005501546869732077696c6c2072657475726e20604f6b6020696e20616c6c2063697263756d7374616e6365732e20546f2064657465726d696e65207468652073756363657373206f66207468652062617463682c20616e31016576656e74206973206465706f73697465642e20496620612063616c6c206661696c656420616e64207468652062617463682077617320696e7465727275707465642c207468656e207468655501604261746368496e74657272757074656460206576656e74206973206465706f73697465642c20616c6f6e67207769746820746865206e756d626572206f66207375636365737366756c2063616c6c73206d6164654d01616e6420746865206572726f72206f6620746865206661696c65642063616c6c2e20496620616c6c2077657265207375636365737366756c2c207468656e2074686520604261746368436f6d706c65746564604c6576656e74206973206465706f73697465642e3461735f64657269766174697665080114696e6465782501010c75313600011063616c6c09020160426f783c3c5420617320436f6e6669673e3a3a43616c6c3e000134dc53656e6420612063616c6c207468726f75676820616e20696e64657865642070736575646f6e796d206f66207468652073656e6465722e00550146696c7465722066726f6d206f726967696e206172652070617373656420616c6f6e672e205468652063616c6c2077696c6c2062652064697370617463686564207769746820616e206f726967696e207768696368bc757365207468652073616d652066696c74657220617320746865206f726967696e206f6620746869732063616c6c2e0045014e4f54453a20496620796f75206e65656420746f20656e73757265207468617420616e79206163636f756e742d62617365642066696c746572696e67206973206e6f7420686f6e6f7265642028692e652e61016265636175736520796f7520657870656374206070726f78796020746f2068617665206265656e2075736564207072696f7220696e207468652063616c6c20737461636b20616e6420796f7520646f206e6f742077616e7451017468652063616c6c207265737472696374696f6e7320746f206170706c7920746f20616e79207375622d6163636f756e7473292c207468656e20757365206061735f6d756c74695f7468726573686f6c645f31607c696e20746865204d756c74697369672070616c6c657420696e73746561642e00f44e4f54453a205072696f7220746f2076657273696f6e202a31322c2074686973207761732063616c6c6564206061735f6c696d697465645f737562602e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e2462617463685f616c6c04011463616c6c73310301605665633c3c5420617320436f6e6669673e3a3a43616c6c3e000238ec53656e642061206261746368206f662064697370617463682063616c6c7320616e642061746f6d6963616c6c792065786563757465207468656d2e21015468652077686f6c65207472616e73616374696f6e2077696c6c20726f6c6c6261636b20616e64206661696c20696620616e79206f66207468652063616c6c73206661696c65642e00784d61792062652063616c6c65642066726f6d20616e79206f726967696e2e005d012d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f74390120206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e005d014966206f726967696e20697320726f6f74207468656e2063616c6c2061726520646973706174636820776974686f757420636865636b696e67206f726967696e2066696c7465722e20285468697320696e636c75646573c8627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e002823203c7765696768743e01012d20436f6d706c65786974793a204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e2c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e310300000209020035030c3c70616c6c65745f6964656e746974791870616c6c65741043616c6c04045400013c346164645f72656769737472617204011c6163636f756e74000130543a3a4163636f756e7449640000347841646420612072656769737472617220746f207468652073797374656d2e00fc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652060543a3a5265676973747261724f726967696e602e00a82d20606163636f756e74603a20746865206163636f756e74206f6620746865207265676973747261722e0094456d6974732060526567697374726172416464656460206966207375636365737366756c2e002823203c7765696768743e25012d20604f2852296020776865726520605260207265676973747261722d636f756e742028676f7665726e616e63652d626f756e64656420616e6420636f64652d626f756e646564292e982d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28522960292e302d204f6e65206576656e742e2c23203c2f7765696768743e307365745f6964656e74697479040110696e666f390301a4426f783c4964656e74697479496e666f3c543a3a4d61784164646974696f6e616c4669656c64733e3e00014c290153657420616e206163636f756e742773206964656e7469747920696e666f726d6174696f6e20616e6420726573657276652074686520617070726f707269617465206465706f7369742e005501496620746865206163636f756e7420616c726561647920686173206964656e7469747920696e666f726d6174696f6e2c20746865206465706f7369742069732074616b656e2061732070617274207061796d656e7450666f7220746865206e6577206465706f7369742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e008c2d2060696e666f603a20546865206964656e7469747920696e666f726d6174696f6e2e0088456d69747320604964656e7469747953657460206966207375636365737366756c2e002823203c7765696768743e442d20604f2858202b205827202b205229601d0120202d20776865726520605860206164646974696f6e616c2d6669656c642d636f756e7420286465706f7369742d626f756e64656420616e6420636f64652d626f756e64656429e020202d20776865726520605260206a756467656d656e74732d636f756e7420287265676973747261722d636f756e742d626f756e64656429802d204f6e652062616c616e63652072657365727665206f7065726174696f6e2e21012d204f6e652073746f72616765206d75746174696f6e2028636f6465632d7265616420604f285827202b205229602c20636f6465632d777269746520604f2858202b20522960292e302d204f6e65206576656e742e2c23203c2f7765696768743e207365745f7375627304011073756273c10301645665633c28543a3a4163636f756e7449642c2044617461293e0002548c53657420746865207375622d6163636f756e7473206f66207468652073656e6465722e0055015061796d656e743a20416e79206167677265676174652062616c616e63652072657365727665642062792070726576696f757320607365745f73756273602063616c6c732077696c6c2062652072657475726e65642d01616e6420616e20616d6f756e7420605375624163636f756e744465706f736974602077696c6c20626520726573657276656420666f722065616368206974656d20696e206073756273602e006101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d757374206861766520612072656769737465726564246964656e746974792e00b02d206073756273603a20546865206964656e74697479277320286e657729207375622d6163636f756e74732e002823203c7765696768743e302d20604f2850202b20532960e420202d20776865726520605060206f6c642d737562732d636f756e742028686172642d20616e64206465706f7369742d626f756e646564292ed420202d2077686572652060536020737562732d636f756e742028686172642d20616e64206465706f7369742d626f756e646564292e842d204174206d6f7374206f6e652062616c616e6365206f7065726174696f6e732e142d2044423adc20202d206050202b2053602073746f72616765206d75746174696f6e732028636f64656320636f6d706c657869747920604f2831296029bc20202d204f6e652073746f7261676520726561642028636f64656320636f6d706c657869747920604f28502960292ec020202d204f6e652073746f726167652077726974652028636f64656320636f6d706c657869747920604f28532960292ed020202d204f6e652073746f726167652d6578697374732028604964656e746974794f663a3a636f6e7461696e735f6b657960292e2c23203c2f7765696768743e38636c6561725f6964656e746974790003483901436c65617220616e206163636f756e742773206964656e7469747920696e666f20616e6420616c6c207375622d6163636f756e747320616e642072657475726e20616c6c206465706f736974732e00ec5061796d656e743a20416c6c2072657365727665642062616c616e636573206f6e20746865206163636f756e74206172652072657475726e65642e006101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d757374206861766520612072656769737465726564246964656e746974792e0098456d69747320604964656e74697479436c656172656460206966207375636365737366756c2e002823203c7765696768743e402d20604f2852202b2053202b20582960cc20202d20776865726520605260207265676973747261722d636f756e742028676f7665726e616e63652d626f756e646564292ed420202d2077686572652060536020737562732d636f756e742028686172642d20616e64206465706f7369742d626f756e646564292e210120202d20776865726520605860206164646974696f6e616c2d6669656c642d636f756e7420286465706f7369742d626f756e64656420616e6420636f64652d626f756e646564292e882d204f6e652062616c616e63652d756e72657365727665206f7065726174696f6e2ec82d206032602073746f7261676520726561647320616e64206053202b2032602073746f726167652064656c6574696f6e732e302d204f6e65206576656e742e2c23203c2f7765696768743e44726571756573745f6a756467656d656e740801247265675f696e646578ad010138526567697374726172496e64657800011c6d61785f666565cc013042616c616e63654f663c543e00045c94526571756573742061206a756467656d656e742066726f6d2061207265676973747261722e0055015061796d656e743a204174206d6f737420606d61785f666565602077696c6c20626520726573657276656420666f72207061796d656e7420746f2074686520726567697374726172206966206a756467656d656e7418676976656e2e003501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d757374206861766520615072656769737465726564206964656e746974792e001d012d20607265675f696e646578603a2054686520696e646578206f6620746865207265676973747261722077686f7365206a756467656d656e74206973207265717565737465642e55012d20606d61785f666565603a20546865206d6178696d756d206665652074686174206d617920626520706169642e20546869732073686f756c64206a757374206265206175746f2d706f70756c617465642061733a00306060606e6f636f6d70696c65b853656c663a3a7265676973747261727328292e676574287265675f696e646578292e756e7772617028292e6665650c60606000a4456d69747320604a756467656d656e7452657175657374656460206966207375636365737366756c2e002823203c7765696768743e342d20604f2852202b205829602e802d204f6e652062616c616e63652d72657365727665206f7065726174696f6e2eb82d2053746f726167653a2031207265616420604f285229602c2031206d757461746520604f2858202b205229602e302d204f6e65206576656e742e2c23203c2f7765696768743e3863616e63656c5f726571756573740401247265675f696e646578100138526567697374726172496e6465780005446843616e63656c20612070726576696f757320726571756573742e00f85061796d656e743a20412070726576696f75736c79207265736572766564206465706f7369742069732072657475726e6564206f6e20737563636573732e003501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d757374206861766520615072656769737465726564206964656e746974792e0045012d20607265675f696e646578603a2054686520696e646578206f6620746865207265676973747261722077686f7365206a756467656d656e74206973206e6f206c6f6e676572207265717565737465642e00ac456d69747320604a756467656d656e74556e72657175657374656460206966207375636365737366756c2e002823203c7765696768743e342d20604f2852202b205829602e802d204f6e652062616c616e63652d72657365727665206f7065726174696f6e2e882d204f6e652073746f72616765206d75746174696f6e20604f2852202b205829602e2c2d204f6e65206576656e742c23203c2f7765696768743e1c7365745f666565080114696e646578ad010138526567697374726172496e64657800010c666565cc013042616c616e63654f663c543e0006341901536574207468652066656520726571756972656420666f722061206a756467656d656e7420746f206265207265717565737465642066726f6d2061207265676973747261722e005501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74a06f6620746865207265676973747261722077686f736520696e6465782069732060696e646578602e00f42d2060696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f73652066656520697320746f206265207365742e542d2060666565603a20746865206e6577206665652e002823203c7765696768743e242d20604f285229602e782d204f6e652073746f72616765206d75746174696f6e20604f285229602ee42d2042656e63686d61726b3a20372e333135202b2052202a20302e33323920c2b57320286d696e207371756172657320616e616c79736973292c23203c2f7765696768743e387365745f6163636f756e745f6964080114696e646578ad010138526567697374726172496e64657800010c6e6577000130543a3a4163636f756e744964000734bc4368616e676520746865206163636f756e74206173736f63696174656420776974682061207265676973747261722e005501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74a06f6620746865207265676973747261722077686f736520696e6465782069732060696e646578602e00f42d2060696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f73652066656520697320746f206265207365742e702d20606e6577603a20746865206e6577206163636f756e742049442e002823203c7765696768743e242d20604f285229602e782d204f6e652073746f72616765206d75746174696f6e20604f285229602ee02d2042656e63686d61726b3a20382e383233202b2052202a20302e333220c2b57320286d696e207371756172657320616e616c79736973292c23203c2f7765696768743e287365745f6669656c6473080114696e646578ad010138526567697374726172496e6465780001186669656c6473c90301384964656e746974794669656c6473000834a853657420746865206669656c6420696e666f726d6174696f6e20666f722061207265676973747261722e005501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74a06f6620746865207265676973747261722077686f736520696e6465782069732060696e646578602e00f42d2060696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f73652066656520697320746f206265207365742e0d012d20606669656c6473603a20746865206669656c64732074686174207468652072656769737472617220636f6e6365726e73207468656d73656c76657320776974682e002823203c7765696768743e242d20604f285229602e782d204f6e652073746f72616765206d75746174696f6e20604f285229602ee42d2042656e63686d61726b3a20372e343634202b2052202a20302e33323520c2b57320286d696e207371756172657320616e616c79736973292c23203c2f7765696768743e4470726f766964655f6a756467656d656e740c01247265675f696e646578ad010138526567697374726172496e6465780001187461726765744d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001246a756467656d656e74d103015c4a756467656d656e743c42616c616e63654f663c543e3e00094cb850726f766964652061206a756467656d656e7420666f7220616e206163636f756e742773206964656e746974792e005501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74b06f6620746865207265676973747261722077686f736520696e64657820697320607265675f696e646578602e0021012d20607265675f696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f7365206a756467656d656e74206973206265696e67206d6164652e55012d2060746172676574603a20746865206163636f756e742077686f7365206964656e7469747920746865206a756467656d656e742069732075706f6e2e2054686973206d75737420626520616e206163636f756e747420207769746820612072656769737465726564206964656e746974792e49012d20606a756467656d656e74603a20746865206a756467656d656e74206f662074686520726567697374726172206f6620696e64657820607265675f696e646578602061626f75742060746172676574602e0094456d69747320604a756467656d656e74476976656e60206966207375636365737366756c2e002823203c7765696768743e342d20604f2852202b205829602e842d204f6e652062616c616e63652d7472616e73666572206f7065726174696f6e2e942d20557020746f206f6e65206163636f756e742d6c6f6f6b7570206f7065726174696f6e2eb82d2053746f726167653a2031207265616420604f285229602c2031206d757461746520604f2852202b205829602e302d204f6e65206576656e742e2c23203c2f7765696768743e346b696c6c5f6964656e746974790401187461726765744d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365000a4c410152656d6f766520616e206163636f756e742773206964656e7469747920616e64207375622d6163636f756e7420696e666f726d6174696f6e20616e6420736c61736820746865206465706f736974732e0061015061796d656e743a2052657365727665642062616c616e6365732066726f6d20607365745f737562736020616e6420607365745f6964656e74697479602061726520736c617368656420616e642068616e646c6564206279450160536c617368602e20566572696669636174696f6e2072657175657374206465706f7369747320617265206e6f742072657475726e65643b20746865792073686f756c642062652063616e63656c6c6564806d616e75616c6c79207573696e67206063616e63656c5f72657175657374602e00f8546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206d617463682060543a3a466f7263654f726967696e602e0055012d2060746172676574603a20746865206163636f756e742077686f7365206964656e7469747920746865206a756467656d656e742069732075706f6e2e2054686973206d75737420626520616e206163636f756e747420207769746820612072656769737465726564206964656e746974792e0094456d69747320604964656e746974794b696c6c656460206966207375636365737366756c2e002823203c7765696768743e442d20604f2852202b2053202b205829602e802d204f6e652062616c616e63652d72657365727665206f7065726174696f6e2e702d206053202b2032602073746f72616765206d75746174696f6e732e302d204f6e65206576656e742e2c23203c2f7765696768743e1c6164645f73756208010c7375624d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365000110646174614503011044617461000b1cac4164642074686520676976656e206163636f756e7420746f207468652073656e646572277320737562732e005d015061796d656e743a2042616c616e636520726573657276656420627920612070726576696f757320607365745f73756273602063616c6c20666f72206f6e65207375622077696c6c20626520726570617472696174656438746f207468652073656e6465722e006101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652061207265676973746572656458737562206964656e74697479206f662060737562602e2872656e616d655f73756208010c7375624d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365000110646174614503011044617461000c10cc416c74657220746865206173736f636961746564206e616d65206f662074686520676976656e207375622d6163636f756e742e006101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652061207265676973746572656458737562206964656e74697479206f662060737562602e2872656d6f76655f73756204010c7375624d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365000d1cc052656d6f76652074686520676976656e206163636f756e742066726f6d207468652073656e646572277320737562732e005d015061796d656e743a2042616c616e636520726573657276656420627920612070726576696f757320607365745f73756273602063616c6c20666f72206f6e65207375622077696c6c20626520726570617472696174656438746f207468652073656e6465722e006101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652061207265676973746572656458737562206964656e74697479206f662060737562602e20717569745f737562000e288c52656d6f7665207468652073656e6465722061732061207375622d6163636f756e742e005d015061796d656e743a2042616c616e636520726573657276656420627920612070726576696f757320607365745f73756273602063616c6c20666f72206f6e65207375622077696c6c206265207265706174726961746564b4746f207468652073656e64657220282a6e6f742a20746865206f726967696e616c206465706f7369746f72292e006101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d7573742068617665206120726567697374657265643c73757065722d6964656e746974792e0045014e4f54453a20546869732073686f756c64206e6f74206e6f726d616c6c7920626520757365642c206275742069732070726f766964656420696e207468652063617365207468617420746865206e6f6e2d1101636f6e74726f6c6c6572206f6620616e206163636f756e74206973206d616c6963696f75736c7920726567697374657265642061732061207375622d6163636f756e742e04704964656e746974792070616c6c6574206465636c61726174696f6e2e39030c3c70616c6c65745f6964656e74697479147479706573304964656e74697479496e666f04284669656c644c696d697400002401286164646974696f6e616c3d030190426f756e6465645665633c28446174612c2044617461292c204669656c644c696d69743e00011c646973706c617945030110446174610001146c6567616c450301104461746100010c776562450301104461746100011072696f744503011044617461000114656d61696c450301104461746100013c7067705f66696e6765727072696e74bd0301404f7074696f6e3c5b75383b2032305d3e000114696d616765450301104461746100011c74776974746572450301104461746100003d0310346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e646564566563080454014103045300000400b90301185665633c543e0000410300000408450345030045030c3c70616c6c65745f6964656e746974791474797065731044617461000198104e6f6e6500000010526177300400490300000100105261773104004d0300000200105261773204005103000003001052617733040055030000040010526177340400380000050010526177350400590300000600105261773604005d03000007001052617737040061030000080010526177380400f5010000090010526177390400650300000a001452617731300400690300000b0014526177313104006d0300000c001452617731320400710300000d001452617731330400750300000e001452617731340400790300000f0014526177313504007d03000010001452617731360400980000110014526177313704008103000012001452617731380400850300001300145261773139040089030000140014526177323004000d010000150014526177323104008d030000160014526177323204009103000017001452617732330400950300001800145261773234040099030000190014526177323504009d0300001a001452617732360400a10300001b001452617732370400a50300001c001452617732380400a90300001d001452617732390400ad0300001e001452617733300400b10300001f001452617733310400b50300002000145261773332040004000021002c426c616b6554776f323536040004000022001853686132353604000400002300244b656363616b323536040004000024002c5368615468726565323536040004000025000049030000030000000008004d030000030100000008005103000003020000000800550300000303000000080059030000030500000008005d030000030600000008006103000003070000000800650300000309000000080069030000030a00000008006d030000030b000000080071030000030c000000080075030000030d000000080079030000030e00000008007d030000030f00000008008103000003110000000800850300000312000000080089030000031300000008008d030000031500000008009103000003160000000800950300000317000000080099030000031800000008009d03000003190000000800a1030000031a0000000800a5030000031b0000000800a9030000031c0000000800ad030000031d0000000800b1030000031e0000000800b5030000031f0000000800b903000002410300bd0304184f7074696f6e040454010d010108104e6f6e6500000010536f6d6504000d010000010000c103000002c50300c5030000040800450300c9030c3c70616c6c65745f6964656e7469747914747970657320426974466c61677304045401cd030004002001344964656e746974794669656c640000cd030c3c70616c6c65745f6964656e74697479147479706573344964656e746974794669656c640001201c446973706c6179000100144c6567616c0002000c5765620004001052696f7400080014456d61696c0010003850677046696e6765727072696e7400200014496d6167650040001c5477697474657200800000d1030c3c70616c6c65745f6964656e74697479147479706573244a756467656d656e74041c42616c616e63650118011c1c556e6b6e6f776e0000001c46656550616964040018011c42616c616e636500010028526561736f6e61626c65000200244b6e6f776e476f6f64000300244f75744f6644617465000400284c6f775175616c697479000500244572726f6e656f757300060000d5030c3070616c6c65745f70726f78791870616c6c65741043616c6c0404540001281470726f78790c01107265616c000130543a3a4163636f756e744964000140666f7263655f70726f78795f74797065d90301504f7074696f6e3c543a3a50726f7879547970653e00011063616c6c09020160426f783c3c5420617320436f6e6669673e3a3a43616c6c3e00003c4d0144697370617463682074686520676976656e206063616c6c602066726f6d20616e206163636f756e742074686174207468652073656e64657220697320617574686f726973656420666f72207468726f75676830606164645f70726f7879602e00a852656d6f76657320616e7920636f72726573706f6e64696e6720616e6e6f756e63656d656e742873292e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a0d012d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e61012d2060666f7263655f70726f78795f74797065603a2053706563696679207468652065786163742070726f7879207479706520746f206265207573656420616e6420636865636b656420666f7220746869732063616c6c2ed02d206063616c6c603a205468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e002823203c7765696768743efc57656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e2c23203c2f7765696768743e246164645f70726f78790c012064656c6567617465000130543a3a4163636f756e74496400012870726f78795f7479706521010130543a3a50726f78795479706500011464656c6179100138543a3a426c6f636b4e756d6265720001344501526567697374657220612070726f7879206163636f756e7420666f72207468652073656e64657220746861742069732061626c6520746f206d616b652063616c6c73206f6e2069747320626568616c662e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a11012d206070726f7879603a20546865206163636f756e74207468617420746865206063616c6c65726020776f756c64206c696b6520746f206d616b6520612070726f78792efc2d206070726f78795f74797065603a20546865207065726d697373696f6e7320616c6c6f77656420666f7220746869732070726f7879206163636f756e742e4d012d206064656c6179603a2054686520616e6e6f756e63656d656e7420706572696f64207265717569726564206f662074686520696e697469616c2070726f78792e2057696c6c2067656e6572616c6c79206265147a65726f2e002823203c7765696768743efc57656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e2c23203c2f7765696768743e3072656d6f76655f70726f78790c012064656c6567617465000130543a3a4163636f756e74496400012870726f78795f7479706521010130543a3a50726f78795479706500011464656c6179100138543a3a426c6f636b4e756d62657200022ca8556e726567697374657220612070726f7879206163636f756e7420666f72207468652073656e6465722e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a25012d206070726f7879603a20546865206163636f756e74207468617420746865206063616c6c65726020776f756c64206c696b6520746f2072656d6f766520617320612070726f78792e41012d206070726f78795f74797065603a20546865207065726d697373696f6e732063757272656e746c7920656e61626c656420666f72207468652072656d6f7665642070726f7879206163636f756e742e002823203c7765696768743efc57656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e2c23203c2f7765696768743e3872656d6f76655f70726f78696573000328b4556e726567697374657220616c6c2070726f7879206163636f756e747320666f72207468652073656e6465722e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0055015741524e494e473a2054686973206d61792062652063616c6c6564206f6e206163636f756e747320637265617465642062792060616e6f6e796d6f7573602c20686f776576657220696620646f6e652c207468656e590174686520756e726573657276656420666565732077696c6c20626520696e61636365737369626c652e202a2a416c6c2061636365737320746f2074686973206163636f756e742077696c6c206265206c6f73742e2a2a002823203c7765696768743efc57656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e2c23203c2f7765696768743e24616e6f6e796d6f75730c012870726f78795f7479706521010130543a3a50726f78795479706500011464656c6179100138543a3a426c6f636b4e756d626572000114696e6465782501010c75313600045c3901537061776e2061206672657368206e6577206163636f756e7420746861742069732067756172616e7465656420746f206265206f746865727769736520696e61636365737369626c652c20616e64fc696e697469616c697a65206974207769746820612070726f7879206f66206070726f78795f747970656020666f7220606f726967696e602073656e6465722e006c5265717569726573206120605369676e656460206f726967696e2e0051012d206070726f78795f74797065603a205468652074797065206f66207468652070726f78792074686174207468652073656e6465722077696c6c2062652072656769737465726564206173206f766572207468654d016e6577206163636f756e742e20546869732077696c6c20616c6d6f737420616c7761797320626520746865206d6f7374207065726d697373697665206050726f7879547970656020706f737369626c6520746f78616c6c6f7720666f72206d6178696d756d20666c65786962696c6974792e51012d2060696e646578603a204120646973616d626967756174696f6e20696e6465782c20696e206361736520746869732069732063616c6c6564206d756c7469706c652074696d657320696e207468652073616d655d017472616e73616374696f6e2028652e672e207769746820607574696c6974793a3a626174636860292e20556e6c65737320796f75277265207573696e67206062617463686020796f752070726f6261626c79206a7573744077616e7420746f20757365206030602e4d012d206064656c6179603a2054686520616e6e6f756e63656d656e7420706572696f64207265717569726564206f662074686520696e697469616c2070726f78792e2057696c6c2067656e6572616c6c79206265147a65726f2e0051014661696c73207769746820604475706c69636174656020696620746869732068617320616c7265616479206265656e2063616c6c656420696e2074686973207472616e73616374696f6e2c2066726f6d207468659873616d652073656e6465722c2077697468207468652073616d6520706172616d65746572732e00e44661696c732069662074686572652061726520696e73756666696369656e742066756e647320746f2070617920666f72206465706f7369742e002823203c7765696768743efc57656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e2c23203c2f7765696768743e8c544f444f3a204d69676874206265206f76657220636f756e74696e6720312072656164386b696c6c5f616e6f6e796d6f757314011c737061776e6572000130543a3a4163636f756e74496400012870726f78795f7479706521010130543a3a50726f787954797065000114696e6465782501010c753136000118686569676874ad010138543a3a426c6f636b4e756d6265720001246578745f696e646578ad01010c753332000550b452656d6f76657320612070726576696f75736c7920737061776e656420616e6f6e796d6f75732070726f78792e0049015741524e494e473a202a2a416c6c2061636365737320746f2074686973206163636f756e742077696c6c206265206c6f73742e2a2a20416e792066756e64732068656c6420696e2069742077696c6c20626534696e61636365737369626c652e0059015265717569726573206120605369676e656460206f726967696e2c20616e64207468652073656e646572206163636f756e74206d7573742068617665206265656e206372656174656420627920612063616c6c20746fa860616e6f6e796d6f757360207769746820636f72726573706f6e64696e6720706172616d65746572732e004d012d2060737061776e6572603a20546865206163636f756e742074686174206f726967696e616c6c792063616c6c65642060616e6f6e796d6f75736020746f206372656174652074686973206163636f756e742e4d012d2060696e646578603a2054686520646973616d626967756174696f6e20696e646578206f726967696e616c6c792070617373656420746f2060616e6f6e796d6f7573602e2050726f6261626c79206030602e01012d206070726f78795f74797065603a205468652070726f78792074797065206f726967696e616c6c792070617373656420746f2060616e6f6e796d6f7573602e3d012d2060686569676874603a2054686520686569676874206f662074686520636861696e207768656e207468652063616c6c20746f2060616e6f6e796d6f757360207761732070726f6365737365642e49012d20606578745f696e646578603a205468652065787472696e73696320696e64657820696e207768696368207468652063616c6c20746f2060616e6f6e796d6f757360207761732070726f6365737365642e0049014661696c73207769746820604e6f5065726d697373696f6e6020696e2063617365207468652063616c6c6572206973206e6f7420612070726576696f75736c79206372656174656420616e6f6e796d6f7573f06163636f756e742077686f73652060616e6f6e796d6f7573602063616c6c2068617320636f72726573706f6e64696e6720706172616d65746572732e002823203c7765696768743efc57656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e2c23203c2f7765696768743e20616e6e6f756e63650801107265616c000130543a3a4163636f756e74496400012463616c6c5f6861736824013443616c6c486173684f663c543e00065405015075626c697368207468652068617368206f6620612070726f78792d63616c6c20746861742077696c6c206265206d61646520696e20746865206675747572652e005d0154686973206d7573742062652063616c6c656420736f6d65206e756d626572206f6620626c6f636b73206265666f72652074686520636f72726573706f6e64696e67206070726f78796020697320617474656d7074656425016966207468652064656c6179206173736f6369617465642077697468207468652070726f78792072656c6174696f6e736869702069732067726561746572207468616e207a65726f2e0011014e6f206d6f7265207468616e20604d617850656e64696e676020616e6e6f756e63656d656e7473206d6179206265206d61646520617420616e79206f6e652074696d652e000901546869732077696c6c2074616b652061206465706f736974206f662060416e6e6f756e63656d656e744465706f736974466163746f72602061732077656c6c206173190160416e6e6f756e63656d656e744465706f736974426173656020696620746865726520617265206e6f206f746865722070656e64696e6720616e6e6f756e63656d656e74732e002501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420612070726f7879206f6620607265616c602e002c506172616d65746572733a0d012d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e15012d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e002823203c7765696768743e6057656967687420697320612066756e6374696f6e206f663a982d20413a20746865206e756d626572206f6620616e6e6f756e63656d656e7473206d6164652ea02d20503a20746865206e756d626572206f662070726f78696573207468652075736572206861732e2c23203c2f7765696768743e4c72656d6f76655f616e6e6f756e63656d656e740801107265616c000130543a3a4163636f756e74496400012463616c6c5f6861736824013443616c6c486173684f663c543e0007407052656d6f7665206120676976656e20616e6e6f756e63656d656e742e0059014d61792062652063616c6c656420627920612070726f7879206163636f756e7420746f2072656d6f766520612063616c6c20746865792070726576696f75736c7920616e6e6f756e63656420616e642072657475726e30746865206465706f7369742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a0d012d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e15012d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e002823203c7765696768743e6057656967687420697320612066756e6374696f6e206f663a982d20413a20746865206e756d626572206f6620616e6e6f756e63656d656e7473206d6164652ea02d20503a20746865206e756d626572206f662070726f78696573207468652075736572206861732e2c23203c2f7765696768743e4c72656a6563745f616e6e6f756e63656d656e7408012064656c6567617465000130543a3a4163636f756e74496400012463616c6c5f6861736824013443616c6c486173684f663c543e000840b052656d6f76652074686520676976656e20616e6e6f756e63656d656e74206f6620612064656c65676174652e0061014d61792062652063616c6c6564206279206120746172676574202870726f7869656429206163636f756e7420746f2072656d6f766520612063616c6c2074686174206f6e65206f662074686569722064656c6567617465732501286064656c656761746560292068617320616e6e6f756e63656420746865792077616e7420746f20657865637574652e20546865206465706f7369742069732072657475726e65642e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733af42d206064656c6567617465603a20546865206163636f756e7420746861742070726576696f75736c7920616e6e6f756e636564207468652063616c6c2ebc2d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f206265206d6164652e002823203c7765696768743e6057656967687420697320612066756e6374696f6e206f663a982d20413a20746865206e756d626572206f6620616e6e6f756e63656d656e7473206d6164652ea02d20503a20746865206e756d626572206f662070726f78696573207468652075736572206861732e2c23203c2f7765696768743e3c70726f78795f616e6e6f756e63656410012064656c6567617465000130543a3a4163636f756e7449640001107265616c000130543a3a4163636f756e744964000140666f7263655f70726f78795f74797065d90301504f7074696f6e3c543a3a50726f7879547970653e00011063616c6c09020160426f783c3c5420617320436f6e6669673e3a3a43616c6c3e0009444d0144697370617463682074686520676976656e206063616c6c602066726f6d20616e206163636f756e742074686174207468652073656e64657220697320617574686f72697a656420666f72207468726f75676830606164645f70726f7879602e00a852656d6f76657320616e7920636f72726573706f6e64696e6720616e6e6f756e63656d656e742873292e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a0d012d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e61012d2060666f7263655f70726f78795f74797065603a2053706563696679207468652065786163742070726f7879207479706520746f206265207573656420616e6420636865636b656420666f7220746869732063616c6c2ed02d206063616c6c603a205468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e002823203c7765696768743e6057656967687420697320612066756e6374696f6e206f663a982d20413a20746865206e756d626572206f6620616e6e6f756e63656d656e7473206d6164652ea02d20503a20746865206e756d626572206f662070726f78696573207468652075736572206861732e2c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ed90304184f7074696f6e0404540121010108104e6f6e6500000010536f6d65040021010000010000dd030c3c70616c6c65745f6d756c74697369671870616c6c65741043616c6c0404540001105061735f6d756c74695f7468726573686f6c645f310801446f746865725f7369676e61746f72696573dc01445665633c543a3a4163636f756e7449643e00011063616c6c09020160426f783c3c5420617320436f6e6669673e3a3a43616c6c3e0000405101496d6d6564696174656c792064697370617463682061206d756c74692d7369676e61747572652063616c6c207573696e6720612073696e676c6520617070726f76616c2066726f6d207468652063616c6c65722e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003d012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f206172652070617274206f662074686501016d756c74692d7369676e61747572652c2062757420646f206e6f7420706172746963697061746520696e2074686520617070726f76616c2070726f636573732e882d206063616c6c603a205468652063616c6c20746f2062652065786563757465642e00b8526573756c74206973206571756976616c656e7420746f20746865206469737061746368656420726573756c742e002823203c7765696768743e19014f285a202b204329207768657265205a20697320746865206c656e677468206f66207468652063616c6c20616e6420432069747320657865637574696f6e207765696768742e7c2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d442d204442205765696768743a204e6f6e65482d20506c75732043616c6c205765696768742c23203c2f7765696768743e2061735f6d756c74691801247468726573686f6c642501010c7531360001446f746865725f7369676e61746f72696573dc01445665633c543a3a4163636f756e7449643e00013c6d617962655f74696d65706f696e74e10301844f7074696f6e3c54696d65706f696e743c543a3a426c6f636b4e756d6265723e3e00011063616c6c2801284f706171756543616c6c00012873746f72655f63616c6ce80110626f6f6c0001286d61785f7765696768742001185765696768740001b45501526567697374657220617070726f76616c20666f72206120646973706174636820746f206265206d6164652066726f6d20612064657465726d696e697374696320636f6d706f73697465206163636f756e74206966f8617070726f766564206279206120746f74616c206f6620607468726573686f6c64202d203160206f6620606f746865725f7369676e61746f72696573602e00b049662074686572652061726520656e6f7567682c207468656e206469737061746368207468652063616c6c2e002d015061796d656e743a20604465706f73697442617365602077696c6c20626520726573657276656420696620746869732069732074686520666972737420617070726f76616c2c20706c75733d01607468726573686f6c64602074696d657320604465706f736974466163746f72602e2049742069732072657475726e6564206f6e636520746869732064697370617463682068617070656e73206f723469732063616e63656c6c65642e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0055012d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e41012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f766520746869736c64697370617463682e204d6179206e6f7420626520656d7074792e59012d20606d617962655f74696d65706f696e74603a20496620746869732069732074686520666972737420617070726f76616c2c207468656e2074686973206d75737420626520604e6f6e65602e20496620697420697351016e6f742074686520666972737420617070726f76616c2c207468656e206974206d7573742062652060536f6d65602c2077697468207468652074696d65706f696e742028626c6f636b206e756d62657220616e64d47472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c207472616e73616374696f6e2e882d206063616c6c603a205468652063616c6c20746f2062652065786563757465642e001d014e4f54453a20556e6c6573732074686973206973207468652066696e616c20617070726f76616c2c20796f752077696c6c2067656e6572616c6c792077616e7420746f20757365190160617070726f76655f61735f6d756c74696020696e73746561642c2073696e6365206974206f6e6c7920726571756972657320612068617368206f66207468652063616c6c2e005901526573756c74206973206571756976616c656e7420746f20746865206469737061746368656420726573756c7420696620607468726573686f6c64602069732065786163746c79206031602e204f746865727769736555016f6e20737563636573732c20726573756c7420697320604f6b6020616e642074686520726573756c742066726f6d2074686520696e746572696f722063616c6c2c206966206974207761732065786563757465642cdc6d617920626520666f756e6420696e20746865206465706f736974656420604d756c7469736967457865637574656460206576656e742e002823203c7765696768743e502d20604f2853202b205a202b2043616c6c29602ecc2d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e3d012d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f66450120207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2e21012d204f6e652063616c6c20656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285a296020776865726520605a602069732074782d6c656e2ebc2d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602ed42d20557020746f206f6e652062696e6172792073656172636820616e6420696e736572742028604f286c6f6753202b20532960292ef82d20492f4f3a2031207265616420604f285329602c20757020746f2031206d757461746520604f285329602e20557020746f206f6e652072656d6f76652e302d204f6e65206576656e742e6c2d2054686520776569676874206f6620746865206063616c6c602e4d012d2053746f726167653a20696e7365727473206f6e65206974656d2c2076616c75652073697a6520626f756e64656420627920604d61785369676e61746f72696573602c20776974682061206465706f7369741901202074616b656e20666f7220697473206c69666574696d65206f6620604465706f73697442617365202b207468726573686f6c64202a204465706f736974466163746f72602e7c2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d302d204442205765696768743a2101202020202d2052656164733a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d2c2043616c6c7320286966206073746f72655f63616c6c60292501202020202d205772697465733a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d2c2043616c6c7320286966206073746f72655f63616c6c6029482d20506c75732043616c6c205765696768742c23203c2f7765696768743e40617070726f76655f61735f6d756c74691401247468726573686f6c642501010c7531360001446f746865725f7369676e61746f72696573dc01445665633c543a3a4163636f756e7449643e00013c6d617962655f74696d65706f696e74e10301844f7074696f6e3c54696d65706f696e743c543a3a426c6f636b4e756d6265723e3e00012463616c6c5f686173680401205b75383b2033325d0001286d61785f77656967687420011857656967687400028c5501526567697374657220617070726f76616c20666f72206120646973706174636820746f206265206d6164652066726f6d20612064657465726d696e697374696320636f6d706f73697465206163636f756e74206966f8617070726f766564206279206120746f74616c206f6620607468726573686f6c64202d203160206f6620606f746865725f7369676e61746f72696573602e002d015061796d656e743a20604465706f73697442617365602077696c6c20626520726573657276656420696620746869732069732074686520666972737420617070726f76616c2c20706c75733d01607468726573686f6c64602074696d657320604465706f736974466163746f72602e2049742069732072657475726e6564206f6e636520746869732064697370617463682068617070656e73206f723469732063616e63656c6c65642e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0055012d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e41012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f766520746869736c64697370617463682e204d6179206e6f7420626520656d7074792e59012d20606d617962655f74696d65706f696e74603a20496620746869732069732074686520666972737420617070726f76616c2c207468656e2074686973206d75737420626520604e6f6e65602e20496620697420697351016e6f742074686520666972737420617070726f76616c2c207468656e206974206d7573742062652060536f6d65602c2077697468207468652074696d65706f696e742028626c6f636b206e756d62657220616e64d47472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c207472616e73616374696f6e2ecc2d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f2062652065786563757465642e0035014e4f54453a2049662074686973206973207468652066696e616c20617070726f76616c2c20796f752077696c6c2077616e7420746f20757365206061735f6d756c74696020696e73746561642e002823203c7765696768743e242d20604f285329602ecc2d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e3d012d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f66450120207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2ebc2d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602ed42d20557020746f206f6e652062696e6172792073656172636820616e6420696e736572742028604f286c6f6753202b20532960292ef82d20492f4f3a2031207265616420604f285329602c20757020746f2031206d757461746520604f285329602e20557020746f206f6e652072656d6f76652e302d204f6e65206576656e742e4d012d2053746f726167653a20696e7365727473206f6e65206974656d2c2076616c75652073697a6520626f756e64656420627920604d61785369676e61746f72696573602c20776974682061206465706f7369741901202074616b656e20666f7220697473206c69666574696d65206f6620604465706f73697442617365202b207468726573686f6c64202a204465706f736974466163746f72602e882d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d302d204442205765696768743ab8202020202d20526561643a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745dbc202020202d2057726974653a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d2c23203c2f7765696768743e3c63616e63656c5f61735f6d756c74691001247468726573686f6c642501010c7531360001446f746865725f7369676e61746f72696573dc01445665633c543a3a4163636f756e7449643e00012474696d65706f696e742d01016454696d65706f696e743c543a3a426c6f636b4e756d6265723e00012463616c6c5f686173680401205b75383b2033325d000368550143616e63656c2061207072652d6578697374696e672c206f6e2d676f696e67206d756c7469736967207472616e73616374696f6e2e20416e79206465706f7369742072657365727665642070726576696f75736c79c4666f722074686973206f7065726174696f6e2077696c6c20626520756e7265736572766564206f6e20737563636573732e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0055012d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e41012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f766520746869736c64697370617463682e204d6179206e6f7420626520656d7074792e5d012d206074696d65706f696e74603a205468652074696d65706f696e742028626c6f636b206e756d62657220616e64207472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c787472616e73616374696f6e20666f7220746869732064697370617463682ecc2d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f2062652065786563757465642e002823203c7765696768743e242d20604f285329602ecc2d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e3d012d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f66450120207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2ebc2d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602e302d204f6e65206576656e742e842d20492f4f3a2031207265616420604f285329602c206f6e652072656d6f76652e702d2053746f726167653a2072656d6f766573206f6e65206974656d2e882d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d302d204442205765696768743a1501202020202d20526561643a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d2c20526566756e64204163636f756e742c2043616c6c731901202020202d2057726974653a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d2c20526566756e64204163636f756e742c2043616c6c732c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ee10304184f7074696f6e040454012d010108104e6f6e6500000010536f6d6504002d010000010000e5030c3c70616c6c65745f626f756e746965731870616c6c65741043616c6c0404540001243870726f706f73655f626f756e747908011476616c7565cc013042616c616e63654f663c543e00012c6465736372697074696f6e28011c5665633c75383e0000305450726f706f73652061206e657720626f756e74792e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0051015061796d656e743a20605469705265706f72744465706f73697442617365602077696c6c2062652072657365727665642066726f6d20746865206f726967696e206163636f756e742c2061732077656c6c206173510160446174614465706f736974506572427974656020666f722065616368206279746520696e2060726561736f6e602e2049742077696c6c20626520756e72657365727665642075706f6e20617070726f76616c2c646f7220736c6173686564207768656e2072656a65637465642e00f82d206063757261746f72603a205468652063757261746f72206163636f756e742077686f6d2077696c6c206d616e616765207468697320626f756e74792e642d2060666565603a205468652063757261746f72206665652e25012d206076616c7565603a2054686520746f74616c207061796d656e7420616d6f756e74206f66207468697320626f756e74792c2063757261746f722066656520696e636c756465642ec02d20606465736372697074696f6e603a20546865206465736372697074696f6e206f66207468697320626f756e74792e38617070726f76655f626f756e7479040124626f756e74795f6964ad01012c426f756e7479496e6465780001205d01417070726f7665206120626f756e74792070726f706f73616c2e2041742061206c617465722074696d652c2074686520626f756e74792077696c6c2062652066756e64656420616e64206265636f6d6520616374697665a8616e6420746865206f726967696e616c206465706f7369742077696c6c2062652072657475726e65642e00ac4d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a417070726f76654f726967696e602e002823203c7765696768743e1c2d204f2831292e2c23203c2f7765696768743e3c70726f706f73655f63757261746f720c0124626f756e74795f6964ad01012c426f756e7479496e64657800011c63757261746f724d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500010c666565cc013042616c616e63654f663c543e00021c9041737369676e20612063757261746f7220746f20612066756e64656420626f756e74792e00ac4d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a417070726f76654f726967696e602e002823203c7765696768743e1c2d204f2831292e2c23203c2f7765696768743e40756e61737369676e5f63757261746f72040124626f756e74795f6964ad01012c426f756e7479496e6465780003487c556e61737369676e2063757261746f722066726f6d206120626f756e74792e001d01546869732066756e6374696f6e2063616e206f6e6c792062652063616c6c656420627920746865206052656a6563744f726967696e602061207369676e6564206f726967696e2e003d01496620746869732066756e6374696f6e2069732063616c6c656420627920746865206052656a6563744f726967696e602c20776520617373756d652074686174207468652063757261746f7220697331016d616c6963696f7573206f7220696e6163746976652e204173206120726573756c742c2077652077696c6c20736c617368207468652063757261746f72207768656e20706f737369626c652e006101496620746865206f726967696e206973207468652063757261746f722c2077652074616b6520746869732061732061207369676e20746865792061726520756e61626c6520746f20646f207468656972206a6f6220616e645d01746865792077696c6c696e676c7920676976652075702e20576520636f756c6420736c617368207468656d2c2062757420666f72206e6f7720776520616c6c6f77207468656d20746f207265636f76657220746865697235016465706f73697420616e64206578697420776974686f75742069737375652e20285765206d61792077616e7420746f206368616e67652074686973206966206974206973206162757365642e29005d0146696e616c6c792c20746865206f726967696e2063616e20626520616e796f6e6520696620616e64206f6e6c79206966207468652063757261746f722069732022696e616374697665222e205468697320616c6c6f77736101616e796f6e6520696e2074686520636f6d6d756e69747920746f2063616c6c206f7574207468617420612063757261746f72206973206e6f7420646f696e67207468656972206475652064696c6967656e63652c20616e64390177652073686f756c64207069636b2061206e65772063757261746f722e20496e20746869732063617365207468652063757261746f722073686f756c6420616c736f20626520736c61736865642e002823203c7765696768743e1c2d204f2831292e2c23203c2f7765696768743e386163636570745f63757261746f72040124626f756e74795f6964ad01012c426f756e7479496e64657800042094416363657074207468652063757261746f7220726f6c6520666f72206120626f756e74792e290141206465706f7369742077696c6c2062652072657365727665642066726f6d2063757261746f7220616e6420726566756e642075706f6e207375636365737366756c207061796f75742e00904d6179206f6e6c792062652063616c6c65642066726f6d207468652063757261746f722e002823203c7765696768743e1c2d204f2831292e2c23203c2f7765696768743e3061776172645f626f756e7479080124626f756e74795f6964ad01012c426f756e7479496e64657800012c62656e65666963696172794d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500052c5901417761726420626f756e747920746f20612062656e6566696369617279206163636f756e742e205468652062656e65666963696172792077696c6c2062652061626c6520746f20636c61696d207468652066756e647338616674657220612064656c61792e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265207468652063757261746f72206f66207468697320626f756e74792e00882d2060626f756e74795f6964603a20426f756e747920494420746f2061776172642e19012d206062656e6566696369617279603a205468652062656e6566696369617279206163636f756e742077686f6d2077696c6c207265636569766520746865207061796f75742e002823203c7765696768743e1c2d204f2831292e2c23203c2f7765696768743e30636c61696d5f626f756e7479040124626f756e74795f6964ad01012c426f756e7479496e646578000624ec436c61696d20746865207061796f75742066726f6d20616e206177617264656420626f756e7479206166746572207061796f75742064656c61792e002501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265207468652062656e6566696369617279206f66207468697320626f756e74792e00882d2060626f756e74795f6964603a20426f756e747920494420746f20636c61696d2e002823203c7765696768743e1c2d204f2831292e2c23203c2f7765696768743e30636c6f73655f626f756e7479040124626f756e74795f6964ad01012c426f756e7479496e646578000728390143616e63656c20612070726f706f736564206f722061637469766520626f756e74792e20416c6c207468652066756e64732077696c6c2062652073656e7420746f20747265617375727920616e64cc7468652063757261746f72206465706f7369742077696c6c20626520756e726573657276656420696620706f737369626c652e00c84f6e6c792060543a3a52656a6563744f726967696e602069732061626c6520746f2063616e63656c206120626f756e74792e008c2d2060626f756e74795f6964603a20426f756e747920494420746f2063616e63656c2e002823203c7765696768743e1c2d204f2831292e2c23203c2f7765696768743e50657874656e645f626f756e74795f657870697279080124626f756e74795f6964ad01012c426f756e7479496e64657800011872656d61726b28011c5665633c75383e000828ac457874656e6420746865206578706972792074696d65206f6620616e2061637469766520626f756e74792e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265207468652063757261746f72206f66207468697320626f756e74792e008c2d2060626f756e74795f6964603a20426f756e747920494420746f20657874656e642e8c2d206072656d61726b603a206164646974696f6e616c20696e666f726d6174696f6e2e002823203c7765696768743e1c2d204f2831292e2c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ee9030c2c70616c6c65745f746970731870616c6c65741043616c6c040454000118387265706f72745f617765736f6d65080118726561736f6e28011c5665633c75383e00010c77686f000130543a3a4163636f756e74496400004c59015265706f727420736f6d657468696e672060726561736f6e60207468617420646573657276657320612074697020616e6420636c61696d20616e79206576656e7475616c207468652066696e6465722773206665652e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0051015061796d656e743a20605469705265706f72744465706f73697442617365602077696c6c2062652072657365727665642066726f6d20746865206f726967696e206163636f756e742c2061732077656c6c206173bc60446174614465706f736974506572427974656020666f722065616368206279746520696e2060726561736f6e602e005d012d2060726561736f6e603a2054686520726561736f6e20666f722c206f7220746865207468696e6720746861742064657365727665732c20746865207469703b2067656e6572616c6c7920746869732077696c6c20626558202061205554462d382d656e636f6465642055524c2ee82d206077686f603a20546865206163636f756e742077686963682073686f756c6420626520637265646974656420666f7220746865207469702e0074456d69747320604e657754697060206966207375636365737366756c2e002823203c7765696768743ec82d20436f6d706c65786974793a20604f2852296020776865726520605260206c656e677468206f662060726561736f6e602e9020202d20656e636f64696e6720616e642068617368696e67206f662027726561736f6e27702d20446252656164733a2060526561736f6e73602c20605469707360742d2044625772697465733a2060526561736f6e73602c206054697073602c23203c2f7765696768743e2c726574726163745f7469700401106861736824011c543a3a4861736800014c5101526574726163742061207072696f72207469702d7265706f72742066726f6d20607265706f72745f617765736f6d65602c20616e642063616e63656c207468652070726f63657373206f662074697070696e672e00dc4966207375636365737366756c2c20746865206f726967696e616c206465706f7369742077696c6c20626520756e72657365727665642e004d01546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642074686520746970206964656e7469666965642062792060686173686041016d7573742068617665206265656e207265706f7274656420627920746865207369676e696e67206163636f756e74207468726f75676820607265706f72745f617765736f6d65602028616e64206e6f744c7468726f75676820607469705f6e657760292e0061012d206068617368603a20546865206964656e74697479206f6620746865206f70656e2074697020666f722077686963682061207469702076616c7565206973206465636c617265642e205468697320697320666f726d65645d0120206173207468652068617368206f6620746865207475706c65206f6620746865206f726967696e616c207469702060726561736f6e6020616e64207468652062656e6566696369617279206163636f756e742049442e008c456d697473206054697052657472616374656460206966207375636365737366756c2e002823203c7765696768743e502d20436f6d706c65786974793a20604f28312960d820202d20446570656e6473206f6e20746865206c656e677468206f662060543a3a48617368602077686963682069732066697865642e8c2d20446252656164733a206054697073602c20606f726967696e206163636f756e7460bc2d2044625772697465733a2060526561736f6e73602c206054697073602c20606f726967696e206163636f756e74602c23203c2f7765696768743e1c7469705f6e65770c0118726561736f6e28011c5665633c75383e00010c77686f000130543a3a4163636f756e7449640001247469705f76616c7565cc013042616c616e63654f663c543e000258f04769766520612074697020666f7220736f6d657468696e67206e65773b206e6f2066696e6465722773206665652077696c6c2062652074616b656e2e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d7573742062652061706d656d626572206f662074686520605469707065727360207365742e005d012d2060726561736f6e603a2054686520726561736f6e20666f722c206f7220746865207468696e6720746861742064657365727665732c20746865207469703b2067656e6572616c6c7920746869732077696c6c20626558202061205554462d382d656e636f6465642055524c2ee82d206077686f603a20546865206163636f756e742077686963682073686f756c6420626520637265646974656420666f7220746865207469702e4d012d20607469705f76616c7565603a2054686520616d6f756e74206f66207469702074686174207468652073656e64657220776f756c64206c696b6520746f20676976652e20546865206d656469616e20746970d4202076616c7565206f662061637469766520746970706572732077696c6c20626520676976656e20746f20746865206077686f602e0074456d69747320604e657754697060206966207375636365737366756c2e002823203c7765696768743e51012d20436f6d706c65786974793a20604f2852202b2054296020776865726520605260206c656e677468206f662060726561736f6e602c2060546020697320746865206e756d626572206f6620746970706572732e5d0120202d20604f285429603a206465636f64696e6720605469707065726020766563206f66206c656e677468206054602e20605460206973206368617267656420617320757070657220626f756e6420676976656e2062792d012020202060436f6e7461696e734c656e677468426f756e64602e205468652061637475616c20636f737420646570656e6473206f6e2074686520696d706c656d656e746174696f6e206f66442020202060543a3a54697070657273602ee020202d20604f285229603a2068617368696e6720616e6420656e636f64696e67206f6620726561736f6e206f66206c656e677468206052607c2d20446252656164733a206054697070657273602c2060526561736f6e7360742d2044625772697465733a2060526561736f6e73602c206054697073602c23203c2f7765696768743e0c7469700801106861736824011c543a3a486173680001247469705f76616c7565cc013042616c616e63654f663c543e000360b04465636c6172652061207469702076616c756520666f7220616e20616c72656164792d6f70656e207469702e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d7573742062652061706d656d626572206f662074686520605469707065727360207365742e0061012d206068617368603a20546865206964656e74697479206f6620746865206f70656e2074697020666f722077686963682061207469702076616c7565206973206465636c617265642e205468697320697320666f726d65645d0120206173207468652068617368206f6620746865207475706c65206f66207468652068617368206f6620746865206f726967696e616c207469702060726561736f6e6020616e64207468652062656e65666963696172793420206163636f756e742049442e4d012d20607469705f76616c7565603a2054686520616d6f756e74206f66207469702074686174207468652073656e64657220776f756c64206c696b6520746f20676976652e20546865206d656469616e20746970d4202076616c7565206f662061637469766520746970706572732077696c6c20626520676976656e20746f20746865206077686f602e006101456d6974732060546970436c6f73696e676020696620746865207468726573686f6c64206f66207469707065727320686173206265656e207265616368656420616e642074686520636f756e74646f776e20706572696f643068617320737461727465642e002823203c7765696768743e61012d20436f6d706c65786974793a20604f285429602077686572652060546020697320746865206e756d626572206f6620746970706572732e206465636f64696e6720605469707065726020766563206f66206c656e6774682d0120206054602c20696e736572742074697020616e6420636865636b20636c6f73696e672c20605460206973206368617267656420617320757070657220626f756e6420676976656e2062795d01202060436f6e7461696e734c656e677468426f756e64602e205468652061637475616c20636f737420646570656e6473206f6e2074686520696d706c656d656e746174696f6e206f662060543a3a54697070657273602e005d01202041637475616c6c792077656967687420636f756c64206265206c6f77657220617320697420646570656e6473206f6e20686f77206d616e7920746970732061726520696e20604f70656e5469706020627574206974d02020697320776569676874656420617320696620616c6d6f73742066756c6c20692e65206f66206c656e6774682060542d31602e702d20446252656164733a206054697070657273602c20605469707360482d2044625772697465733a206054697073602c23203c2f7765696768743e24636c6f73655f7469700401106861736824011c543a3a486173680004405c436c6f736520616e64207061796f75742061207469702e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e00150154686520746970206964656e74696669656420627920606861736860206d75737420686176652066696e69736865642069747320636f756e74646f776e20706572696f642e0061012d206068617368603a20546865206964656e74697479206f6620746865206f70656e2074697020666f722077686963682061207469702076616c7565206973206465636c617265642e205468697320697320666f726d65645d0120206173207468652068617368206f6620746865207475706c65206f6620746865206f726967696e616c207469702060726561736f6e6020616e64207468652062656e6566696369617279206163636f756e742049442e002823203c7765696768743e61012d20436f6d706c65786974793a20604f285429602077686572652060546020697320746865206e756d626572206f6620746970706572732e206465636f64696e6720605469707065726020766563206f66206c656e677468510120206054602e20605460206973206368617267656420617320757070657220626f756e6420676976656e2062792060436f6e7461696e734c656e677468426f756e64602e205468652061637475616c20636f7374c02020646570656e6473206f6e2074686520696d706c656d656e746174696f6e206f662060543a3a54697070657273602ea82d20446252656164733a206054697073602c206054697070657273602c20607469702066696e64657260d82d2044625772697465733a2060526561736f6e73602c206054697073602c206054697070657273602c20607469702066696e646572602c23203c2f7765696768743e24736c6173685f7469700401106861736824011c543a3a486173680005309452656d6f766520616e6420736c61736820616e20616c72656164792d6f70656e207469702e00a84d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a52656a6563744f726967696e602e00f44173206120726573756c742c207468652066696e64657220697320736c617368656420616e6420746865206465706f7369747320617265206c6f73742e0084456d6974732060546970536c617368656460206966207375636365737366756c2e002823203c7765696768743efc2020605460206973206368617267656420617320757070657220626f756e6420676976656e2062792060436f6e7461696e734c656e677468426f756e64602e010120205468652061637475616c20636f737420646570656e6473206f6e2074686520696d706c656d656e746174696f6e206f662060543a3a54697070657273602e2c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632eed030c9070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173651870616c6c65741043616c6c0404540001103c7375626d69745f756e7369676e65640801307261775f736f6c7574696f6ef103017c426f783c526177536f6c7574696f6e3c536f6c7574696f6e4f663c543e3e3e00011c7769746e657373c5040158536f6c7574696f6e4f72536e617073686f7453697a65000038a45375626d6974206120736f6c7574696f6e20666f722074686520756e7369676e65642070686173652e00c8546865206469737061746368206f726967696e20666f20746869732063616c6c206d757374206265205f5f6e6f6e655f5f2e003d0154686973207375626d697373696f6e20697320636865636b6564206f6e2074686520666c792e204d6f72656f7665722c207468697320756e7369676e656420736f6c7574696f6e206973206f6e6c79550176616c696461746564207768656e207375626d697474656420746f2074686520706f6f6c2066726f6d20746865202a2a6c6f63616c2a2a206e6f64652e204566666563746976656c792c2074686973206d65616e735d0174686174206f6e6c79206163746976652076616c696461746f72732063616e207375626d69742074686973207472616e73616374696f6e207768656e20617574686f72696e67206120626c6f636b202873696d696c617240746f20616e20696e686572656e74292e005901546f2070726576656e7420616e7920696e636f727265637420736f6c7574696f6e2028616e642074687573207761737465642074696d652f776569676874292c2074686973207472616e73616374696f6e2077696c6c4d0170616e69632069662074686520736f6c7574696f6e207375626d6974746564206279207468652076616c696461746f7220697320696e76616c696420696e20616e79207761792c206566666563746976656c799c70757474696e6720746865697220617574686f72696e6720726577617264206174207269736b2e00e04e6f206465706f736974206f7220726577617264206973206173736f63696174656420776974682074686973207375626d697373696f6e2e6c7365745f6d696e696d756d5f756e747275737465645f73636f72650401406d617962655f6e6578745f73636f7265c90401544f7074696f6e3c456c656374696f6e53636f72653e000114b05365742061206e65772076616c756520666f7220604d696e696d756d556e7472757374656453636f7265602e00d84469737061746368206f726967696e206d75737420626520616c69676e656420776974682060543a3a466f7263654f726967696e602e00f05468697320636865636b2063616e206265207475726e6564206f66662062792073657474696e67207468652076616c756520746f20604e6f6e65602e747365745f656d657267656e63795f656c656374696f6e5f726573756c74040120737570706f727473cd040158537570706f7274733c543a3a4163636f756e7449643e0002205901536574206120736f6c7574696f6e20696e207468652071756575652c20746f2062652068616e646564206f757420746f2074686520636c69656e74206f6620746869732070616c6c657420696e20746865206e6578748863616c6c20746f2060456c656374696f6e50726f76696465723a3a656c656374602e004501546869732063616e206f6e6c79206265207365742062792060543a3a466f7263654f726967696e602c20616e64206f6e6c79207768656e207468652070686173652069732060456d657267656e6379602e00610154686520736f6c7574696f6e206973206e6f7420636865636b656420666f7220616e7920666561736962696c69747920616e6420697320617373756d656420746f206265207472757374776f727468792c20617320616e795101666561736962696c69747920636865636b20697473656c662063616e20696e207072696e6369706c652063617573652074686520656c656374696f6e2070726f6365737320746f206661696c202864756520746f686d656d6f72792f77656967687420636f6e73747261696e73292e187375626d69740801307261775f736f6c7574696f6ef103017c426f783c526177536f6c7574696f6e3c536f6c7574696f6e4f663c543e3e3e0001586e756d5f7369676e65645f7375626d697373696f6e7310010c7533320003349c5375626d6974206120736f6c7574696f6e20666f7220746865207369676e65642070686173652e00d0546865206469737061746368206f726967696e20666f20746869732063616c6c206d757374206265205f5f7369676e65645f5f2e005d0154686520736f6c7574696f6e20697320706f74656e7469616c6c79207175657565642c206261736564206f6e2074686520636c61696d65642073636f726520616e642070726f6365737365642061742074686520656e64506f6620746865207369676e65642070686173652e005d0141206465706f73697420697320726573657276656420616e64207265636f7264656420666f722074686520736f6c7574696f6e2e204261736564206f6e20746865206f7574636f6d652c2074686520736f6c7574696f6e15016d696768742062652072657761726465642c20736c61736865642c206f722067657420616c6c206f7220612070617274206f6620746865206465706f736974206261636b2e002823203c7765696768743eb051756575652073697a65206d7573742062652070726f7669646564206173207769746e65737320646174612e2c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ef103089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173652c526177536f6c7574696f6e04045301f503000c0120736f6c7574696f6ef50301045300011473636f7265c1040134456c656374696f6e53636f7265000114726f756e6410010c7533320000f5030840706f6c6b61646f745f72756e74696d65544e706f73436f6d70616374536f6c7574696f6e31360000400118766f74657331f90300000118766f74657332050400000118766f74657333190400000118766f74657334250400000118766f74657335310400000118766f746573363d0400000118766f74657337490400000118766f74657338550400000118766f7465733961040000011c766f74657331306d040000011c766f746573313179040000011c766f746573313285040000011c766f746573313391040000011c766f74657331349d040000011c766f7465733135a9040000011c766f7465733136b504000000f903000002fd0300fd0300000408ad010104000104000006250100050400000209040009040000040cad010d040104000d04000004080104110400110400000615040015040c3473705f61726974686d65746963287065725f7468696e677318506572553136000004002501010c753136000019040000021d04001d040000040cad0121040104002104000003020000000d0400250400000229040029040000040cad012d040104002d04000003030000000d0400310400000235040035040000040cad0139040104003904000003040000000d04003d0400000241040041040000040cad0145040104004504000003050000000d040049040000024d04004d040000040cad0151040104005104000003060000000d0400550400000259040059040000040cad015d040104005d04000003070000000d0400610400000265040065040000040cad0169040104006904000003080000000d04006d0400000271040071040000040cad0175040104007504000003090000000d040079040000027d04007d040000040cad01810401040081040000030a0000000d0400850400000289040089040000040cad018d040104008d040000030b0000000d0400910400000295040095040000040cad01990401040099040000030c0000000d04009d04000002a10400a1040000040cad01a504010400a5040000030d0000000d0400a904000002ad0400ad040000040cad01b104010400b1040000030e0000000d0400b504000002b90400b9040000040cad01bd04010400bd040000030f0000000d0400c104000003030000001800c504089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f706861736558536f6c7574696f6e4f72536e617073686f7453697a650000080118766f74657273ad01010c75333200011c74617267657473ad01010c7533320000c90404184f7074696f6e04045401c1040108104e6f6e6500000010536f6d650400c1040000010000cd04000002d10400d1040000040800d50400d504084473705f6e706f735f656c656374696f6e731c537570706f727404244163636f756e744964010000080114746f74616c18013c457874656e64656442616c616e6365000118766f74657273f401845665633c284163636f756e7449642c20457874656e64656442616c616e6365293e0000d904106c706f6c6b61646f745f72756e74696d655f70617261636861696e7334636f6e66696775726174696f6e1870616c6c65741043616c6c0404540001a4807365745f76616c69646174696f6e5f757067726164655f6672657175656e637904010c6e6577100138543a3a426c6f636b4e756d62657200000494536574207468652076616c69646174696f6e2075706772616465206672657175656e63792e707365745f76616c69646174696f6e5f757067726164655f64656c617904010c6e6577100138543a3a426c6f636b4e756d62657200010484536574207468652076616c69646174696f6e20757067726164652064656c61792e647365745f636f64655f726574656e74696f6e5f706572696f6404010c6e6577100138543a3a426c6f636b4e756d626572000204d05365742074686520616363657074616e636520706572696f6420666f7220616e20696e636c756465642063616e6469646174652e447365745f6d61785f636f64655f73697a6504010c6e657710010c753332000304dc53657420746865206d61782076616c69646174696f6e20636f64652073697a6520666f7220696e636f6d696e672075706772616465732e407365745f6d61785f706f765f73697a6504010c6e657710010c753332000404c453657420746865206d617820504f5620626c6f636b2073697a6520666f7220696e636f6d696e672075706772616465732e587365745f6d61785f686561645f646174615f73697a6504010c6e657710010c7533320005049453657420746865206d6178206865616420646174612073697a6520666f722070617261732e507365745f706172617468726561645f636f72657304010c6e657710010c753332000604b453657420746865206e756d626572206f66207061726174687265616420657865637574696f6e20636f7265732e587365745f706172617468726561645f7265747269657304010c6e657710010c753332000704d853657420746865206e756d626572206f66207265747269657320666f72206120706172746963756c617220706172617468726561642e707365745f67726f75705f726f746174696f6e5f6672657175656e637904010c6e6577100138543a3a426c6f636b4e756d626572000804d0536574207468652070617261636861696e2076616c696461746f722d67726f757020726f746174696f6e206672657175656e6379747365745f636861696e5f617661696c6162696c6974795f706572696f6404010c6e6577100138543a3a426c6f636b4e756d626572000904ac5365742074686520617661696c6162696c69747920706572696f6420666f722070617261636861696e732e787365745f7468726561645f617661696c6162696c6974795f706572696f6404010c6e6577100138543a3a426c6f636b4e756d626572000a04b05365742074686520617661696c6162696c69747920706572696f6420666f722070617261746872656164732e607365745f7363686564756c696e675f6c6f6f6b616865616404010c6e657710010c753332000b04390153657420746865207363686564756c696e67206c6f6f6b61686561642c20696e206578706563746564206e756d626572206f6620626c6f636b73206174207065616b207468726f7567687075742e6c7365745f6d61785f76616c696461746f72735f7065725f636f726504010c6e65777902012c4f7074696f6e3c7533323e000c04ec53657420746865206d6178696d756d206e756d626572206f662076616c696461746f727320746f2061737369676e20746f20616e7920636f72652e487365745f6d61785f76616c696461746f727304010c6e65777902012c4f7074696f6e3c7533323e000d040d0153657420746865206d6178696d756d206e756d626572206f662076616c696461746f727320746f2075736520696e2070617261636861696e20636f6e73656e7375732e487365745f646973707574655f706572696f6404010c6e657710013053657373696f6e496e646578000e040d0153657420746865206469737075746520706572696f642c20696e206e756d626572206f662073657373696f6e7320746f206b65657020666f722064697370757465732eb47365745f646973707574655f706f73745f636f6e636c7573696f6e5f616363657074616e63655f706572696f6404010c6e6577100138543a3a426c6f636b4e756d626572000f04c853657420746865206469737075746520706f737420636f6e636c7573696f6e20616363657074616e636520706572696f642e687365745f646973707574655f6d61785f7370616d5f736c6f747304010c6e657710010c753332001004b453657420746865206d6178696d756d206e756d626572206f662064697370757465207370616d20736c6f74732ea47365745f646973707574655f636f6e636c7573696f6e5f62795f74696d655f6f75745f706572696f6404010c6e6577100138543a3a426c6f636b4e756d626572001104b853657420746865206469737075746520636f6e636c7573696f6e2062792074696d65206f757420706572696f642e447365745f6e6f5f73686f775f736c6f747304010c6e657710010c753332001208f853657420746865206e6f2073686f7720736c6f74732c20696e206e756d626572206f66206e756d626572206f6620636f6e73656e73757320736c6f74732e4c4d757374206265206174206c6561737420312e507365745f6e5f64656c61795f7472616e6368657304010c6e657710010c7533320013049c5365742074686520746f74616c206e756d626572206f662064656c6179207472616e636865732e787365745f7a65726f74685f64656c61795f7472616e6368655f776964746804010c6e657710010c7533320014048c53657420746865207a65726f74682064656c6179207472616e6368652077696474682e507365745f6e65656465645f617070726f76616c7304010c6e657710010c753332001504dc53657420746865206e756d626572206f662076616c696461746f7273206e656564656420746f20617070726f7665206120626c6f636b2e707365745f72656c61795f7672665f6d6f64756c6f5f73616d706c657304010c6e657710010c753332001604590153657420746865206e756d626572206f662073616d706c657320746f20646f206f6620746865206052656c61795652464d6f64756c6f6020617070726f76616c2061737369676e6d656e7420637269746572696f6e2e687365745f6d61785f7570776172645f71756575655f636f756e7404010c6e657710010c7533320017042d015365747320746865206d6178696d756d206974656d7320746861742063616e2070726573656e7420696e206120757077617264206469737061746368207175657565206174206f6e63652e647365745f6d61785f7570776172645f71756575655f73697a6504010c6e657710010c75333200180465015365747320746865206d6178696d756d20746f74616c2073697a65206f66206974656d7320746861742063616e2070726573656e7420696e206120757077617264206469737061746368207175657565206174206f6e63652e747365745f6d61785f646f776e776172645f6d6573736167655f73697a6504010c6e657710010c7533320019049c5365742074686520637269746963616c20646f776e77617264206d6573736167652073697a652e707365745f756d705f736572766963655f746f74616c5f77656967687404010c6e6577200118576569676874001a043901536574732074686520736f6674206c696d697420666f7220746865207068617365206f66206469737061746368696e6720646973706174636861626c6520757077617264206d657373616765732e6c7365745f6d61785f7570776172645f6d6573736167655f73697a6504010c6e657710010c753332001b042d015365747320746865206d6178696d756d2073697a65206f6620616e20757077617264206d65737361676520746861742063616e2062652073656e7420627920612063616e6469646174652ea07365745f6d61785f7570776172645f6d6573736167655f6e756d5f7065725f63616e64696461746504010c6e657710010c753332001c0405015365747320746865206d6178696d756d206e756d626572206f66206d65737361676573207468617420612063616e6469646174652063616e20636f6e7461696e2e647365745f68726d705f6f70656e5f726571756573745f74746c04010c6e657710010c753332001d0435015365747320746865206e756d626572206f662073657373696f6e7320616674657220776869636820616e2048524d50206f70656e206368616e6e656c207265717565737420657870697265732e5c7365745f68726d705f73656e6465725f6465706f73697404010c6e657718011c42616c616e6365001e045101536574732074686520616d6f756e74206f662066756e64732074686174207468652073656e6465722073686f756c642070726f7669646520666f72206f70656e696e6720616e2048524d50206368616e6e656c2e687365745f68726d705f726563697069656e745f6465706f73697404010c6e657718011c42616c616e6365001f086101536574732074686520616d6f756e74206f662066756e647320746861742074686520726563697069656e742073686f756c642070726f7669646520666f7220616363657074696e67206f70656e696e6720616e2048524d50206368616e6e656c2e747365745f68726d705f6368616e6e656c5f6d61785f636170616369747904010c6e657710010c7533320020041d015365747320746865206d6178696d756d206e756d626572206f66206d6573736167657320616c6c6f77656420696e20616e2048524d50206368616e6e656c206174206f6e63652e7c7365745f68726d705f6368616e6e656c5f6d61785f746f74616c5f73697a6504010c6e657710010c75333200210451015365747320746865206d6178696d756d20746f74616c2073697a65206f66206d6573736167657320696e20627974657320616c6c6f77656420696e20616e2048524d50206368616e6e656c206174206f6e63652e9c7365745f68726d705f6d61785f70617261636861696e5f696e626f756e645f6368616e6e656c7304010c6e657710010c75333200220449015365747320746865206d6178696d756d206e756d626572206f6620696e626f756e642048524d50206368616e6e656c7320612070617261636861696e20697320616c6c6f77656420746f206163636570742ea07365745f68726d705f6d61785f706172617468726561645f696e626f756e645f6368616e6e656c7304010c6e657710010c7533320023044d015365747320746865206d6178696d756d206e756d626572206f6620696e626f756e642048524d50206368616e6e656c732061207061726174687265616420697320616c6c6f77656420746f206163636570742e847365745f68726d705f6368616e6e656c5f6d61785f6d6573736167655f73697a6504010c6e657710010c7533320024043d015365747320746865206d6178696d756d2073697a65206f662061206d657373616765207468617420636f756c6420657665722062652070757420696e746f20616e2048524d50206368616e6e656c2ea07365745f68726d705f6d61785f70617261636861696e5f6f7574626f756e645f6368616e6e656c7304010c6e657710010c75333200250445015365747320746865206d6178696d756d206e756d626572206f66206f7574626f756e642048524d50206368616e6e656c7320612070617261636861696e20697320616c6c6f77656420746f206f70656e2ea47365745f68726d705f6d61785f706172617468726561645f6f7574626f756e645f6368616e6e656c7304010c6e657710010c75333200260449015365747320746865206d6178696d756d206e756d626572206f66206f7574626f756e642048524d50206368616e6e656c732061207061726174687265616420697320616c6c6f77656420746f206f70656e2e987365745f68726d705f6d61785f6d6573736167655f6e756d5f7065725f63616e64696461746504010c6e657710010c75333200270435015365747320746865206d6178696d756d206e756d626572206f66206f7574626f756e642048524d50206d657373616765732063616e2062652073656e7420627920612063616e6469646174652e747365745f756d705f6d61785f696e646976696475616c5f77656967687404010c6e657720011857656967687400280431015365747320746865206d6178696d756d20616d6f756e74206f662077656967687420616e7920696e646976696475616c20757077617264206d657373616765206d617920636f6e73756d652e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632edd04106c706f6c6b61646f745f72756e74696d655f70617261636861696e73187368617265641870616c6c65741043616c6c040454000100042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ee104106c706f6c6b61646f745f72756e74696d655f70617261636861696e7324696e636c7573696f6e1870616c6c65741043616c6c040454000100042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ee504106c706f6c6b61646f745f72756e74696d655f70617261636861696e733870617261735f696e686572656e741870616c6c65741043616c6c04045400010414656e74657204011064617461e904018450617261636861696e73496e686572656e74446174613c543a3a4865616465723e0000043101456e7465722074686520706172617320696e686572656e742e20546869732077696c6c2070726f63657373206269746669656c647320616e64206261636b65642063616e646964617465732e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ee9040c4c706f6c6b61646f745f7072696d69746976657308763130496e686572656e7444617461040c484452011d02001001246269746669656c6473ed040190556e636865636b65645369676e6564417661696c6162696c6974794269746669656c64730001446261636b65645f63616e646964617465730905017c5665633c4261636b656443616e6469646174653c4844523a3a486173683e3e0001206469737075746573310501604d756c74694469737075746553746174656d656e74536574000134706172656e745f6865616465721d02010c4844520000ed04000002f10400f104104c706f6c6b61646f745f7072696d697469766573087631187369676e65643c556e636865636b65645369676e6564081c5061796c6f616401f5042c5265616c5061796c6f616401f504000c011c7061796c6f6164f504011c5061796c6f616400013c76616c696461746f725f696e6465780105013856616c696461746f72496e6465780001247369676e61747572650505014856616c696461746f725369676e61747572650000f5040c4c706f6c6b61646f745f7072696d69746976657308763150417661696c6162696c6974794269746669656c6400000400f904017c4269745665633c6269747665633a3a6f726465723a3a4c7362302c2075383e0000f90400000708fd0400fd040c18626974766563146f72646572104c7362300000000001050c4c706f6c6b61646f745f7072696d6974697665730876303856616c696461746f72496e6465780000040010010c75333200000505104c706f6c6b61646f745f7072696d6974697665730876303476616c696461746f725f617070245369676e6174757265000004005d010148737232353531393a3a5369676e6174757265000009050000020d05000d050c4c706f6c6b61646f745f7072696d6974697665730876313c4261636b656443616e6469646174650404480124000c012463616e64696461746511050170436f6d6d697474656443616e646964617465526563656970743c483e00013876616c69646974795f766f746573290501605665633c56616c69646974794174746573746174696f6e3e00014476616c696461746f725f696e6469636573f904017c4269745665633c6269747665633a3a6f726465723a3a4c7362302c2075383e000011050c4c706f6c6b61646f745f7072696d69746976657308763164436f6d6d697474656443616e6469646174655265636569707404044801240008012864657363726970746f724d01015843616e64696461746544657363726970746f723c483e00012c636f6d6d69746d656e74731505015043616e646964617465436f6d6d69746d656e7473000015050c4c706f6c6b61646f745f7072696d6974697665730876315043616e646964617465436f6d6d69746d656e747304044e01100018013c7570776172645f6d65737361676573c50101485665633c5570776172644d6573736167653e00014c686f72697a6f6e74616c5f6d65737361676573190501705665633c4f7574626f756e6448726d704d6573736167653c49643e3e00014c6e65775f76616c69646174696f6e5f636f6465210501584f7074696f6e3c56616c69646174696f6e436f64653e000124686561645f6461746169010120486561644461746100016c70726f6365737365645f646f776e776172645f6d6573736167657310010c75333200013868726d705f77617465726d61726b1001044e000019050000021d05001d050860706f6c6b61646f745f636f72655f7072696d6974697665734c4f7574626f756e6448726d704d6573736167650408496401510100080124726563697069656e745101010849640001106461746128015073705f7374643a3a7665633a3a5665633c75383e0000210504184f7074696f6e0404540125050108104e6f6e6500000010536f6d6504002505000001000025050c48706f6c6b61646f745f70617261636861696e287072696d6974697665733856616c69646174696f6e436f64650000040028011c5665633c75383e000029050000022d05002d050c4c706f6c6b61646f745f7072696d6974697665730876304c56616c69646974794174746573746174696f6e00010820496d706c6963697404000505014856616c696461746f725369676e6174757265000100204578706c6963697404000505014856616c696461746f725369676e617475726500020000310500000235050035050c4c706f6c6b61646f745f7072696d6974697665730876314c4469737075746553746174656d656e7453657400000c013863616e6469646174655f686173683905013443616e6469646174654861736800011c73657373696f6e10013053657373696f6e496e64657800012873746174656d656e74733d0501ec5665633c284469737075746553746174656d656e742c2056616c696461746f72496e6465782c2056616c696461746f725369676e6174757265293e000039050860706f6c6b61646f745f636f72655f7072696d6974697665733443616e64696461746548617368000004002401104861736800003d0500000241050041050000040c4505010505050045050c4c706f6c6b61646f745f7072696d697469766573087631404469737075746553746174656d656e740001081456616c696404004905016456616c69644469737075746553746174656d656e744b696e640000001c496e76616c696404004d05016c496e76616c69644469737075746553746174656d656e744b696e640001000049050c4c706f6c6b61646f745f7072696d6974697665730876316456616c69644469737075746553746174656d656e744b696e64000110204578706c696369740000003c4261636b696e675365636f6e646564040024011048617368000100304261636b696e6756616c696404002401104861736800020040417070726f76616c436865636b696e67000300004d050c4c706f6c6b61646f745f7072696d6974697665730876316c496e76616c69644469737075746553746174656d656e744b696e64000104204578706c69636974000000005105106c706f6c6b61646f745f72756e74696d655f70617261636861696e731470617261731870616c6c65741043616c6c04045400011458666f7263655f7365745f63757272656e745f636f646508011070617261510101185061726149640001206e65775f636f64652505013856616c69646174696f6e436f6465000004f8536574207468652073746f7261676520666f72207468652070617261636861696e2076616c69646174696f6e20636f646520696d6d6564696174656c792e58666f7263655f7365745f63757272656e745f6865616408011070617261510101185061726149640001206e65775f686561646901012048656164446174610001040101536574207468652073746f7261676520666f72207468652063757272656e742070617261636861696e2068656164206461746120696d6d6564696174656c792e6c666f7263655f7363686564756c655f636f64655f757067726164650c011070617261510101185061726149640001206e65775f636f64652505013856616c69646174696f6e436f646500014c72656c61795f706172656e745f6e756d626572100138543a3a426c6f636b4e756d6265720002042d015363686564756c6520616e207570677261646520617320696620697420776173207363686564756c656420696e2074686520676976656e2072656c617920706172656e7420626c6f636b2e4c666f7263655f6e6f74655f6e65775f6865616408011070617261510101185061726149640001206e65775f686561646901012048656164446174610003041d014e6f74652061206e657720626c6f636b206865616420666f7220706172612077697468696e2074686520636f6e74657874206f66207468652063757272656e7420626c6f636b2e48666f7263655f71756575655f616374696f6e040110706172615101011850617261496400040cf850757420612070617261636861696e206469726563746c7920696e746f20746865206e6578742073657373696f6e277320616374696f6e2071756575652ef457652063616e277420717565756520697420616e7920736f6f6e6572207468616e207468697320776974686f757420676f696e6720696e746f2074686538696e697469616c697a65722e2e2e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e5505106c706f6c6b61646f745f72756e74696d655f70617261636861696e732c696e697469616c697a65721870616c6c65741043616c6c04045400010434666f7263655f617070726f766504011475705f746f10012c426c6f636b4e756d62657200000c390149737375652061207369676e616c20746f2074686520636f6e73656e73757320656e67696e6520746f20666f726369626c79206163742061732074686f75676820616c6c2070617261636861696e5101626c6f636b7320696e20616c6c2072656c617920636861696e20626c6f636b7320757020746f20616e6420696e636c7564696e672074686520676976656e206e756d62657220696e207468652063757272656e74a0636861696e206172652076616c696420616e642073686f756c642062652066696e616c697a65642e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e5905106c706f6c6b61646f745f72756e74696d655f70617261636861696e730c646d701870616c6c65741043616c6c040454000100042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e5d05106c706f6c6b61646f745f72756e74696d655f70617261636861696e730c756d701870616c6c65741043616c6c04045400010448736572766963655f6f766572776569676874080114696e64657820013c4f766572776569676874496e6465780001307765696768745f6c696d6974200118576569676874000030ac5365727669636520612073696e676c65206f76657277656967687420757077617264206d6573736167652e00c02d20606f726967696e603a204d75737420706173732060457865637574654f7665727765696768744f726967696e602ee82d2060696e646578603a2054686520696e646578206f6620746865206f766572776569676874206d65737361676520746f20736572766963652e1d012d20607765696768745f6c696d6974603a2054686520616d6f756e74206f66207765696768742074686174206d65737361676520657865637574696f6e206d61792074616b652e001c4572726f72733adc2d2060556e6b6e6f776e4d657373616765496e646578603a204d657373616765206f662060696e6465786020697320756e6b6e6f776e2e2d012d20605765696768744f7665724c696d6974603a204d65737361676520657865637574696f6e206d6179207573652067726561746572207468616e20607765696768745f6c696d6974602e001c4576656e74733a8c2d20604f7665727765696768745365727669636564603a204f6e20737563636573732e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e6105106c706f6c6b61646f745f72756e74696d655f70617261636861696e731068726d701870616c6c65741043616c6c04045400011c5868726d705f696e69745f6f70656e5f6368616e6e656c0c0124726563697069656e745101011850617261496400015470726f706f7365645f6d61785f636170616369747910010c75333200016470726f706f7365645f6d61785f6d6573736167655f73697a6510010c7533320000284d01496e697469617465206f70656e696e672061206368616e6e656c2066726f6d20612070617261636861696e20746f206120676976656e20726563697069656e74207769746820676976656e206368616e6e656c2c706172616d65746572732e0059012d206070726f706f7365645f6d61785f636170616369747960202d2073706563696669657320686f77206d616e79206d657373616765732063616e20626520696e20746865206368616e6e656c206174206f6e63652e2d012d206070726f706f7365645f6d61785f6d6573736167655f73697a6560202d2073706563696669657320746865206d6178696d756d2073697a65206f6620746865206d657373616765732e0011015468657365206e756d62657273206172652061207375626a65637420746f207468652072656c61792d636861696e20636f6e66696775726174696f6e206c696d6974732e005101546865206368616e6e656c2063616e206265206f70656e6564206f6e6c792061667465722074686520726563697069656e7420636f6e6669726d7320697420616e64206f6e6c79206f6e20612073657373696f6e1c6368616e67652e6068726d705f6163636570745f6f70656e5f6368616e6e656c04011873656e6465725101011850617261496400010cf041636365707420612070656e64696e67206f70656e206368616e6e656c20726571756573742066726f6d2074686520676976656e2073656e6465722e00f4546865206368616e6e656c2077696c6c206265206f70656e6564206f6e6c79206f6e20746865206e6578742073657373696f6e20626f756e646172792e4868726d705f636c6f73655f6368616e6e656c0401286368616e6e656c5f69648901013448726d704368616e6e656c49640002105501496e69746961746520756e696c61746572616c20636c6f73696e67206f662061206368616e6e656c2e20546865206f726967696e206d75737420626520656974686572207468652073656e646572206f722074686598726563697069656e7420696e20746865206368616e6e656c206265696e6720636c6f7365642e00c054686520636c6f737572652063616e206f6e6c792068617070656e206f6e20612073657373696f6e206368616e67652e40666f7263655f636c65616e5f68726d7004011070617261510101185061726149640003141901546869732065787472696e7369632074726967676572732074686520636c65616e7570206f6620616c6c207468652048524d502073746f72616765206974656d7320746861742101612070617261206d617920686176652e204e6f726d616c6c7920746869732068617070656e73206f6e6365207065722073657373696f6e2c20627574207468697320616c6c6f77730101796f7520746f20747269676765722074686520636c65616e757020696d6d6564696174656c7920666f7220612073706563696669632070617261636861696e2e00504f726967696e206d75737420626520526f6f742e5c666f7263655f70726f636573735f68726d705f6f70656e000410a4466f7263652070726f636573732048524d50206f70656e206368616e6e656c2072657175657374732e0005014966207468657265206172652070656e64696e672048524d50206f70656e206368616e6e656c2072657175657374732c20796f752063616e207573652074686973cc66756e6374696f6e2070726f6365737320616c6c206f662074686f736520726571756573747320696d6d6564696174656c792e60666f7263655f70726f636573735f68726d705f636c6f7365000510a8466f7263652070726f636573732048524d5020636c6f7365206368616e6e656c2072657175657374732e0009014966207468657265206172652070656e64696e672048524d5020636c6f7365206368616e6e656c2072657175657374732c20796f752063616e207573652074686973cc66756e6374696f6e2070726f6365737320616c6c206f662074686f736520726571756573747320696d6d6564696174656c792e6068726d705f63616e63656c5f6f70656e5f726571756573740401286368616e6e656c5f69648901013448726d704368616e6e656c49640006145d01546869732063616e63656c7320612070656e64696e67206f70656e206368616e6e656c20726571756573742e2049742063616e2062652063616e63656c656420626520656974686572206f66207468652073656e64657219016f722074686520726563697069656e7420666f72207468617420726571756573742e20546865206f726967696e206d75737420626520656974686572206f662074686f73652e0055015468652063616e63656c6c696e672068617070656e7320696d6d6564696174656c792e204974206973206e6f7420706f737369626c6520746f2063616e63656c20746865207265717565737420696620697420697344616c72656164792061636365707465642e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e6505105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e3c70617261735f7265676973747261721870616c6c65741043616c6c0404540001182072656769737465720c010869645101011850617261496400013067656e657369735f6865616469010120486561644461746100013c76616c69646174696f6e5f636f64652505013856616c69646174696f6e436f6465000038f852656769737465722068656164206461746120616e642076616c69646174696f6e20636f646520666f72206120726573657276656420506172612049642e0030232320417267756d656e7473c02d20606f726967696e603a204d7573742062652063616c6c6564206279206120605369676e656460206f726967696e2e2d012d20606964603a2054686520706172612049442e204d757374206265206f776e65642f6d616e616765642062792074686520606f726967696e60207369676e696e67206163636f756e742e01012d206067656e657369735f68656164603a205468652067656e6573697320686561642064617461206f66207468652070617261636861696e2f7468726561642e25012d206076616c69646174696f6e5f636f6465603a2054686520696e697469616c2076616c69646174696f6e20636f6465206f66207468652070617261636861696e2f7468726561642e00402323204465706f736974732f466565739501546865206f726967696e207369676e6564206163636f756e74206d7573742072657365727665206120636f72726573706f6e64696e67206465706f73697420666f722074686520726567697374726174696f6e2e20416e797468696e6720616c7265616479d872657365727665642070726576696f75736c7920666f7220746869732070617261204944206973206163636f756e74656420666f722e00242323204576656e7473d454686520605265676973746572656460206576656e7420697320656d697474656420696e2063617365206f6620737563636573732e38666f7263655f726567697374657214010c77686f000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e00010869645101011850617261496400013067656e657369735f6865616469010120486561644461746100013c76616c69646174696f6e5f636f64652505013856616c69646174696f6e436f6465000118dc466f7263652074686520726567697374726174696f6e206f6620612050617261204964206f6e207468652072656c617920636861696e2e00b8546869732066756e6374696f6e206d7573742062652063616c6c6564206279206120526f6f74206f726967696e2e001901546865206465706f7369742074616b656e2063616e2062652073706563696669656420666f72207468697320726567697374726174696f6e2e20416e79206050617261496460190163616e20626520726567697374657265642c20696e636c7564696e67207375622d3130303020494473207768696368206172652053797374656d2050617261636861696e732e286465726567697374657204010869645101011850617261496400020c050144657265676973746572206120506172612049642c2066726565696e6720616c6c206461746120616e642072657475726e696e6720616e79206465706f7369742e007d015468652063616c6c6572206d75737420626520526f6f742c2074686520607061726160206f776e65722c206f72207468652060706172616020697473656c662e205468652070617261206d757374206265206120706172617468726561642e10737761700801086964510101185061726149640001146f746865725101011850617261496400032cd85377617020612070617261636861696e207769746820616e6f746865722070617261636861696e206f7220706172617468726561642e000101546865206f726967696e206d75737420626520526f6f742c2074686520607061726160206f776e65722c206f72207468652060706172616020697473656c662e00610154686520737761702077696c6c2068617070656e206f6e6c7920696620746865726520697320616c726561647920616e206f70706f7369746520737761702070656e64696e672e204966207468657265206973206e6f742c590174686520737761702077696c6c2062652073746f72656420696e207468652070656e64696e67207377617073206d61702c20726561647920666f722061206c6174657220636f6e6669726d61746f727920737761702e005d01546865206050617261496460732072656d61696e206d617070656420746f207468652073616d652068656164206461746120616e6420636f646520736f2065787465726e616c20636f64652063616e2072656c79206f6e3d01605061726149646020746f2062652061206c6f6e672d7465726d206964656e746966696572206f662061206e6f74696f6e616c202270617261636861696e222e20486f77657665722c20746865697255017363686564756c696e6720696e666f2028692e652e2077686574686572207468657927726520612070617261746872656164206f722070617261636861696e292c2061756374696f6e20696e666f726d6174696f6e94616e64207468652061756374696f6e206465706f736974206172652073776974636865642e44666f7263655f72656d6f76655f6c6f636b04011070617261510101185061726149640004100d0152656d6f76652061206d616e61676572206c6f636b2066726f6d206120706172612e20546869732077696c6c20616c6c6f7720746865206d616e61676572206f662061350170726576696f75736c79206c6f636b6564207061726120746f2064657265676973746572206f7220737761702061207061726120776974686f7574207573696e6720676f7665726e616e63652e009843616e206f6e6c792062652063616c6c65642062792074686520526f6f74206f726967696e2e1c72657365727665000538945265736572766520612050617261204964206f6e207468652072656c617920636861696e2e004d01546869732066756e6374696f6e2077696c6c20726573657276652061206e6577205061726120496420746f206265206f776e65642f6d616e6167656420627920746865206f726967696e206163636f756e742e7d01546865206f726967696e206163636f756e742069732061626c6520746f2072656769737465722068656164206461746120616e642076616c69646174696f6e20636f6465207573696e67206072656769737465726020746f2063726561746581016120706172617468726561642e205573696e672074686520536c6f74732070616c6c65742c206120706172617468726561642063616e207468656e20626520757067726164656420746f2067657420612070617261636861696e20736c6f742e0030232320417267756d656e747379012d20606f726967696e603a204d7573742062652063616c6c6564206279206120605369676e656460206f726967696e2e204265636f6d657320746865206d616e616765722f6f776e6572206f6620746865206e657720706172612049442e00402323204465706f736974732f466565732101546865206f726967696e206d75737420726573657276652061206465706f736974206f662060506172614465706f7369746020666f722074686520726567697374726174696f6e2e00242323204576656e74736d015468652060526573657276656460206576656e7420697320656d697474656420696e2063617365206f6620737563636573732c2077686963682070726f76696465732074686520494420726573657276656420666f72207573652e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e6905105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e14736c6f74731870616c6c65741043616c6c04045400010c2c666f7263655f6c6561736514011070617261510101185061726149640001186c6561736572000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000130706572696f645f626567696e1001404c65617365506572696f644f663c543e000130706572696f645f636f756e741001404c65617365506572696f644f663c543e00001069014a757374206120636f6e6e65637420696e746f2074686520606c656173655f6f7574602063616c6c2c20696e206361736520526f6f742077616e747320746f20666f72636520736f6d65206c6561736520746f2068617070656ee0696e646570656e64656e746c79206f6620616e79206f74686572206f6e2d636861696e206d656368616e69736d20746f207573652069742e009843616e206f6e6c792062652063616c6c65642062792074686520526f6f74206f726967696e2e40636c6561725f616c6c5f6c6561736573040110706172615101011850617261496400010c4d01436c65617220616c6c206c656173657320666f72206120506172612049642c20726566756e64696e6720616e79206465706f73697473206261636b20746f20746865206f726967696e616c206f776e6572732e009843616e206f6e6c792062652063616c6c65642062792074686520526f6f74206f726967696e2e3c747269676765725f6f6e626f617264040110706172615101011850617261496400021c250154727920746f206f6e626f61726420612070617261636861696e2074686174206861732061206c6561736520666f72207468652063757272656e74206c6561736520706572696f642e004501546869732066756e6374696f6e2063616e2062652075736566756c2069662074686572652077617320736f6d6520737461746520697373756520776974682061207061726120746861742073686f756c64390168617665206f6e626f61726465642c206275742077617320756e61626c6520746f2e204173206c6f6e67206173207468657920686176652061206c6561736520706572696f642c2077652063616e6c6c6574207468656d206f6e626f6172642066726f6d20686572652e00cc4f726967696e206d757374206265207369676e65642c206275742063616e2062652063616c6c656420627920616e796f6e652e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e6d05105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e2061756374696f6e731870616c6c65741043616c6c04045400010c2c6e65775f61756374696f6e0801206475726174696f6ead010138543a3a426c6f636b4e756d6265720001486c656173655f706572696f645f696e646578ad0101404c65617365506572696f644f663c543e000014544372656174652061206e65772061756374696f6e2e005101546869732063616e206f6e6c792068617070656e207768656e2074686572652069736e277420616c726561647920616e2061756374696f6e20696e2070726f677265737320616e64206d6179206f6e6c79206265250163616c6c65642062792074686520726f6f74206f726967696e2e20416363657074732074686520606475726174696f6e60206f6620746869732061756374696f6e20616e64207468655901606c656173655f706572696f645f696e64657860206f662074686520696e697469616c206c6561736520706572696f64206f662074686520666f757220746861742061726520746f2062652061756374696f6e65642e0c626964140110706172617105011850617261496400013461756374696f6e5f696e646578ad01013041756374696f6e496e64657800012866697273745f736c6f74ad0101404c65617365506572696f644f663c543e0001246c6173745f736c6f74ad0101404c65617365506572696f644f663c543e000118616d6f756e74cc013042616c616e63654f663c543e00014049014d616b652061206e6577206269642066726f6d20616e206163636f756e742028696e636c7564696e6720612070617261636861696e206163636f756e742920666f72206465706c6f79696e672061206e65772870617261636861696e2e0059014d756c7469706c652073696d756c74616e656f757320626964732066726f6d207468652073616d65206269646465722061726520616c6c6f776564206f6e6c79206173206c6f6e6720617320616c6c206163746976653d0162696473206f7665726c61702065616368206f746865722028692e652e20617265206d757475616c6c79206578636c7573697665292e20426964732063616e6e6f742062652072656461637465642e0055012d20607375626020697320746865207375622d6269646465722049442c20616c6c6f77696e6720666f72206d756c7469706c6520636f6d706574696e67206269647320746f206265206d6164652062792028616e647066756e64656420627929207468652073616d65206163636f756e742e4d012d206061756374696f6e5f696e646578602069732074686520696e646578206f66207468652061756374696f6e20746f20626964206f6e2e2053686f756c64206a757374206265207468652070726573656e746876616c7565206f66206041756374696f6e436f756e746572602e49012d206066697273745f736c6f746020697320746865206669727374206c6561736520706572696f6420696e646578206f66207468652072616e676520746f20626964206f6e2e20546869732069732074686509016162736f6c757465206c6561736520706572696f6420696e6465782076616c75652c206e6f7420616e2061756374696f6e2d7370656369666963206f66667365742e41012d20606c6173745f736c6f746020697320746865206c617374206c6561736520706572696f6420696e646578206f66207468652072616e676520746f20626964206f6e2e20546869732069732074686509016162736f6c757465206c6561736520706572696f6420696e6465782076616c75652c206e6f7420616e2061756374696f6e2d7370656369666963206f66667365742e49012d2060616d6f756e74602069732074686520616d6f756e7420746f2062696420746f2062652068656c64206173206465706f73697420666f72207468652070617261636861696e2073686f756c6420746865c86269642077696e2e205468697320616d6f756e742069732068656c64207468726f7567686f7574207468652072616e67652e3863616e63656c5f61756374696f6e00020c7843616e63656c20616e20696e2d70726f67726573732061756374696f6e2e008843616e206f6e6c792062652063616c6c656420627920526f6f74206f726967696e2e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e71050000065101007505105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e2463726f77646c6f616e1870616c6c65741043616c6c04045400012018637265617465180114696e6465787105011850617261496400010c636170cc013042616c616e63654f663c543e00013066697273745f706572696f64ad0101404c65617365506572696f644f663c543e00012c6c6173745f706572696f64ad0101404c65617365506572696f644f663c543e00010c656e64ad010138543a3a426c6f636b4e756d62657200012076657269666965727905014c4f7074696f6e3c4d756c74695369676e65723e00001069014372656174652061206e65772063726f77646c6f616e696e672063616d706169676e20666f7220612070617261636861696e20736c6f7420776974682074686520676976656e206c6561736520706572696f642072616e67652e005d0154686973206170706c6965732061206c6f636b20746f20796f75722070617261636861696e20636f6e66696775726174696f6e2c20656e737572696e6720746861742069742063616e6e6f74206265206368616e676564646279207468652070617261636861696e206d616e616765722e28636f6e747269627574650c0114696e6465787105011850617261496400011476616c7565cc013042616c616e63654f663c543e0001247369676e6174757265890501584f7074696f6e3c4d756c74695369676e61747572653e0001085101436f6e7472696275746520746f20612063726f77642073616c652e20546869732077696c6c207472616e7366657220736f6d652062616c616e6365206f76657220746f2066756e6420612070617261636861696e5101736c6f742e2049742077696c6c20626520776974686472617761626c65207768656e207468652063726f77646c6f616e2068617320656e64656420616e64207468652066756e64732061726520756e757365642e20776974686472617708010c77686f000130543a3a4163636f756e744964000114696e64657871050118506172614964000244c057697468647261772066756c6c2062616c616e6365206f66206120737065636966696320636f6e7472696275746f722e00c04f726967696e206d757374206265207369676e65642c206275742063616e20636f6d652066726f6d20616e796f6e652e00ad015468652066756e64206d7573742062652065697468657220696e2c206f7220726561647920666f722c207265746972656d656e742e20466f7220612066756e6420746f206265202a696e2a207265746972656d656e742c207468656e20746865207265746972656d656e74f8666c6167206d757374206265207365742e20466f7220612066756e6420746f20626520726561647920666f72207265746972656d656e742c207468656e3a9c2d206974206d757374206e6f7420616c726561647920626520696e207265746972656d656e743b4d012d2074686520616d6f756e74206f66207261697365642066756e6473206d75737420626520626967676572207468616e20746865205f667265655f2062616c616e6365206f6620746865206163636f756e743b342d20616e64206569746865723abc20202d2074686520626c6f636b206e756d626572206d757374206265206174206c656173742060656e64603b206f722d0120202d207468652063757272656e74206c6561736520706572696f64206d7573742062652067726561746572207468616e207468652066756e64277320606c6173745f706572696f64602e006d01496e207468697320636173652c207468652066756e642773207265746972656d656e7420666c61672069732073657420616e64206974732060656e646020697320726573657420746f207468652063757272656e7420626c6f636b1c6e756d6265722e00f02d206077686f603a20546865206163636f756e742077686f736520636f6e747269627574696f6e2073686f756c642062652077697468647261776e2e19012d2060696e646578603a205468652070617261636861696e20746f2077686f73652063726f77646c6f616e2074686520636f6e747269627574696f6e20776173206d6164652e18726566756e64040114696e64657871050118506172614964000314e04175746f6d61746963616c6c7920726566756e6420636f6e7472696275746f7273206f6620616e20656e6465642063726f77646c6f616e2e210144756520746f20776569676874207265737472696374696f6e732c20746869732066756e6374696f6e206d6179206e65656420746f2062652063616c6c6564206d756c7469706c65490174696d657320746f2066756c6c7920726566756e6420616c6c2075736572732e2057652077696c6c20726566756e64206052656d6f76654b6579734c696d69746020757365727320617420612074696d652e00c04f726967696e206d757374206265207369676e65642c206275742063616e20636f6d652066726f6d20616e796f6e652e20646973736f6c7665040114696e64657871050118506172614964000404550152656d6f766520612066756e6420616674657220746865207265746972656d656e7420706572696f642068617320656e64656420616e6420616c6c2066756e64732068617665206265656e2072657475726e65642e1065646974180114696e6465787105011850617261496400010c636170cc013042616c616e63654f663c543e00013066697273745f706572696f64ad0101404c65617365506572696f644f663c543e00012c6c6173745f706572696f64ad0101404c65617365506572696f644f663c543e00010c656e64ad010138543a3a426c6f636b4e756d62657200012076657269666965727905014c4f7074696f6e3c4d756c74695369676e65723e00050cd0456469742074686520636f6e66696775726174696f6e20666f7220616e20696e2d70726f67726573732063726f77646c6f616e2e008843616e206f6e6c792062652063616c6c656420627920526f6f74206f726967696e2e206164645f6d656d6f080114696e646578510101185061726149640001106d656d6f28011c5665633c75383e00060cec41646420616e206f7074696f6e616c206d656d6f20746f20616e206578697374696e672063726f77646c6f616e20636f6e747269627574696f6e2e002d014f726967696e206d757374206265205369676e65642c20616e64207468652075736572206d757374206861766520636f6e747269627574656420746f207468652063726f77646c6f616e2e10706f6b65040114696e6465785101011850617261496400070c74506f6b65207468652066756e6420696e746f20604e657752616973656000dc4f726967696e206d757374206265205369676e65642c20616e64207468652066756e6420686173206e6f6e2d7a65726f2072616973652e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e790504184f7074696f6e040454017d050108104e6f6e6500000010536f6d6504007d0500000100007d05082873705f72756e74696d652c4d756c74695369676e657200010c1c456432353531390400b0013c656432353531393a3a5075626c69630000001c537232353531390400bc013c737232353531393a3a5075626c696300010014456364736104008105013465636473613a3a5075626c69630002000081050c1c73705f636f7265146563647361185075626c696300000400850501205b75383b2033335d00008505000003210000000800890504184f7074696f6e040454018d050108104e6f6e6500000010536f6d6504008d0500000100008d05082873705f72756e74696d65384d756c74695369676e617475726500010c1c456432353531390400ad020148656432353531393a3a5369676e61747572650000001c5372323535313904005d010148737232353531393a3a5369676e617475726500010014456364736104009105014065636473613a3a5369676e61747572650002000091050c1c73705f636f7265146563647361245369676e617475726500000400110301205b75383b2036355d000095050840706f6c6b61646f745f72756e74696d65304f726967696e43616c6c65720001141873797374656d0400990501746672616d655f73797374656d3a3a4f726967696e3c52756e74696d653e0000001c436f756e63696c04009d0501010170616c6c65745f636f6c6c6563746976653a3a4f726967696e3c52756e74696d652c2070616c6c65745f636f6c6c6563746976653a3a496e7374616e6365313e000f0048546563686e6963616c436f6d6d69747465650400a10501010170616c6c65745f636f6c6c6563746976653a3a4f726967696e3c52756e74696d652c2070616c6c65745f636f6c6c6563746976653a3a496e7374616e6365323e0010004050617261636861696e734f726967696e0400a505016470617261636861696e735f6f726967696e3a3a4f726967696e00320010566f69640400a90501110173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a566f696400040000990508306672616d655f73797374656d245261774f726967696e04244163636f756e7449640100010c10526f6f74000000185369676e656404000001244163636f756e744964000100104e6f6e65000200009d05084470616c6c65745f636f6c6c656374697665245261774f726967696e08244163636f756e7449640100044900010c1c4d656d62657273080010012c4d656d626572436f756e74000010012c4d656d626572436f756e74000000184d656d62657204000001244163636f756e744964000100205f5068616e746f6d00020000a105084470616c6c65745f636f6c6c656374697665245261774f726967696e08244163636f756e7449640100044900010c1c4d656d62657273080010012c4d656d626572436f756e74000010012c4d656d626572436f756e74000000184d656d62657204000001244163636f756e744964000100205f5068616e746f6d00020000a505106c706f6c6b61646f745f72756e74696d655f70617261636861696e73186f726967696e1870616c6c6574184f726967696e0001042450617261636861696e04005101011850617261496400000000a905081c73705f636f726510566f696400010000ad05084070616c6c65745f7363686564756c65722052656c656173657300010808563100000008563200010000b1050c4070616c6c65745f7363686564756c65721870616c6c6574144572726f72040454000110404661696c6564546f5363686564756c65000004644661696c656420746f207363686564756c6520612063616c6c204e6f74466f756e640001047c43616e6e6f742066696e6420746865207363686564756c65642063616c6c2e5c546172676574426c6f636b4e756d626572496e50617374000204a4476976656e2074617267657420626c6f636b206e756d62657220697320696e2074686520706173742e4852657363686564756c654e6f4368616e6765000304f052657363686564756c65206661696c6564206265636175736520697420646f6573206e6f74206368616e6765207363686564756c65642074696d652e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909b50510346672616d655f737570706f72741c73746f72616765407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401b905045300000400bd0501185665633c543e0000b9050000040825022000bd05000002b90500c10510346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e6465645665630804540104045300000400c50501185665633c543e0000c5050000020400c90504184f7074696f6e04045401040108104e6f6e6500000010536f6d650400040000010000cd05084473705f636f6e73656e7375735f62616265584261626545706f6368436f6e66696775726174696f6e00000801046335020128287536342c2075363429000134616c6c6f7765645f736c6f747339020130416c6c6f776564536c6f74730000d1050c2c70616c6c65745f626162651870616c6c6574144572726f7204045400010c60496e76616c696445717569766f636174696f6e50726f6f660000043101416e2065717569766f636174696f6e2070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e60496e76616c69644b65794f776e65727368697050726f6f66000104310141206b6579206f776e6572736869702070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e584475706c69636174654f6666656e63655265706f727400020415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909d5050000040c0018e800d9050c3870616c6c65745f696e64696365731870616c6c6574144572726f720404540001142c4e6f7441737369676e65640000048c54686520696e64657820776173206e6f7420616c72656164792061737369676e65642e204e6f744f776e6572000104a454686520696e6465782069732061737369676e656420746f20616e6f74686572206163636f756e742e14496e5573650002047054686520696e64657820776173206e6f7420617661696c61626c652e2c4e6f745472616e73666572000304c854686520736f7572636520616e642064657374696e6174696f6e206163636f756e747320617265206964656e746963616c2e245065726d616e656e74000404d054686520696e646578206973207065726d616e656e7420616e64206d6179206e6f742062652066726565642f6368616e6765642e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909dd0510346672616d655f737570706f72741c73746f72616765407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401e105045300000400e90501185665633c543e0000e105083c70616c6c65745f62616c616e6365732c42616c616e63654c6f636b041c42616c616e63650118000c01086964f50101384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e636500011c726561736f6e73e505011c526561736f6e730000e505083c70616c6c65745f62616c616e6365731c526561736f6e7300010c0c466565000000104d6973630001000c416c6c00020000e905000002e10500ed0510346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e64656456656308045401f105045300000400f50501185665633c543e0000f105083c70616c6c65745f62616c616e6365732c52657365727665446174610844526573657276654964656e74696669657201f5011c42616c616e63650118000801086964f5010144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e63650000f505000002f10500f905083c70616c6c65745f62616c616e6365732052656c65617365730001081856315f305f300000001856325f305f3000010000fd050c3c70616c6c65745f62616c616e6365731870616c6c6574144572726f720804540004490001203856657374696e6742616c616e63650000049856657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c7565544c69717569646974795265737472696374696f6e73000104c44163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c4c496e73756666696369656e7442616c616e63650002047442616c616e636520746f6f206c6f7720746f2073656e642076616c7565484578697374656e7469616c4465706f736974000304e856616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f736974244b656570416c6976650004048c5472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e745c4578697374696e6756657374696e675363686564756c65000504c8412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742c446561644163636f756e740006048842656e6566696369617279206163636f756e74206d757374207072652d65786973743c546f6f4d616e795265736572766573000704ac4e756d626572206f66206e616d656420726573657276657320657863656564204d6178526573657276657304bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a09090901060c3473705f61726974686d657469632c66697865645f706f696e7424466978656455313238000004001801107531323800000506086870616c6c65745f7472616e73616374696f6e5f7061796d656e742052656c6561736573000108245631416e6369656e740000000856320001000009060000020d06000d060c346672616d655f737570706f72741c7765696768747358576569676874546f466565436f656666696369656e74041c42616c616e6365011800100134636f6566665f696e746567657218011c42616c616e6365000128636f6566665f66726163b901011c50657262696c6c0001206e65676174697665e80110626f6f6c0001186465677265650801087538000011060000021506001506084470616c6c65745f617574686f727368697038556e636c65456e7472794974656d0c2c426c6f636b4e756d62657201101048617368012418417574686f72010001083c496e636c7573696f6e486569676874040010012c426c6f636b4e756d62657200000014556e636c650800240110486173680000f10201384f7074696f6e3c417574686f723e0001000019060c4470616c6c65745f617574686f72736869701870616c6c6574144572726f7204045400011c48496e76616c6964556e636c65506172656e740000048854686520756e636c6520706172656e74206e6f7420696e2074686520636861696e2e40556e636c6573416c726561647953657400010480556e636c657320616c72656164792073657420696e2074686520626c6f636b2e34546f6f4d616e79556e636c657300020440546f6f206d616e7920756e636c65732e3047656e65736973556e636c650003045454686520756e636c652069732067656e657369732e30546f6f48696768556e636c650004047c54686520756e636c6520697320746f6f206869676820696e20636861696e2e50556e636c65416c7265616479496e636c756465640005047854686520756e636c6520697320616c726561647920696e636c756465642e204f6c64556e636c65000604b454686520756e636c652069736e277420726563656e7420656e6f75676820746f20626520696e636c756465642e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a0909091d06083870616c6c65745f7374616b696e67345374616b696e674c656467657208244163636f756e74496401001c42616c616e636501180014011473746173680001244163636f756e744964000114746f74616ccc011c42616c616e6365000118616374697665cc011c42616c616e6365000124756e6c6f636b696e67210601645665633c556e6c6f636b4368756e6b3c42616c616e63653e3e00013c636c61696d65645f72657761726473750201345665633c457261496e6465783e000021060000022506002506083870616c6c65745f7374616b696e672c556e6c6f636b4368756e6b041c42616c616e636501180008011476616c7565cc011c42616c616e636500010c657261ad010120457261496e64657800002906083870616c6c65745f7374616b696e672c4e6f6d696e6174696f6e7304244163636f756e7449640100000c011c74617267657473dc01385665633c4163636f756e7449643e0001307375626d69747465645f696e100120457261496e64657800012873757070726573736564e80110626f6f6c00002d06083870616c6c65745f7374616b696e6734416374697665457261496e666f0000080114696e646578100120457261496e6465780001147374617274d501012c4f7074696f6e3c7536343e00003106000004081000003506083870616c6c65745f7374616b696e673c457261526577617264506f696e747304244163636f756e744964010000080114746f74616c10012c526577617264506f696e74000128696e646976696475616c3906018042547265654d61703c4163636f756e7449642c20526577617264506f696e743e00003906042042547265654d617008044b0100045601100004003d060000003d060000024106004106000004080010004506083870616c6c65745f7374616b696e671c466f7263696e67000110284e6f74466f7263696e6700000020466f7263654e657700010024466f7263654e6f6e650002002c466f726365416c776179730003000049060000024d06004d06083870616c6c65745f7374616b696e6738556e6170706c696564536c61736808244163636f756e74496401001c42616c616e636501180014012476616c696461746f720001244163636f756e74496400010c6f776e18011c42616c616e63650001186f7468657273f401645665633c284163636f756e7449642c2042616c616e6365293e0001247265706f7274657273dc01385665633c4163636f756e7449643e0001187061796f757418011c42616c616e63650000510600000408b901180055060c3870616c6c65745f7374616b696e6720736c617368696e6734536c617368696e675370616e7300001001287370616e5f696e6465781001245370616e496e6465780001286c6173745f7374617274100120457261496e6465780001486c6173745f6e6f6e7a65726f5f736c617368100120457261496e6465780001147072696f72750201345665633c457261496e6465783e000059060c3870616c6c65745f7374616b696e6720736c617368696e67285370616e5265636f7264041c42616c616e636501180008011c736c617368656418011c42616c616e6365000120706169645f6f757418011c42616c616e636500005d06083870616c6c65745f7374616b696e672052656c65617365730001203456315f305f30416e6369656e740000001856325f305f300001001856335f305f300002001856345f305f300003001856355f305f300004001856365f305f300005001856375f305f300006001856385f305f30000700006106103870616c6c65745f7374616b696e671870616c6c65741870616c6c6574144572726f7204045400015c344e6f74436f6e74726f6c6c6572000004644e6f74206120636f6e74726f6c6c6572206163636f756e742e204e6f745374617368000104504e6f742061207374617368206163636f756e742e34416c7265616479426f6e64656400020460537461736820697320616c726561647920626f6e6465642e34416c726561647950616972656400030474436f6e74726f6c6c657220697320616c7265616479207061697265642e30456d7074795461726765747300040460546172676574732063616e6e6f7420626520656d7074792e384475706c6963617465496e646578000504404475706c696361746520696e6465782e44496e76616c6964536c617368496e64657800060484536c617368207265636f726420696e646578206f7574206f6620626f756e64732e40496e73756666696369656e74426f6e64000704cc43616e206e6f7420626f6e6420776974682076616c7565206c657373207468616e206d696e696d756d2072657175697265642e304e6f4d6f72654368756e6b730008049043616e206e6f74207363686564756c65206d6f726520756e6c6f636b206368756e6b732e344e6f556e6c6f636b4368756e6b000904a043616e206e6f74207265626f6e6420776974686f757420756e6c6f636b696e67206368756e6b732e3046756e646564546172676574000a04c8417474656d7074696e6720746f2074617267657420612073746173682074686174207374696c6c206861732066756e64732e48496e76616c6964457261546f526577617264000b0458496e76616c69642065726120746f207265776172642e68496e76616c69644e756d6265724f664e6f6d696e6174696f6e73000c0478496e76616c6964206e756d626572206f66206e6f6d696e6174696f6e732e484e6f74536f72746564416e64556e69717565000d04804974656d7320617265206e6f7420736f7274656420616e6420756e697175652e38416c7265616479436c61696d6564000e0409015265776172647320666f72207468697320657261206861766520616c7265616479206265656e20636c61696d656420666f7220746869732076616c696461746f722e54496e636f7272656374486973746f72794465707468000f04c0496e636f72726563742070726576696f757320686973746f727920646570746820696e7075742070726f76696465642e58496e636f7272656374536c617368696e675370616e73001004b0496e636f7272656374206e756d626572206f6620736c617368696e67207370616e732070726f76696465642e2042616453746174650011043901496e7465726e616c20737461746520686173206265636f6d6520736f6d65686f7720636f7272757074656420616e6420746865206f7065726174696f6e2063616e6e6f7420636f6e74696e75652e38546f6f4d616e795461726765747300120494546f6f206d616e79206e6f6d696e6174696f6e207461726765747320737570706c6965642e244261645461726765740013043d0141206e6f6d696e6174696f6e207461726765742077617320737570706c69656420746861742077617320626c6f636b6564206f72206f7468657277697365206e6f7420612076616c696461746f722e4043616e6e6f744368696c6c4f74686572001404550154686520757365722068617320656e6f75676820626f6e6420616e6420746875732063616e6e6f74206265206368696c6c656420666f72636566756c6c7920627920616e2065787465726e616c20706572736f6e2e44546f6f4d616e794e6f6d696e61746f72730015084d0154686572652061726520746f6f206d616e79206e6f6d696e61746f727320696e207468652073797374656d2e20476f7665726e616e6365206e6565647320746f2061646a75737420746865207374616b696e67b473657474696e677320746f206b656570207468696e6773207361666520666f72207468652072756e74696d652e44546f6f4d616e7956616c696461746f72730016084d0154686572652061726520746f6f206d616e792076616c696461746f727320696e207468652073797374656d2e20476f7665726e616e6365206e6565647320746f2061646a75737420746865207374616b696e67b473657474696e677320746f206b656570207468696e6773207361666520666f72207468652072756e74696d652e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a09090965060c2873705f7374616b696e671c6f6666656e6365384f6666656e636544657461696c7308205265706f727465720100204f6666656e64657201c4000801206f6666656e646572c401204f6666656e6465720001247265706f7274657273dc01345665633c5265706f727465723e00006906000004089828006d06000002710600710600000408008502007506000004087906280079060c1c73705f636f72651863727970746f244b65795479706549640000040038011c5b75383b20345d00007d060c3870616c6c65745f73657373696f6e1870616c6c6574144572726f7204045400011430496e76616c696450726f6f6600000460496e76616c6964206f776e6572736869702070726f6f662e5c4e6f4173736f63696174656456616c696461746f7249640001049c4e6f206173736f6369617465642076616c696461746f7220494420666f72206163636f756e742e344475706c6963617465644b65790002046452656769737465726564206475706c6963617465206b65792e184e6f4b657973000304a44e6f206b65797320617265206173736f63696174656420776974682074686973206163636f756e742e244e6f4163636f756e7400040419014b65792073657474696e67206163636f756e74206973206e6f74206c6976652c20736f206974277320696d706f737369626c6520746f206173736f6369617465206b6579732e04744572726f7220666f72207468652073657373696f6e2070616c6c65742e8106083870616c6c65745f6772616e6470612c53746f726564537461746504044e01100110104c6976650000003050656e64696e6750617573650801307363686564756c65645f61741001044e00011464656c61791001044e000100185061757365640002003450656e64696e67526573756d650801307363686564756c65645f61741001044e00011464656c61791001044e000300008506083870616c6c65745f6772616e6470614c53746f72656450656e64696e674368616e676508044e0110144c696d697400001001307363686564756c65645f61741001044e00011464656c61791001044e0001406e6578745f617574686f7269746965738906016c426f756e646564417574686f726974794c6973743c4c696d69743e000118666f72636564790201244f7074696f6e3c4e3e0000890610346672616d655f737570706f72741c73746f72616765407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401a8045300000400a401185665633c543e00008d060c3870616c6c65745f6772616e6470611870616c6c6574144572726f7204045400011c2c50617573654661696c65640000080501417474656d707420746f207369676e616c204752414e445041207061757365207768656e2074686520617574686f72697479207365742069736e2774206c697665a42865697468657220706175736564206f7220616c72656164792070656e64696e67207061757365292e30526573756d654661696c65640001081101417474656d707420746f207369676e616c204752414e44504120726573756d65207768656e2074686520617574686f72697479207365742069736e277420706175736564a028656974686572206c697665206f7220616c72656164792070656e64696e6720726573756d65292e344368616e676550656e64696e67000204e8417474656d707420746f207369676e616c204752414e445041206368616e67652077697468206f6e6520616c72656164792070656e64696e672e1c546f6f536f6f6e000304bc43616e6e6f74207369676e616c20666f72636564206368616e676520736f20736f6f6e206166746572206c6173742e60496e76616c69644b65794f776e65727368697050726f6f66000404310141206b6579206f776e6572736869702070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e60496e76616c696445717569766f636174696f6e50726f6f660005043101416e2065717569766f636174696f6e2070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e584475706c69636174654f6666656e63655265706f727400060415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909910610346672616d655f737570706f72741c73746f72616765407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401b8045300000400950601185665633c543e00009506000002b800990610346672616d655f737570706f727418747261697473106d69736334577261707065724f7061717565040454019d06000800ad010000009d0601045400009d06084070616c6c65745f696d5f6f6e6c696e6564426f756e6465644f70617175654e6574776f726b53746174650c4c506565724964456e636f64696e674c696d697400584d756c746941646472456e636f64696e674c696d697400384164647265737365734c696d6974000008011c706565725f6964a106019c5765616b426f756e6465645665633c75382c20506565724964456e636f64696e674c696d69743e00014865787465726e616c5f616464726573736573a506012d015765616b426f756e6465645665633c5765616b426f756e6465645665633c75382c204d756c746941646472456e636f64696e674c696d69743e2c204164647265737365734c696d69740a3e0000a10610346672616d655f737570706f72741c73746f72616765407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401080453000004002801185665633c543e0000a50610346672616d655f737570706f72741c73746f72616765407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401a106045300000400a90601185665633c543e0000a906000002a10600ad060c4070616c6c65745f696d5f6f6e6c696e651870616c6c6574144572726f7204045400010828496e76616c69644b6579000004604e6f6e206578697374656e74207075626c6963206b65792e4c4475706c696361746564486561727462656174000104544475706c696361746564206865617274626561742e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909b106000002b50600b5060000040c10240000b90600000408dc1800bd06084070616c6c65745f64656d6f637261637938507265696d6167655374617475730c244163636f756e74496401001c42616c616e636501182c426c6f636b4e756d626572011001081c4d697373696e67040010012c426c6f636b4e756d62657200000024417661696c61626c651401106461746128011c5665633c75383e00012070726f76696465720001244163636f756e74496400011c6465706f73697418011c42616c616e636500011473696e636510012c426c6f636b4e756d6265720001186578706972797902014c4f7074696f6e3c426c6f636b4e756d6265723e00010000c1060c4070616c6c65745f64656d6f6372616379147479706573385265666572656e64756d496e666f0c2c426c6f636b4e756d6265720110104861736801241c42616c616e6365011801081c4f6e676f696e670400c50601b05265666572656e64756d5374617475733c426c6f636b4e756d6265722c20486173682c2042616c616e63653e0000002046696e6973686564080120617070726f766564e80110626f6f6c00010c656e6410012c426c6f636b4e756d62657200010000c5060c4070616c6c65745f64656d6f6372616379147479706573405265666572656e64756d5374617475730c2c426c6f636b4e756d6265720110104861736801241c42616c616e636501180014010c656e6410012c426c6f636b4e756d62657200013470726f706f73616c5f68617368240110486173680001247468726573686f6c64e00134566f74655468726573686f6c6400011464656c617910012c426c6f636b4e756d62657200011474616c6c79c906013854616c6c793c42616c616e63653e0000c9060c4070616c6c65745f64656d6f63726163791474797065731454616c6c79041c42616c616e63650118000c01106179657318011c42616c616e63650001106e61797318011c42616c616e636500011c7475726e6f757418011c42616c616e63650000cd060c4070616c6c65745f64656d6f637261637910766f746518566f74696e670c1c42616c616e63650118244163636f756e74496401002c426c6f636b4e756d62657201100108184469726563740c0114766f746573d10601b05665633c285265666572656e64756d496e6465782c204163636f756e74566f74653c42616c616e63653e293e00012c64656c65676174696f6e73d906015044656c65676174696f6e733c42616c616e63653e0001147072696f72dd06017c5072696f724c6f636b3c426c6f636b4e756d6265722c2042616c616e63653e0000002844656c65676174696e6714011c62616c616e636518011c42616c616e63650001187461726765740001244163636f756e744964000128636f6e76696374696f6ee9020128436f6e76696374696f6e00012c64656c65676174696f6e73d906015044656c65676174696f6e733c42616c616e63653e0001147072696f72dd06017c5072696f724c6f636b3c426c6f636b4e756d6265722c2042616c616e63653e00010000d106000002d50600d5060000040810e10200d9060c4070616c6c65745f64656d6f63726163791474797065732c44656c65676174696f6e73041c42616c616e6365011800080114766f74657318011c42616c616e636500011c6361706974616c18011c42616c616e63650000dd060c4070616c6c65745f64656d6f637261637910766f7465245072696f724c6f636b082c426c6f636b4e756d62657201101c42616c616e6365011800080010012c426c6f636b4e756d626572000018011c42616c616e63650000e1060000040824e000e5060000040810dc00e906084070616c6c65745f64656d6f63726163792052656c656173657300010408563100000000ed060c4070616c6c65745f64656d6f63726163791870616c6c6574144572726f720404540001702056616c75654c6f770000043456616c756520746f6f206c6f773c50726f706f73616c4d697373696e670001045c50726f706f73616c20646f6573206e6f742065786973743c416c726561647943616e63656c65640002049443616e6e6f742063616e63656c207468652073616d652070726f706f73616c207477696365444475706c696361746550726f706f73616c0003045450726f706f73616c20616c7265616479206d6164654c50726f706f73616c426c61636b6c69737465640004046850726f706f73616c207374696c6c20626c61636b6c6973746564444e6f7453696d706c654d616a6f72697479000504a84e6578742065787465726e616c2070726f706f73616c206e6f742073696d706c65206d616a6f726974792c496e76616c69644861736800060430496e76616c69642068617368284e6f50726f706f73616c000704504e6f2065787465726e616c2070726f706f73616c34416c72656164795665746f6564000804984964656e74697479206d6179206e6f74207665746f20612070726f706f73616c207477696365444475706c6963617465507265696d61676500090458507265696d61676520616c7265616479206e6f7465642c4e6f74496d6d696e656e74000a04304e6f7420696d6d696e656e7420546f6f4561726c79000b0424546f6f206561726c7920496d6d696e656e74000c0420496d6d696e656e743c507265696d6167654d697373696e67000d0448507265696d616765206e6f7420666f756e64445265666572656e64756d496e76616c6964000e0484566f746520676976656e20666f7220696e76616c6964207265666572656e64756d3c507265696d616765496e76616c6964000f0440496e76616c696420707265696d6167652c4e6f6e6557616974696e67001004504e6f2070726f706f73616c732077616974696e67204e6f74566f746572001104c454686520676976656e206163636f756e7420646964206e6f7420766f7465206f6e20746865207265666572656e64756d2e304e6f5065726d697373696f6e001204c8546865206163746f7220686173206e6f207065726d697373696f6e20746f20636f6e647563742074686520616374696f6e2e44416c726561647944656c65676174696e6700130488546865206163636f756e7420697320616c72656164792064656c65676174696e672e44496e73756666696369656e7446756e6473001404fc546f6f206869676820612062616c616e6365207761732070726f7669646564207468617420746865206163636f756e742063616e6e6f74206166666f72642e344e6f7444656c65676174696e67001504a0546865206163636f756e74206973206e6f742063757272656e746c792064656c65676174696e672e28566f74657345786973740016085501546865206163636f756e742063757272656e746c792068617320766f74657320617474616368656420746f20697420616e6420746865206f7065726174696f6e2063616e6e6f74207375636365656420756e74696ce87468657365206172652072656d6f7665642c20656974686572207468726f7567682060756e766f746560206f722060726561705f766f7465602e44496e7374616e744e6f74416c6c6f776564001704d854686520696e7374616e74207265666572656e64756d206f726967696e2069732063757272656e746c7920646973616c6c6f7765642e204e6f6e73656e73650018049444656c65676174696f6e20746f206f6e6573656c66206d616b6573206e6f2073656e73652e3c57726f6e675570706572426f756e6400190450496e76616c696420757070657220626f756e642e3c4d6178566f74657352656163686564001a04804d6178696d756d206e756d626572206f6620766f74657320726561636865642e40546f6f4d616e7950726f706f73616c73001b04904d6178696d756d206e756d626572206f662070726f706f73616c7320726561636865642e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909f10610346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e6465645665630804540124045300000400a10101185665633c543e0000f506084470616c6c65745f636f6c6c65637469766514566f74657308244163636f756e74496401002c426c6f636b4e756d626572011000140114696e64657810013450726f706f73616c496e6465780001247468726573686f6c6410012c4d656d626572436f756e7400011061796573dc01385665633c4163636f756e7449643e0001106e617973dc01385665633c4163636f756e7449643e00010c656e6410012c426c6f636b4e756d6265720000f9060c4470616c6c65745f636f6c6c6563746976651870616c6c6574144572726f72080454000449000128244e6f744d656d6265720000045c4163636f756e74206973206e6f742061206d656d626572444475706c696361746550726f706f73616c0001047c4475706c69636174652070726f706f73616c73206e6f7420616c6c6f7765643c50726f706f73616c4d697373696e670002044c50726f706f73616c206d7573742065786973742857726f6e67496e646578000304404d69736d61746368656420696e646578344475706c6963617465566f7465000404584475706c696361746520766f74652069676e6f72656448416c7265616479496e697469616c697a6564000504804d656d626572732061726520616c726561647920696e697469616c697a65642120546f6f4561726c79000604010154686520636c6f73652063616c6c20776173206d61646520746f6f206561726c792c206265666f72652074686520656e64206f662074686520766f74696e672e40546f6f4d616e7950726f706f73616c73000704fc54686572652063616e206f6e6c792062652061206d6178696d756d206f6620604d617850726f706f73616c7360206163746976652070726f706f73616c732e4c57726f6e6750726f706f73616c576569676874000804d054686520676976656e2077656967687420626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e4c57726f6e6750726f706f73616c4c656e677468000904d054686520676976656e206c656e67746820626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909fd0610346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e6465645665630804540124045300000400a10101185665633c543e000001070c4470616c6c65745f636f6c6c6563746976651870616c6c6574144572726f72080454000449000128244e6f744d656d6265720000045c4163636f756e74206973206e6f742061206d656d626572444475706c696361746550726f706f73616c0001047c4475706c69636174652070726f706f73616c73206e6f7420616c6c6f7765643c50726f706f73616c4d697373696e670002044c50726f706f73616c206d7573742065786973742857726f6e67496e646578000304404d69736d61746368656420696e646578344475706c6963617465566f7465000404584475706c696361746520766f74652069676e6f72656448416c7265616479496e697469616c697a6564000504804d656d626572732061726520616c726561647920696e697469616c697a65642120546f6f4561726c79000604010154686520636c6f73652063616c6c20776173206d61646520746f6f206561726c792c206265666f72652074686520656e64206f662074686520766f74696e672e40546f6f4d616e7950726f706f73616c73000704fc54686572652063616e206f6e6c792062652061206d6178696d756d206f6620604d617850726f706f73616c7360206163746976652070726f706f73616c732e4c57726f6e6750726f706f73616c576569676874000804d054686520676976656e2077656967687420626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e4c57726f6e6750726f706f73616c4c656e677468000904d054686520676976656e206c656e67746820626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a09090905070000020907000907086470616c6c65745f656c656374696f6e735f70687261676d656e2853656174486f6c64657208244163636f756e74496401001c42616c616e63650118000c010c77686f0001244163636f756e7449640001147374616b6518011c42616c616e636500011c6465706f73697418011c42616c616e636500000d07086470616c6c65745f656c656374696f6e735f70687261676d656e14566f74657208244163636f756e74496401001c42616c616e63650118000c0114766f746573dc01385665633c4163636f756e7449643e0001147374616b6518011c42616c616e636500011c6465706f73697418011c42616c616e6365000011070c6470616c6c65745f656c656374696f6e735f70687261676d656e1870616c6c6574144572726f7204045400014430556e61626c65546f566f7465000004c043616e6e6f7420766f7465207768656e206e6f2063616e64696461746573206f72206d656d626572732065786973742e1c4e6f566f746573000104944d75737420766f746520666f72206174206c65617374206f6e652063616e6469646174652e30546f6f4d616e79566f7465730002048443616e6e6f7420766f7465206d6f7265207468616e2063616e646964617465732e504d6178696d756d566f74657345786365656465640003049843616e6e6f7420766f7465206d6f7265207468616e206d6178696d756d20616c6c6f7765642e284c6f7742616c616e6365000404c443616e6e6f7420766f74652077697468207374616b65206c657373207468616e206d696e696d756d2062616c616e63652e3c556e61626c65546f506179426f6e6400050478566f7465722063616e206e6f742070617920766f74696e6720626f6e642e2c4d7573744265566f746572000604404d757374206265206120766f7465722e285265706f727453656c660007044c43616e6e6f74207265706f72742073656c662e4c4475706c69636174656443616e646964617465000804804475706c6963617465642063616e646964617465207375626d697373696f6e2e304d656d6265725375626d6974000904884d656d6265722063616e6e6f742072652d7375626d69742063616e6469646163792e3852756e6e657255705375626d6974000a048852756e6e65722063616e6e6f742072652d7375626d69742063616e6469646163792e68496e73756666696369656e7443616e64696461746546756e6473000b049443616e64696461746520646f6573206e6f74206861766520656e6f7567682066756e64732e244e6f744d656d626572000c04344e6f742061206d656d6265722e48496e76616c69645769746e65737344617461000d04e05468652070726f766964656420636f756e74206f66206e756d626572206f662063616e6469646174657320697320696e636f72726563742e40496e76616c6964566f7465436f756e74000e04cc5468652070726f766964656420636f756e74206f66206e756d626572206f6620766f74657320697320696e636f72726563742e44496e76616c696452656e6f756e63696e67000f04fc5468652072656e6f756e63696e67206f726967696e2070726573656e74656420612077726f6e67206052656e6f756e63696e676020706172616d657465722e48496e76616c69645265706c6163656d656e74001004fc50726564696374696f6e20726567617264696e67207265706c6163656d656e74206166746572206d656d6265722072656d6f76616c2069732077726f6e672e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a09090915070c4470616c6c65745f6d656d626572736869701870616c6c6574144572726f7208045400044900010834416c72656164794d656d62657200000444416c72656164792061206d656d6265722e244e6f744d656d626572000104344e6f742061206d656d6265722e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a0909091907083c70616c6c65745f74726561737572792050726f706f73616c08244163636f756e74496401001c42616c616e636501180010012070726f706f7365720001244163636f756e74496400011476616c756518011c42616c616e636500012c62656e65666963696172790001244163636f756e744964000110626f6e6418011c42616c616e636500001d0710346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e6465645665630804540110045300000400750201185665633c543e000021070c3473705f61726974686d65746963287065725f7468696e67731c5065726d696c6c0000040010010c7533320000250708346672616d655f737570706f72742050616c6c6574496400000400f501011c5b75383b20385d000029070c3c70616c6c65745f74726561737572791870616c6c6574144572726f7208045400044900010c70496e73756666696369656e7450726f706f7365727342616c616e63650000047850726f706f73657227732062616c616e636520697320746f6f206c6f772e30496e76616c6964496e646578000104904e6f2070726f706f73616c206f7220626f756e7479206174207468617420696e6465782e40546f6f4d616e79417070726f76616c7300020480546f6f206d616e7920617070726f76616c7320696e207468652071756575652e04784572726f7220666f72207468652074726561737572792070616c6c65742e2d07105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e18636c61696d731870616c6c6574144572726f7204045400011860496e76616c6964457468657265756d5369676e61747572650000046c496e76616c696420457468657265756d207369676e61747572652e405369676e65724861734e6f436c61696d00010478457468657265756d206164647265737320686173206e6f20636c61696d2e4053656e6465724861734e6f436c61696d000204b04163636f756e742049442073656e64696e67207472616e73616374696f6e20686173206e6f20636c61696d2e30506f74556e646572666c6f77000308610154686572652773206e6f7420656e6f75676820696e2074686520706f7420746f20706179206f757420736f6d6520756e76657374656420616d6f756e742e2047656e6572616c6c7920696d706c6965732061206c6f676963186572726f722e40496e76616c696453746174656d656e740004049041206e65656465642073746174656d656e7420776173206e6f7420696e636c756465642e4c56657374656442616c616e6365457869737473000504a4546865206163636f756e7420616c7265616479206861732061207665737465642062616c616e63652e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909310710346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e646564566563080454012903045300000400350701185665633c543e000035070000022903003907083870616c6c65745f76657374696e672052656c6561736573000108085630000000085631000100003d070c3870616c6c65745f76657374696e671870616c6c6574144572726f72040454000114284e6f7456657374696e6700000484546865206163636f756e7420676976656e206973206e6f742076657374696e672e5441744d617856657374696e675363686564756c65730001082501546865206163636f756e7420616c72656164792068617320604d617856657374696e675363686564756c65736020636f756e74206f66207363686564756c657320616e642074687573510163616e6e6f742061646420616e6f74686572206f6e652e20436f6e7369646572206d657267696e67206578697374696e67207363686564756c657320696e206f7264657220746f2061646420616e6f746865722e24416d6f756e744c6f770002040501416d6f756e74206265696e67207472616e7366657272656420697320746f6f206c6f7720746f2063726561746520612076657374696e67207363686564756c652e605363686564756c65496e6465784f75744f66426f756e6473000304d0416e20696e64657820776173206f7574206f6620626f756e6473206f66207468652076657374696e67207363686564756c65732e54496e76616c69645363686564756c65506172616d730004040d014661696c656420746f206372656174652061206e6577207363686564756c65206265636175736520736f6d6520706172616d657465722077617320696e76616c69642e04744572726f7220666f72207468652076657374696e672070616c6c65742e41070c3870616c6c65745f7574696c6974791870616c6c6574144572726f7204045400010430546f6f4d616e7943616c6c730000045c546f6f206d616e792063616c6c7320626174636865642e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a09090945070c3c70616c6c65745f6964656e7469747914747970657330526567697374726174696f6e0c1c42616c616e63650118344d61784a756467656d656e7473004c4d61784164646974696f6e616c4669656c647300000c01286a756467656d656e7473490701fc426f756e6465645665633c28526567697374726172496e6465782c204a756467656d656e743c42616c616e63653e292c204d61784a756467656d656e74733e00011c6465706f73697418011c42616c616e6365000110696e666f390301844964656e74697479496e666f3c4d61784164646974696f6e616c4669656c64733e0000490710346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e646564566563080454014d07045300000400510701185665633c543e00004d070000040810d1030051070000024d070055070000040818590700590710346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e6465645665630804540100045300000400dc01185665633c543e00005d0710346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e646564566563080454016107045300000400690701185665633c543e0000610704184f7074696f6e0404540165070108104e6f6e6500000010536f6d6504006507000001000065070c3c70616c6c65745f6964656e7469747914747970657334526567697374726172496e666f081c42616c616e63650118244163636f756e7449640100000c011c6163636f756e740001244163636f756e74496400010c66656518011c42616c616e63650001186669656c6473c90301384964656e746974794669656c6473000069070000026107006d070c3c70616c6c65745f6964656e746974791870616c6c6574144572726f7204045400014048546f6f4d616e795375624163636f756e74730000045c546f6f206d616e7920737562732d6163636f756e74732e204e6f74466f756e64000104504163636f756e742069736e277420666f756e642e204e6f744e616d6564000204504163636f756e742069736e2774206e616d65642e28456d707479496e64657800030430456d70747920696e6465782e284665654368616e6765640004043c466565206973206368616e6765642e284e6f4964656e74697479000504484e6f206964656e7469747920666f756e642e3c537469636b794a756467656d656e7400060444537469636b79206a756467656d656e742e384a756467656d656e74476976656e000704404a756467656d656e7420676976656e2e40496e76616c69644a756467656d656e7400080448496e76616c6964206a756467656d656e742e30496e76616c6964496e6465780009045454686520696e64657820697320696e76616c69642e34496e76616c6964546172676574000a04585468652074617267657420697320696e76616c69642e34546f6f4d616e794669656c6473000b046c546f6f206d616e79206164646974696f6e616c206669656c64732e44546f6f4d616e7952656769737472617273000c04e84d6178696d756d20616d6f756e74206f66207265676973747261727320726561636865642e2043616e6e6f742061646420616e79206d6f72652e38416c7265616479436c61696d6564000d04704163636f756e7420494420697320616c7265616479206e616d65642e184e6f74537562000e047053656e646572206973206e6f742061207375622d6163636f756e742e204e6f744f776e6564000f04885375622d6163636f756e742069736e2774206f776e65642062792073656e6465722e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a09090971070000040875071800750710346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e6465645665630804540179070453000004007d0701185665633c543e00007907083070616c6c65745f70726f78793c50726f7879446566696e6974696f6e0c244163636f756e74496401002450726f7879547970650121012c426c6f636b4e756d6265720110000c012064656c65676174650001244163636f756e74496400012870726f78795f747970652101012450726f78795479706500011464656c617910012c426c6f636b4e756d62657200007d0700000279070081070000040885071800850710346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e6465645665630804540189070453000004008d0701185665633c543e00008907083070616c6c65745f70726f787930416e6e6f756e63656d656e740c244163636f756e7449640100104861736801242c426c6f636b4e756d6265720110000c01107265616c0001244163636f756e74496400012463616c6c5f686173682401104861736800011868656967687410012c426c6f636b4e756d62657200008d0700000289070091070c3070616c6c65745f70726f78791870616c6c6574144572726f720404540001201c546f6f4d616e79000004210154686572652061726520746f6f206d616e792070726f786965732072656769737465726564206f7220746f6f206d616e7920616e6e6f756e63656d656e74732070656e64696e672e204e6f74466f756e640001047450726f787920726567697374726174696f6e206e6f7420666f756e642e204e6f7450726f7879000204cc53656e646572206973206e6f7420612070726f7879206f6620746865206163636f756e7420746f2062652070726f786965642e2c556e70726f787961626c650003042101412063616c6c20776869636820697320696e636f6d70617469626c652077697468207468652070726f7879207479706527732066696c7465722077617320617474656d707465642e244475706c69636174650004046c4163636f756e7420697320616c726561647920612070726f78792e304e6f5065726d697373696f6e000504150143616c6c206d6179206e6f74206265206d6164652062792070726f78792062656361757365206974206d617920657363616c617465206974732070726976696c656765732e2c556e616e6e6f756e636564000604d0416e6e6f756e63656d656e742c206966206d61646520617420616c6c2c20776173206d61646520746f6f20726563656e746c792e2c4e6f53656c6650726f78790007046443616e6e6f74206164642073656c662061732070726f78792e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a0909099507000004080004009907083c70616c6c65745f6d756c7469736967204d756c74697369670c2c426c6f636b4e756d62657201101c42616c616e63650118244163636f756e7449640100001001107768656e2d01015854696d65706f696e743c426c6f636b4e756d6265723e00011c6465706f73697418011c42616c616e63650001246465706f7369746f720001244163636f756e744964000124617070726f76616c73dc01385665633c4163636f756e7449643e00009d070000040c28001800a1070c3c70616c6c65745f6d756c74697369671870616c6c6574144572726f72040454000138404d696e696d756d5468726573686f6c640000047c5468726573686f6c64206d7573742062652032206f7220677265617465722e3c416c7265616479417070726f766564000104ac43616c6c20697320616c726561647920617070726f7665642062792074686973207369676e61746f72792e444e6f417070726f76616c734e65656465640002049c43616c6c20646f65736e2774206e65656420616e7920286d6f72652920617070726f76616c732e44546f6f4665775369676e61746f72696573000304a854686572652061726520746f6f20666577207369676e61746f7269657320696e20746865206c6973742e48546f6f4d616e795369676e61746f72696573000404ac54686572652061726520746f6f206d616e79207369676e61746f7269657320696e20746865206c6973742e545369676e61746f726965734f75744f664f726465720005040d01546865207369676e61746f7269657320776572652070726f7669646564206f7574206f66206f726465723b20746865792073686f756c64206265206f7264657265642e4c53656e646572496e5369676e61746f726965730006040d015468652073656e6465722077617320636f6e7461696e656420696e20746865206f74686572207369676e61746f726965733b2069742073686f756c646e27742062652e204e6f74466f756e64000704dc4d756c7469736967206f7065726174696f6e206e6f7420666f756e64207768656e20617474656d7074696e6720746f2063616e63656c2e204e6f744f776e65720008042d014f6e6c7920746865206163636f756e742074686174206f726967696e616c6c79206372656174656420746865206d756c74697369672069732061626c6520746f2063616e63656c2069742e2c4e6f54696d65706f696e740009041d014e6f2074696d65706f696e742077617320676976656e2c2079657420746865206d756c7469736967206f7065726174696f6e20697320616c726561647920756e6465727761792e3857726f6e6754696d65706f696e74000a042d014120646966666572656e742074696d65706f696e742077617320676976656e20746f20746865206d756c7469736967206f7065726174696f6e207468617420697320756e6465727761792e4c556e657870656374656454696d65706f696e74000b04f4412074696d65706f696e742077617320676976656e2c20796574206e6f206d756c7469736967206f7065726174696f6e20697320756e6465727761792e3c4d6178576569676874546f6f4c6f77000c04d0546865206d6178696d756d2077656967687420696e666f726d6174696f6e2070726f76696465642077617320746f6f206c6f772e34416c726561647953746f726564000d04a0546865206461746120746f2062652073746f72656420697320616c72656164792073746f7265642e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909a507083c70616c6c65745f626f756e7469657318426f756e74790c244163636f756e74496401001c42616c616e636501182c426c6f636b4e756d62657201100018012070726f706f7365720001244163636f756e74496400011476616c756518011c42616c616e636500010c66656518011c42616c616e636500013c63757261746f725f6465706f73697418011c42616c616e6365000110626f6e6418011c42616c616e6365000118737461747573a9070190426f756e74795374617475733c4163636f756e7449642c20426c6f636b4e756d6265723e0000a907083c70616c6c65745f626f756e7469657330426f756e747953746174757308244163636f756e74496401002c426c6f636b4e756d626572011001182050726f706f73656400000020417070726f7665640001001846756e6465640002003c43757261746f7250726f706f73656404011c63757261746f720001244163636f756e7449640003001841637469766508011c63757261746f720001244163636f756e7449640001287570646174655f64756510012c426c6f636b4e756d6265720004003450656e64696e675061796f75740c011c63757261746f720001244163636f756e74496400012c62656e65666963696172790001244163636f756e744964000124756e6c6f636b5f617410012c426c6f636b4e756d62657200050000ad070c3c70616c6c65745f626f756e746965731870616c6c6574144572726f7204045400012470496e73756666696369656e7450726f706f7365727342616c616e63650000047850726f706f73657227732062616c616e636520697320746f6f206c6f772e30496e76616c6964496e646578000104904e6f2070726f706f73616c206f7220626f756e7479206174207468617420696e6465782e30526561736f6e546f6f4269670002048454686520726561736f6e20676976656e206973206a75737420746f6f206269672e40556e65787065637465645374617475730003048054686520626f756e74792073746174757320697320756e65787065637465642e385265717569726543757261746f720004045c5265717569726520626f756e74792063757261746f722e30496e76616c696456616c756500050454496e76616c696420626f756e74792076616c75652e28496e76616c69644665650006044c496e76616c696420626f756e7479206665652e3450656e64696e675061796f75740007086c4120626f756e7479207061796f75742069732070656e64696e672ef8546f2063616e63656c2074686520626f756e74792c20796f75206d75737420756e61737369676e20616e6420736c617368207468652063757261746f722e245072656d6174757265000804450154686520626f756e746965732063616e6e6f7420626520636c61696d65642f636c6f73656420626563617573652069742773207374696c6c20696e2074686520636f756e74646f776e20706572696f642e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909b107082c70616c6c65745f746970731c4f70656e54697010244163636f756e74496401001c42616c616e636501182c426c6f636b4e756d626572011010486173680124001c0118726561736f6e2401104861736800010c77686f0001244163636f756e74496400011866696e6465720001244163636f756e74496400011c6465706f73697418011c42616c616e6365000118636c6f7365737902014c4f7074696f6e3c426c6f636b4e756d6265723e00011074697073f401645665633c284163636f756e7449642c2042616c616e6365293e00012c66696e646572735f666565e80110626f6f6c0000b5070c2c70616c6c65745f746970731870616c6c6574144572726f7204045400011830526561736f6e546f6f4269670000048454686520726561736f6e20676976656e206973206a75737420746f6f206269672e30416c72656164794b6e6f776e00010488546865207469702077617320616c726561647920666f756e642f737461727465642e28556e6b6e6f776e5469700002046054686520746970206861736820697320756e6b6e6f776e2e244e6f7446696e6465720003041d01546865206163636f756e7420617474656d7074696e6720746f20726574726163742074686520746970206973206e6f74207468652066696e646572206f6620746865207469702e245374696c6c4f70656e0004042901546865207469702063616e6e6f7420626520636c61696d65642f636c6f736564206265636175736520746865726520617265206e6f7420656e6f7567682074697070657273207965742e245072656d61747572650005043101546865207469702063616e6e6f7420626520636c61696d65642f636c6f73656420626563617573652069742773207374696c6c20696e2074686520636f756e74646f776e20706572696f642e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909b907089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173651450686173650408426e011001100c4f6666000000185369676e656400010020556e7369676e65640400bd07012828626f6f6c2c20426e2900020024456d657267656e637900030000bd0700000408e81000c107089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f7068617365345265616479536f6c7574696f6e0404410100000c0120737570706f727473cd04012c537570706f7274733c413e00011473636f7265c1040134456c656374696f6e53636f726500011c636f6d707574653d01013c456c656374696f6e436f6d707574650000c507089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f706861736534526f756e64536e617073686f74040441010000080118766f74657273c90701705665633c28412c20566f74655765696768742c205665633c413e293e00011c74617267657473dc01185665633c413e0000c907000002cd0700cd070000040c0020dc00d10710346672616d655f737570706f72741c73746f7261676544626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b01c10404560110045300000400d507013842547265654d61703c4b2c20563e0000d507042042547265654d617008044b01c10404560110000400d907000000d907000002dd0700dd0700000408c1041000e1070c9070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f7068617365187369676e6564405369676e65645375626d697373696f6e0c244163636f756e74496401001c42616c616e6365011820536f6c7574696f6e01f5030010010c77686f0001244163636f756e74496400011c6465706f73697418011c42616c616e63650001307261775f736f6c7574696f6ef1030154526177536f6c7574696f6e3c536f6c7574696f6e3e00011872657761726418011c42616c616e63650000e5070c9070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173651870616c6c6574144572726f7204045400012c6850726544697370617463684561726c795375626d697373696f6e000004645375626d697373696f6e2077617320746f6f206561726c792e6c507265446973706174636857726f6e6757696e6e6572436f756e740001048857726f6e67206e756d626572206f662077696e6e6572732070726573656e7465642e6450726544697370617463685765616b5375626d697373696f6e000204905375626d697373696f6e2077617320746f6f207765616b2c2073636f72652d776973652e3c5369676e6564517565756546756c6c0003044901546865207175657565207761732066756c6c2c20616e642074686520736f6c7574696f6e20776173206e6f7420626574746572207468616e20616e79206f6620746865206578697374696e67206f6e65732e585369676e656443616e6e6f745061794465706f73697400040494546865206f726967696e206661696c656420746f2070617920746865206465706f7369742e505369676e6564496e76616c69645769746e657373000504a05769746e657373206461746120746f20646973706174636861626c6520697320696e76616c69642e4c5369676e6564546f6f4d756368576569676874000604b8546865207369676e6564207375626d697373696f6e20636f6e73756d657320746f6f206d756368207765696768743c4f637743616c6c57726f6e67457261000704984f4357207375626d697474656420736f6c7574696f6e20666f722077726f6e6720726f756e645c4d697373696e67536e617073686f744d65746164617461000804a8536e617073686f74206d657461646174612073686f756c6420657869737420627574206469646e27742e58496e76616c69645375626d697373696f6e496e646578000904d06053656c663a3a696e736572745f7375626d697373696f6e602072657475726e656420616e20696e76616c696420696e6465782e3843616c6c4e6f74416c6c6f776564000a04985468652063616c6c206973206e6f7420616c6c6f776564206174207468697320706f696e742e040d014572726f72206f66207468652070616c6c657420746861742063616e2062652072657475726e656420696e20726573706f6e736520746f20646973706174636865732ee9070c6c706f6c6b61646f745f72756e74696d655f70617261636861696e7334636f6e66696775726174696f6e44486f7374436f6e66696775726174696f6e042c426c6f636b4e756d626572011000a001346d61785f636f64655f73697a6510010c7533320001486d61785f686561645f646174615f73697a6510010c7533320001586d61785f7570776172645f71756575655f636f756e7410010c7533320001546d61785f7570776172645f71756575655f73697a6510010c75333200015c6d61785f7570776172645f6d6573736167655f73697a6510010c7533320001906d61785f7570776172645f6d6573736167655f6e756d5f7065725f63616e64696461746510010c75333200018868726d705f6d61785f6d6573736167655f6e756d5f7065725f63616e64696461746510010c75333200017076616c69646174696f6e5f757067726164655f6672657175656e637910012c426c6f636b4e756d62657200016076616c69646174696f6e5f757067726164655f64656c617910012c426c6f636b4e756d6265720001306d61785f706f765f73697a6510010c7533320001646d61785f646f776e776172645f6d6573736167655f73697a6510010c753332000160756d705f736572766963655f746f74616c5f77656967687420011857656967687400019068726d705f6d61785f70617261636861696e5f6f7574626f756e645f6368616e6e656c7310010c75333200019468726d705f6d61785f706172617468726561645f6f7574626f756e645f6368616e6e656c7310010c75333200014c68726d705f73656e6465725f6465706f73697418011c42616c616e636500015868726d705f726563697069656e745f6465706f73697418011c42616c616e636500016468726d705f6368616e6e656c5f6d61785f636170616369747910010c75333200016c68726d705f6368616e6e656c5f6d61785f746f74616c5f73697a6510010c75333200018c68726d705f6d61785f70617261636861696e5f696e626f756e645f6368616e6e656c7310010c75333200019068726d705f6d61785f706172617468726561645f696e626f756e645f6368616e6e656c7310010c75333200017468726d705f6368616e6e656c5f6d61785f6d6573736167655f73697a6510010c753332000154636f64655f726574656e74696f6e5f706572696f6410012c426c6f636b4e756d626572000140706172617468726561645f636f72657310010c753332000148706172617468726561645f7265747269657310010c75333200016067726f75705f726f746174696f6e5f6672657175656e637910012c426c6f636b4e756d626572000164636861696e5f617661696c6162696c6974795f706572696f6410012c426c6f636b4e756d6265720001687468726561645f617661696c6162696c6974795f706572696f6410012c426c6f636b4e756d6265720001507363686564756c696e675f6c6f6f6b616865616410010c75333200015c6d61785f76616c696461746f72735f7065725f636f72657902012c4f7074696f6e3c7533323e0001386d61785f76616c696461746f72737902012c4f7074696f6e3c7533323e000138646973707574655f706572696f6410013053657373696f6e496e6465780001a4646973707574655f706f73745f636f6e636c7573696f6e5f616363657074616e63655f706572696f6410012c426c6f636b4e756d626572000158646973707574655f6d61785f7370616d5f736c6f747310010c753332000194646973707574655f636f6e636c7573696f6e5f62795f74696d655f6f75745f706572696f6410012c426c6f636b4e756d6265720001346e6f5f73686f775f736c6f747310010c7533320001406e5f64656c61795f7472616e6368657310010c7533320001687a65726f74685f64656c61795f7472616e6368655f776964746810010c7533320001406e65656465645f617070726f76616c7310010c75333200016072656c61795f7672665f6d6f64756c6f5f73616d706c657310010c753332000164756d705f6d61785f696e646976696475616c5f7765696768742001185765696768740000ed07106c706f6c6b61646f745f72756e74696d655f70617261636861696e7334636f6e66696775726174696f6e1870616c6c6574144572726f720404540001043c496e76616c69644e657756616c7565000004dc546865206e65772076616c756520666f72206120636f6e66696775726174696f6e20706172616d6574657220697320696e76616c69642e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909f107000002010500f507000002890200f9070c6c706f6c6b61646f745f72756e74696d655f70617261636861696e7324696e636c7573696f6e68417661696c6162696c6974794269746669656c645265636f726404044e0110000801206269746669656c64f5040150417661696c6162696c6974794269746669656c640001307375626d69747465645f61741001044e0000fd070c6c706f6c6b61646f745f72756e74696d655f70617261636861696e7324696e636c7573696f6e7043616e64696461746550656e64696e67417661696c6162696c6974790804480124044e011000200110636f72656d010124436f7265496e646578000110686173683905013443616e6469646174654861736800012864657363726970746f724d01015843616e64696461746544657363726970746f723c483e000148617661696c6162696c6974795f766f746573f90401604269745665633c4269744f726465724c7362302c2075383e00011c6261636b657273f90401604269745665633c4269744f726465724c7362302c2075383e00014c72656c61795f706172656e745f6e756d6265721001044e0001406261636b65645f696e5f6e756d6265721001044e0001346261636b696e675f67726f75707101012847726f7570496e64657800000108106c706f6c6b61646f745f72756e74696d655f70617261636861696e7324696e636c7573696f6e1870616c6c6574144572726f720404540001644457726f6e674269746669656c6453697a65000004a8417661696c6162696c697479206269746669656c642068617320756e65787065637465642073697a652e704269746669656c644475706c69636174654f72556e6f7264657265640001044d014d756c7469706c65206269746669656c6473207375626d69747465642062792073616d652076616c696461746f72206f722076616c696461746f7273206f7574206f66206f7264657220627920696e6465782e6456616c696461746f72496e6465784f75744f66426f756e64730002047856616c696461746f7220696e646578206f7574206f6620626f756e64732e60496e76616c69644269746669656c645369676e617475726500030444496e76616c6964207369676e617475726550556e7363686564756c656443616e646964617465000404ac43616e646964617465207375626d6974746564206275742070617261206e6f74207363686564756c65642e8043616e6469646174655363686564756c65644265666f72655061726146726565000504310143616e646964617465207363686564756c656420646573706974652070656e64696e672063616e64696461746520616c7265616479206578697374696e6720666f722074686520706172612e3457726f6e67436f6c6c61746f72000604ac43616e64696461746520696e636c756465642077697468207468652077726f6e6720636f6c6c61746f722e4c5363686564756c65644f75744f664f72646572000704745363686564756c656420636f726573206f7574206f66206f726465722e404865616444617461546f6f4c61726765000804a448656164206461746120657863656564732074686520636f6e66696775726564206d6178696d756d2e505072656d6174757265436f64655570677261646500090464436f64652075706772616465207072656d61747572656c792e3c4e6577436f6465546f6f4c61726765000a04604f757470757420636f646520697320746f6f206c617267656c43616e6469646174654e6f74496e506172656e74436f6e74657874000b048043616e646964617465206e6f7420696e20706172656e7420636f6e746578742e5c556e6f63637570696564426974496e4269746669656c64000c042101546865206269746669656c6420636f6e7461696e732061206269742072656c6174696e6720746f20616e20756e61737369676e656420617661696c6162696c69747920636f72652e44496e76616c696447726f7570496e646578000d049c496e76616c69642067726f757020696e64657820696e20636f72652061737369676e6d656e742e4c496e73756666696369656e744261636b696e67000e0490496e73756666696369656e7420286e6f6e2d6d616a6f7269747929206261636b696e672e38496e76616c69644261636b696e67000f04e4496e76616c69642028626164207369676e61747572652c20756e6b6e6f776e2076616c696461746f722c206574632e29206261636b696e672e444e6f74436f6c6c61746f725369676e656400100468436f6c6c61746f7220646964206e6f74207369676e20506f562e6856616c69646174696f6e44617461486173684d69736d61746368001104c45468652076616c69646174696f6e2064617461206861736820646f6573206e6f74206d617463682065787065637465642e34496e7465726e616c4572726f720012040501496e7465726e616c206572726f72206f6e6c792072657475726e6564207768656e20636f6d70696c6564207769746820646562756720617373657274696f6e732e80496e636f7272656374446f776e776172644d65737361676548616e646c696e67001304d854686520646f776e77617264206d657373616765207175657565206973206e6f742070726f63657373656420636f72726563746c792e54496e76616c69645570776172644d657373616765730014041d014174206c65617374206f6e6520757077617264206d6573736167652073656e7420646f6573206e6f7420706173732074686520616363657074616e63652063726974657269612e6048726d7057617465726d61726b4d697368616e646c696e6700150411015468652063616e646964617465206469646e277420666f6c6c6f77207468652072756c6573206f662048524d502077617465726d61726b20616476616e63656d656e742e4c496e76616c69644f7574626f756e6448726d70001604d45468652048524d50206d657373616765732073656e74206279207468652063616e646964617465206973206e6f742076616c69642e64496e76616c696456616c69646174696f6e436f646548617368001704dc5468652076616c69646174696f6e20636f64652068617368206f66207468652063616e646964617465206973206e6f742076616c69642e4050617261486561644d69736d6174636800180899015468652060706172615f6865616460206861736820696e207468652063616e6469646174652064657363726970746f7220646f65736e2774206d61746368207468652068617368206f66207468652061637475616c2070617261206865616420696e2074686530636f6d6d69746d656e74732e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a0909090508106c706f6c6b61646f745f72756e74696d655f70617261636861696e733870617261735f696e686572656e741870616c6c6574144572726f7204045400010c64546f6f4d616e79496e636c7573696f6e496e686572656e7473000004cc496e636c7573696f6e20696e686572656e742063616c6c6564206d6f7265207468616e206f6e63652070657220626c6f636b2e4c496e76616c6964506172656e7448656164657200010855015468652068617368206f6620746865207375626d697474656420706172656e742068656164657220646f65736e277420636f72726573706f6e6420746f2074686520736176656420626c6f636b2068617368206f662c74686520706172656e742e6443616e646964617465436f6e636c75646564496e76616c6964000204b844697370757465642063616e64696461746520746861742077617320636f6e636c7564656420696e76616c69642e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a0909090908000002f107000d080c6c706f6c6b61646f745f72756e74696d655f70617261636861696e73247363686564756c65725050617261746872656164436c61696d517565756500000801147175657565110801545665633c517565756564506172617468726561643e0001406e6578745f636f72655f6f666673657410010c7533320000110800000215080015080c6c706f6c6b61646f745f72756e74696d655f70617261636861696e73247363686564756c657240517565756564506172617468726561640000080114636c61696d1908013c50617261746872656164456e74727900012c636f72655f6f666673657410010c753332000019080c4c706f6c6b61646f745f7072696d6974697665730876313c50617261746872656164456e7472790000080114636c61696d1d08013c50617261746872656164436c61696d00011c7265747269657310010c75333200001d080c4c706f6c6b61646f745f7072696d6974697665730876313c50617261746872656164436c61696d00000800510101084964000055010128436f6c6c61746f72496400002108000002250800250804184f7074696f6e0404540129080108104e6f6e6500000010536f6d6504002908000001000029080c4c706f6c6b61646f745f7072696d69746976657308763130436f72654f63637570696564000108285061726174687265616404001908013c50617261746872656164456e7472790000002450617261636861696e000100002d08000002510100310800000235080035080c6c706f6c6b61646f745f72756e74696d655f70617261636861696e73247363686564756c657238436f726541737369676e6d656e740000100110636f72656d010124436f7265496e64657800011c706172615f6964510101185061726149640001106b696e643908013841737369676e6d656e744b696e6400012467726f75705f6964787101012847726f7570496e646578000039080c6c706f6c6b61646f745f72756e74696d655f70617261636861696e73247363686564756c65723841737369676e6d656e744b696e640001082450617261636861696e0000002850617261746872656164080055010128436f6c6c61746f724964000010010c753332000100003d080c6c706f6c6b61646f745f72756e74696d655f70617261636861696e7314706172617334506172614c6966656379636c6500011c284f6e626f617264696e6700000028506172617468726561640001002450617261636861696e0002004c557067726164696e675061726174687265616400030050446f776e67726164696e6750617261636861696e000400544f6666626f617264696e6750617261746872656164000500504f6666626f617264696e6750617261636861696e000600004108000004085101100045080c6c706f6c6b61646f745f72756e74696d655f70617261636861696e73147061726173405061726150617374436f64654d65746104044e011000080134757067726164655f74696d6573490801605665633c5265706c6163656d656e7454696d65733c4e3e3e00012c6c6173745f7072756e6564790201244f7074696f6e3c4e3e000049080000024d08004d080c6c706f6c6b61646f745f72756e74696d655f70617261636861696e73147061726173405265706c6163656d656e7454696d657304044e01100008012c65787065637465645f61741001044e0001306163746976617465645f61741001044e0000510800000241080055080c4c706f6c6b61646f745f7072696d6974697665730876313855706772616465476f41686561640001081441626f72740000001c476f41686561640001000059080c4c706f6c6b61646f745f7072696d69746976657308763148557067726164655265737472696374696f6e0001041c50726573656e74000000005d080c6c706f6c6b61646f745f72756e74696d655f70617261636861696e731470617261733c5061726147656e657369734172677300000c013067656e657369735f6865616469010120486561644461746100013c76616c69646174696f6e5f636f64652505013856616c69646174696f6e436f646500012470617261636861696ee80110626f6f6c00006108106c706f6c6b61646f745f72756e74696d655f70617261636861696e731470617261731870616c6c6574144572726f72040454000114344e6f74526567697374657265640000049450617261206973206e6f74207265676973746572656420696e206f75722073797374656d2e3443616e6e6f744f6e626f6172640001041501506172612063616e6e6f74206265206f6e626f6172646564206265636175736520697420697320616c726561647920747261636b6564206279206f75722073797374656d2e3843616e6e6f744f6666626f6172640002049c506172612063616e6e6f74206265206f6666626f617264656420617420746869732074696d652e3443616e6e6f74557067726164650003049c506172612063616e6e6f7420626520757067726164656420746f20612070617261636861696e2e3c43616e6e6f74446f776e6772616465000404a8506172612063616e6e6f7420626520646f776e67726164656420746f206120706172617468726561642e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909650800000269080069080c6c706f6c6b61646f745f72756e74696d655f70617261636861696e732c696e697469616c697a657254427566666572656453657373696f6e4368616e676500000c012876616c696461746f7273f50701405665633c56616c696461746f7249643e000118717565756564f50701405665633c56616c696461746f7249643e00013473657373696f6e5f696e64657810013053657373696f6e496e64657800006d0800000271080071080860706f6c6b61646f745f636f72655f7072696d69746976657358496e626f756e64446f776e776172644d657373616765042c426c6f636b4e756d62657201100008011c73656e745f617410012c426c6f636b4e756d62657200010c6d736728013c446f776e776172644d6573736167650000750800000408510128007908106c706f6c6b61646f745f72756e74696d655f70617261636861696e730c756d701870616c6c6574144572726f720404540001084c556e6b6e6f776e4d657373616765496e6465780000048c546865206d65737361676520696e64657820676976656e20697320756e6b6e6f776e2e3c5765696768744f7665724c696d6974000104310154686520616d6f756e74206f662077656967687420676976656e20697320706f737369626c79206e6f7420656e6f75676820666f7220657865637574696e6720746865206d6573736167652e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a0909097d080c6c706f6c6b61646f745f72756e74696d655f70617261636861696e731068726d705848726d704f70656e4368616e6e656c526571756573740000180124636f6e6669726d6564e80110626f6f6c0001105f61676510013053657373696f6e496e64657800013873656e6465725f6465706f73697418011c42616c616e63650001406d61785f6d6573736167655f73697a6510010c7533320001306d61785f636170616369747910010c7533320001386d61785f746f74616c5f73697a6510010c7533320000810800000289010085080c6c706f6c6b61646f745f72756e74696d655f70617261636861696e731068726d702c48726d704368616e6e656c00002001306d61785f636170616369747910010c7533320001386d61785f746f74616c5f73697a6510010c7533320001406d61785f6d6573736167655f73697a6510010c7533320001246d73675f636f756e7410010c753332000128746f74616c5f73697a6510010c7533320001206d71635f68656164890801304f7074696f6e3c486173683e00013873656e6465725f6465706f73697418011c42616c616e6365000144726563697069656e745f6465706f73697418011c42616c616e63650000890804184f7074696f6e04045401240108104e6f6e6500000010536f6d6504002400000100008d0800000291080091080860706f6c6b61646f745f636f72655f7072696d69746976657348496e626f756e6448726d704d657373616765042c426c6f636b4e756d62657201100008011c73656e745f617410012c426c6f636b4e756d6265720001106461746128015073705f7374643a3a7665633a3a5665633c75383e00009508000002990800990800000408102d08009d08106c706f6c6b61646f745f72756e74696d655f70617261636861696e731068726d701870616c6c6574144572726f72040454000148544f70656e48726d704368616e6e656c546f53656c66000004c45468652073656e64657220747269656420746f206f70656e2061206368616e6e656c20746f207468656d73656c7665732e7c4f70656e48726d704368616e6e656c496e76616c6964526563697069656e740001048854686520726563697069656e74206973206e6f7420612076616c696420706172612e6c4f70656e48726d704368616e6e656c5a65726f43617061636974790002047c54686520726571756573746564206361706163697479206973207a65726f2e8c4f70656e48726d704368616e6e656c4361706163697479457863656564734c696d6974000304c05468652072657175657374656420636170616369747920657863656564732074686520676c6f62616c206c696d69742e784f70656e48726d704368616e6e656c5a65726f4d65737361676553697a65000404a054686520726571756573746564206d6178696d756d206d6573736167652073697a6520697320302e984f70656e48726d704368616e6e656c4d65737361676553697a65457863656564734c696d69740005042901546865206f70656e20726571756573742072657175657374656420746865206d6573736167652073697a65207468617420657863656564732074686520676c6f62616c206c696d69742e704f70656e48726d704368616e6e656c416c726561647945786973747300060468546865206368616e6e656c20616c7265616479206578697374737c4f70656e48726d704368616e6e656c416c7265616479526571756573746564000704d0546865726520697320616c72656164792061207265717565737420746f206f70656e207468652073616d65206368616e6e656c2e704f70656e48726d704368616e6e656c4c696d697445786365656465640008041d015468652073656e64657220616c72656164792068617320746865206d6178696d756d206e756d626572206f6620616c6c6f776564206f7574626f756e64206368616e6e656c732e7041636365707448726d704368616e6e656c446f65736e744578697374000904e0546865206368616e6e656c2066726f6d207468652073656e64657220746f20746865206f726967696e20646f65736e27742065786973742e8441636365707448726d704368616e6e656c416c7265616479436f6e6669726d6564000a0484546865206368616e6e656c20697320616c726561647920636f6e6669726d65642e7841636365707448726d704368616e6e656c4c696d69744578636565646564000b04250154686520726563697069656e7420616c72656164792068617320746865206d6178696d756d206e756d626572206f6620616c6c6f77656420696e626f756e64206368616e6e656c732e70436c6f736548726d704368616e6e656c556e617574686f72697a6564000c045501546865206f726967696e20747269657320746f20636c6f73652061206368616e6e656c207768657265206974206973206e656974686572207468652073656e646572206e6f722074686520726563697069656e742e6c436c6f736548726d704368616e6e656c446f65736e744578697374000d049c546865206368616e6e656c20746f20626520636c6f73656420646f65736e27742065786973742e7c436c6f736548726d704368616e6e656c416c7265616479556e646572776179000e04bc546865206368616e6e656c20636c6f7365207265717565737420697320616c7265616479207265717565737465642e8443616e63656c48726d704f70656e4368616e6e656c556e617574686f72697a6564000f045d0143616e63656c696e6720697320726571756573746564206279206e656974686572207468652073656e646572206e6f7220726563697069656e74206f6620746865206f70656e206368616e6e656c20726571756573742e684f70656e48726d704368616e6e656c446f65736e7445786973740010047c546865206f70656e207265717565737420646f65736e27742065786973742e7c4f70656e48726d704368616e6e656c416c7265616479436f6e6669726d65640011042d0143616e6e6f742063616e63656c20616e2048524d50206f70656e206368616e6e656c2072657175657374206265636175736520697420697320616c726561647920636f6e6669726d65642e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909a1080000028d0200a5080c4c706f6c6b61646f745f7072696d6974697665730876312c53657373696f6e496e666f000028012876616c696461746f7273f50701405665633c56616c696461746f7249643e000138646973636f766572795f6b657973a90801645665633c417574686f72697479446973636f7665727949643e00013c61737369676e6d656e745f6b657973a10801445665633c41737369676e6d656e7449643e00014076616c696461746f725f67726f757073090801605665633c5665633c56616c696461746f72496e6465783e3e00011c6e5f636f72657310010c7533320001687a65726f74685f64656c61795f7472616e6368655f776964746810010c75333200016072656c61795f7672665f6d6f64756c6f5f73616d706c657310010c7533320001406e5f64656c61795f7472616e6368657310010c7533320001346e6f5f73686f775f736c6f747310010c7533320001406e65656465645f617070726f76616c7310010c7533320000a908000002910200ad080c5c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e3c70617261735f7265676973747261722050617261496e666f081c4163636f756e7401001c42616c616e63650118000c011c6d616e6167657200011c4163636f756e7400011c6465706f73697418011c42616c616e63650001186c6f636b6564e80110626f6f6c0000b108105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e3c70617261735f7265676973747261721870616c6c6574144572726f72040454000130344e6f745265676973746572656400000464546865204944206973206e6f7420726567697374657265642e44416c7265616479526567697374657265640001047454686520494420697320616c726561647920726567697374657265642e204e6f744f776e65720002049c5468652063616c6c6572206973206e6f7420746865206f776e6572206f6620746869732049642e30436f6465546f6f4c617267650003045c496e76616c6964207061726120636f64652073697a652e404865616444617461546f6f4c6172676500040470496e76616c69642070617261206865616420646174612073697a652e304e6f7450617261636861696e0005046050617261206973206e6f7420612050617261636861696e2e344e6f74506172617468726561640006046450617261206973206e6f74206120506172617468726561642e4043616e6e6f74446572656769737465720007045843616e6e6f74206465726567697374657220706172613c43616e6e6f74446f776e6772616465000804d043616e6e6f74207363686564756c6520646f776e6772616465206f662070617261636861696e20746f20706172617468726561643443616e6e6f7455706772616465000904c843616e6e6f74207363686564756c652075706772616465206f66207061726174687265616420746f2070617261636861696e28506172614c6f636b6564000a04790150617261206973206c6f636b65642066726f6d206d616e6970756c6174696f6e20627920746865206d616e616765722e204d757374207573652070617261636861696e206f722072656c617920636861696e20676f7665726e616e63652e2c4e6f745265736572766564000b04d054686520494420676976656e20666f7220726567697374726174696f6e20686173206e6f74206265656e2072657365727665642e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909b508000002b90800b90804184f7074696f6e04045401f80108104e6f6e6500000010536f6d650400f80000010000bd08105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e14736c6f74731870616c6c6574144572726f7204045400010844506172614e6f744f6e626f617264696e670000048c5468652070617261636861696e204944206973206e6f74206f6e626f617264696e672e284c656173654572726f720001048854686572652077617320616e206572726f72207769746820746865206c656173652e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909c1080000040800510100c50800000324000000c90800c90804184f7074696f6e04045401cd080108104e6f6e6500000010536f6d650400cd080000010000cd080000040c0051011800d108105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e2061756374696f6e731870616c6c6574144572726f7204045400011c4441756374696f6e496e50726f677265737300000490546869732061756374696f6e20697320616c726561647920696e2070726f67726573732e444c65617365506572696f64496e5061737400010480546865206c6561736520706572696f6420697320696e2074686520706173742e44506172614e6f74526567697374657265640002045850617261206973206e6f742072656769737465726564444e6f7443757272656e7441756374696f6e000304584e6f7420612063757272656e742061756374696f6e2e284e6f7441756374696f6e0004043c4e6f7420616e2061756374696f6e2e3041756374696f6e456e6465640005046841756374696f6e2068617320616c726561647920656e6465642e40416c72656164794c65617365644f7574000604d8546865207061726120697320616c7265616479206c6561736564206f757420666f722070617274206f6620746869732072616e67652e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909d5080c5c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e2463726f77646c6f616e2046756e64496e666f10244163636f756e74496401001c42616c616e636501182c426c6f636b4e756d62657201102c4c65617365506572696f640110002801246465706f7369746f720001244163636f756e74496400012076657269666965727905014c4f7074696f6e3c4d756c74695369676e65723e00011c6465706f73697418011c42616c616e636500011872616973656418011c42616c616e636500010c656e6410012c426c6f636b4e756d62657200010c63617018011c42616c616e63650001446c6173745f636f6e747269627574696f6ed90801744c617374436f6e747269627574696f6e3c426c6f636b4e756d6265723e00013066697273745f706572696f6410012c4c65617365506572696f6400012c6c6173745f706572696f6410012c4c65617365506572696f64000128747269655f696e64657810012454726965496e6465780000d9080c5c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e2463726f77646c6f616e404c617374436f6e747269627574696f6e042c426c6f636b4e756d6265720110010c144e6576657200000024507265456e64696e67040010010c75333200010018456e64696e67040010012c426c6f636b4e756d62657200020000dd08105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e2463726f77646c6f616e1870616c6c6574144572726f7204045400015c444669727374506572696f64496e50617374000004f45468652063757272656e74206c6561736520706572696f64206973206d6f7265207468616e20746865206669727374206c6561736520706572696f642e644669727374506572696f64546f6f466172496e4675747572650001041101546865206669727374206c6561736520706572696f64206e6565647320746f206174206c65617374206265206c657373207468616e203320606d61785f76616c7565602e6c4c617374506572696f644265666f72654669727374506572696f64000204e84c617374206c6561736520706572696f64206d7573742062652067726561746572207468616e206669727374206c6561736520706572696f642e604c617374506572696f64546f6f466172496e4675747572650003042d01546865206c617374206c6561736520706572696f642063616e6e6f74206265206d6f7265207468616e203320706572696f64732061667465722074686520666972737420706572696f642e3c43616e6e6f74456e64496e5061737400040445015468652063616d706169676e20656e6473206265666f7265207468652063757272656e7420626c6f636b206e756d6265722e2054686520656e64206d75737420626520696e20746865206675747572652e44456e64546f6f466172496e467574757265000504c054686520656e64206461746520666f7220746869732063726f77646c6f616e206973206e6f742073656e7369626c652e204f766572666c6f770006045854686572652077617320616e206f766572666c6f772e50436f6e747269627574696f6e546f6f536d616c6c000704e854686520636f6e747269627574696f6e207761732062656c6f7720746865206d696e696d756d2c20604d696e436f6e747269627574696f6e602e34496e76616c69645061726149640008044c496e76616c69642066756e6420696e6465782e2c436170457863656564656400090490436f6e747269627574696f6e7320657863656564206d6178696d756d20616d6f756e742e58436f6e747269627574696f6e506572696f644f766572000a04a854686520636f6e747269627574696f6e20706572696f642068617320616c726561647920656e6465642e34496e76616c69644f726967696e000b048c546865206f726967696e206f6620746869732063616c6c20697320696e76616c69642e304e6f7450617261636861696e000c04c8546869732063726f77646c6f616e20646f6573206e6f7420636f72726573706f6e6420746f20612070617261636861696e2e2c4c65617365416374697665000d041501546869732070617261636861696e206c65617365206973207374696c6c2061637469766520616e64207265746972656d656e742063616e6e6f742079657420626567696e2e404269644f724c65617365416374697665000e043101546869732070617261636861696e277320626964206f72206c65617365206973207374696c6c2061637469766520616e642077697468647261772063616e6e6f742079657420626567696e2e3046756e644e6f74456e646564000f04805468652063726f77646c6f616e20686173206e6f742079657420656e6465642e3c4e6f436f6e747269627574696f6e73001004d0546865726520617265206e6f20636f6e747269627574696f6e732073746f72656420696e20746869732063726f77646c6f616e2e484e6f745265616479546f446973736f6c766500110475015468652063726f77646c6f616e206973206e6f7420726561647920746f20646973736f6c76652e20506f74656e7469616c6c79207374696c6c20686173206120736c6f74206f7220696e207265746972656d656e7420706572696f642e40496e76616c69645369676e617475726500120448496e76616c6964207369676e61747572652e304d656d6f546f6f4c617267650013047c5468652070726f7669646564206d656d6f20697320746f6f206c617267652e44416c7265616479496e4e65775261697365001404845468652066756e6420697320616c726561647920696e20604e65775261697365604856726644656c6179496e50726f6772657373001504b44e6f20636f6e747269627574696f6e7320616c6c6f77656420647572696e6720746865205652462064656c6179344e6f4c65617365506572696f640016042d0141206c6561736520706572696f6420686173206e6f742073746172746564207965742c2064756520746f20616e206f666673657420696e20746865207374617274696e6720626c6f636b2e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909e108102873705f72756e74696d651c67656e657269634c756e636865636b65645f65787472696e73696348556e636865636b656445787472696e736963101c41646472657373014d021043616c6c010902245369676e6174757265018d0514457874726101e50800040028000000e50800000420e908ed08f108f508fd0801090509090900e90810306672616d655f73797374656d28657874656e73696f6e7348636865636b5f737065635f76657273696f6e40436865636b5370656356657273696f6e04045400000000ed0810306672616d655f73797374656d28657874656e73696f6e7340636865636b5f74785f76657273696f6e38436865636b547856657273696f6e04045400000000f10810306672616d655f73797374656d28657874656e73696f6e7334636865636b5f67656e6573697330436865636b47656e6573697304045400000000f50810306672616d655f73797374656d28657874656e73696f6e733c636865636b5f6d6f7274616c69747938436865636b4d6f7274616c69747904045400000400f908010c4572610000f908102873705f72756e74696d651c67656e657269630c6572610c4572610001010420496d6d6f7274616c0000001c4d6f7274616c31040008000001001c4d6f7274616c32040008000002001c4d6f7274616c33040008000003001c4d6f7274616c34040008000004001c4d6f7274616c35040008000005001c4d6f7274616c36040008000006001c4d6f7274616c37040008000007001c4d6f7274616c38040008000008001c4d6f7274616c3904000800000900204d6f7274616c313004000800000a00204d6f7274616c313104000800000b00204d6f7274616c313204000800000c00204d6f7274616c313304000800000d00204d6f7274616c313404000800000e00204d6f7274616c313504000800000f00204d6f7274616c313604000800001000204d6f7274616c313704000800001100204d6f7274616c313804000800001200204d6f7274616c313904000800001300204d6f7274616c323004000800001400204d6f7274616c323104000800001500204d6f7274616c323204000800001600204d6f7274616c323304000800001700204d6f7274616c323404000800001800204d6f7274616c323504000800001900204d6f7274616c323604000800001a00204d6f7274616c323704000800001b00204d6f7274616c323804000800001c00204d6f7274616c323904000800001d00204d6f7274616c333004000800001e00204d6f7274616c333104000800001f00204d6f7274616c333204000800002000204d6f7274616c333304000800002100204d6f7274616c333404000800002200204d6f7274616c333504000800002300204d6f7274616c333604000800002400204d6f7274616c333704000800002500204d6f7274616c333804000800002600204d6f7274616c333904000800002700204d6f7274616c343004000800002800204d6f7274616c343104000800002900204d6f7274616c343204000800002a00204d6f7274616c343304000800002b00204d6f7274616c343404000800002c00204d6f7274616c343504000800002d00204d6f7274616c343604000800002e00204d6f7274616c343704000800002f00204d6f7274616c343804000800003000204d6f7274616c343904000800003100204d6f7274616c353004000800003200204d6f7274616c353104000800003300204d6f7274616c353204000800003400204d6f7274616c353304000800003500204d6f7274616c353404000800003600204d6f7274616c353504000800003700204d6f7274616c353604000800003800204d6f7274616c353704000800003900204d6f7274616c353804000800003a00204d6f7274616c353904000800003b00204d6f7274616c363004000800003c00204d6f7274616c363104000800003d00204d6f7274616c363204000800003e00204d6f7274616c363304000800003f00204d6f7274616c363404000800004000204d6f7274616c363504000800004100204d6f7274616c363604000800004200204d6f7274616c363704000800004300204d6f7274616c363804000800004400204d6f7274616c363904000800004500204d6f7274616c373004000800004600204d6f7274616c373104000800004700204d6f7274616c373204000800004800204d6f7274616c373304000800004900204d6f7274616c373404000800004a00204d6f7274616c373504000800004b00204d6f7274616c373604000800004c00204d6f7274616c373704000800004d00204d6f7274616c373804000800004e00204d6f7274616c373904000800004f00204d6f7274616c383004000800005000204d6f7274616c383104000800005100204d6f7274616c383204000800005200204d6f7274616c383304000800005300204d6f7274616c383404000800005400204d6f7274616c383504000800005500204d6f7274616c383604000800005600204d6f7274616c383704000800005700204d6f7274616c383804000800005800204d6f7274616c383904000800005900204d6f7274616c393004000800005a00204d6f7274616c393104000800005b00204d6f7274616c393204000800005c00204d6f7274616c393304000800005d00204d6f7274616c393404000800005e00204d6f7274616c393504000800005f00204d6f7274616c393604000800006000204d6f7274616c393704000800006100204d6f7274616c393804000800006200204d6f7274616c393904000800006300244d6f7274616c31303004000800006400244d6f7274616c31303104000800006500244d6f7274616c31303204000800006600244d6f7274616c31303304000800006700244d6f7274616c31303404000800006800244d6f7274616c31303504000800006900244d6f7274616c31303604000800006a00244d6f7274616c31303704000800006b00244d6f7274616c31303804000800006c00244d6f7274616c31303904000800006d00244d6f7274616c31313004000800006e00244d6f7274616c31313104000800006f00244d6f7274616c31313204000800007000244d6f7274616c31313304000800007100244d6f7274616c31313404000800007200244d6f7274616c31313504000800007300244d6f7274616c31313604000800007400244d6f7274616c31313704000800007500244d6f7274616c31313804000800007600244d6f7274616c31313904000800007700244d6f7274616c31323004000800007800244d6f7274616c31323104000800007900244d6f7274616c31323204000800007a00244d6f7274616c31323304000800007b00244d6f7274616c31323404000800007c00244d6f7274616c31323504000800007d00244d6f7274616c31323604000800007e00244d6f7274616c31323704000800007f00244d6f7274616c31323804000800008000244d6f7274616c31323904000800008100244d6f7274616c31333004000800008200244d6f7274616c31333104000800008300244d6f7274616c31333204000800008400244d6f7274616c31333304000800008500244d6f7274616c31333404000800008600244d6f7274616c31333504000800008700244d6f7274616c31333604000800008800244d6f7274616c31333704000800008900244d6f7274616c31333804000800008a00244d6f7274616c31333904000800008b00244d6f7274616c31343004000800008c00244d6f7274616c31343104000800008d00244d6f7274616c31343204000800008e00244d6f7274616c31343304000800008f00244d6f7274616c31343404000800009000244d6f7274616c31343504000800009100244d6f7274616c31343604000800009200244d6f7274616c31343704000800009300244d6f7274616c31343804000800009400244d6f7274616c31343904000800009500244d6f7274616c31353004000800009600244d6f7274616c31353104000800009700244d6f7274616c31353204000800009800244d6f7274616c31353304000800009900244d6f7274616c31353404000800009a00244d6f7274616c31353504000800009b00244d6f7274616c31353604000800009c00244d6f7274616c31353704000800009d00244d6f7274616c31353804000800009e00244d6f7274616c31353904000800009f00244d6f7274616c3136300400080000a000244d6f7274616c3136310400080000a100244d6f7274616c3136320400080000a200244d6f7274616c3136330400080000a300244d6f7274616c3136340400080000a400244d6f7274616c3136350400080000a500244d6f7274616c3136360400080000a600244d6f7274616c3136370400080000a700244d6f7274616c3136380400080000a800244d6f7274616c3136390400080000a900244d6f7274616c3137300400080000aa00244d6f7274616c3137310400080000ab00244d6f7274616c3137320400080000ac00244d6f7274616c3137330400080000ad00244d6f7274616c3137340400080000ae00244d6f7274616c3137350400080000af00244d6f7274616c3137360400080000b000244d6f7274616c3137370400080000b100244d6f7274616c3137380400080000b200244d6f7274616c3137390400080000b300244d6f7274616c3138300400080000b400244d6f7274616c3138310400080000b500244d6f7274616c3138320400080000b600244d6f7274616c3138330400080000b700244d6f7274616c3138340400080000b800244d6f7274616c3138350400080000b900244d6f7274616c3138360400080000ba00244d6f7274616c3138370400080000bb00244d6f7274616c3138380400080000bc00244d6f7274616c3138390400080000bd00244d6f7274616c3139300400080000be00244d6f7274616c3139310400080000bf00244d6f7274616c3139320400080000c000244d6f7274616c3139330400080000c100244d6f7274616c3139340400080000c200244d6f7274616c3139350400080000c300244d6f7274616c3139360400080000c400244d6f7274616c3139370400080000c500244d6f7274616c3139380400080000c600244d6f7274616c3139390400080000c700244d6f7274616c3230300400080000c800244d6f7274616c3230310400080000c900244d6f7274616c3230320400080000ca00244d6f7274616c3230330400080000cb00244d6f7274616c3230340400080000cc00244d6f7274616c3230350400080000cd00244d6f7274616c3230360400080000ce00244d6f7274616c3230370400080000cf00244d6f7274616c3230380400080000d000244d6f7274616c3230390400080000d100244d6f7274616c3231300400080000d200244d6f7274616c3231310400080000d300244d6f7274616c3231320400080000d400244d6f7274616c3231330400080000d500244d6f7274616c3231340400080000d600244d6f7274616c3231350400080000d700244d6f7274616c3231360400080000d800244d6f7274616c3231370400080000d900244d6f7274616c3231380400080000da00244d6f7274616c3231390400080000db00244d6f7274616c3232300400080000dc00244d6f7274616c3232310400080000dd00244d6f7274616c3232320400080000de00244d6f7274616c3232330400080000df00244d6f7274616c3232340400080000e000244d6f7274616c3232350400080000e100244d6f7274616c3232360400080000e200244d6f7274616c3232370400080000e300244d6f7274616c3232380400080000e400244d6f7274616c3232390400080000e500244d6f7274616c3233300400080000e600244d6f7274616c3233310400080000e700244d6f7274616c3233320400080000e800244d6f7274616c3233330400080000e900244d6f7274616c3233340400080000ea00244d6f7274616c3233350400080000eb00244d6f7274616c3233360400080000ec00244d6f7274616c3233370400080000ed00244d6f7274616c3233380400080000ee00244d6f7274616c3233390400080000ef00244d6f7274616c3234300400080000f000244d6f7274616c3234310400080000f100244d6f7274616c3234320400080000f200244d6f7274616c3234330400080000f300244d6f7274616c3234340400080000f400244d6f7274616c3234350400080000f500244d6f7274616c3234360400080000f600244d6f7274616c3234370400080000f700244d6f7274616c3234380400080000f800244d6f7274616c3234390400080000f900244d6f7274616c3235300400080000fa00244d6f7274616c3235310400080000fb00244d6f7274616c3235320400080000fc00244d6f7274616c3235330400080000fd00244d6f7274616c3235340400080000fe00244d6f7274616c3235350400080000ff0000fd0810306672616d655f73797374656d28657874656e73696f6e732c636865636b5f6e6f6e636528436865636b4e6f6e636504045400000400ad010120543a3a496e6465780000010910306672616d655f73797374656d28657874656e73696f6e7330636865636b5f7765696768742c436865636b576569676874040454000000000509086870616c6c65745f7472616e73616374696f6e5f7061796d656e74604368617267655472616e73616374696f6e5061796d656e7404045400000400cc013042616c616e63654f663c543e000009090c5c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e18636c61696d734850726576616c696461746541747465737473040454000000000d090840706f6c6b61646f745f72756e74696d651c52756e74696d6500000000b81853797374656d011853797374656d401c4163636f756e7401010402000c4101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e74000010040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e2c426c6f636b57656967687401001c600000000000000000000000000000000000000000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e000010040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b486173680101040510248000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101040510280400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d6265720100101000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801002480000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e1844696765737401002c040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e7473010048040010a0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e005901204e4f54453a20546869732073746f72616765206974656d206973206578706c696369746c7920756e626f756e6465642073696e6365206974206973206e6576657220696e74656e64656420746f2062652072656164642066726f6d2077697468696e207468652072756e74696d652e284576656e74436f756e74010010100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f706963730101040224a5010400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e004d01205468652076616c756520686173207468652074797065206028543a3a426c6f636b4e756d6265722c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000a90104000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e740100e80400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e740100e80400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e506861736500009d01040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e01b50101541830426c6f636b57656967687473c901850100f2052a0100000000204aa9d1010000405973070000000001c0766c8f58010000010098f73e5d010000010000000000000000405973070000000001c0febef9cc0100000100204aa9d1010000010088526a74000000405973070000000000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e677468d9013000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e74101060090000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e204462576569676874e1014040787d010000000000e1f505000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6ee501490320706f6c6b61646f743c7061726974792d706f6c6b61646f7400000000962300000000000038df6acb689907609b0300000037e397fc7c91f5e40100000040fe3ad401f8959a05000000d2bc9897eed08f1503000000f78b278be53f454c02000000af2c0297a23e6d3d0100000049eaaf1b548a0cb00100000091d5df18b0d2cf5801000000ed99c5acb25eedf503000000cbca25e39f14238702000000687ad44ad37f03c201000000ab3c0572291feb8b01000000bc9d89904f5b923f0100000037c8bb1350a9a2a801000000080000000484204765742074686520636861696e27732063757272656e742076657273696f6e2e2853533538507265666978250108000014a8205468652064657369676e61746564205353383520707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e01f90100245363686564756c657201245363686564756c65720c184167656e64610101040510fd010400044d01204974656d7320746f2062652065786563757465642c20696e64657865642062792074686520626c6f636b206e756d626572207468617420746865792073686f756c64206265206578656375746564206f6e2e184c6f6f6b75700001040528740400040101204c6f6f6b75702066726f6d206964656e7469747920746f2074686520626c6f636b206e756d62657220616e6420696e646578206f6620746865207461736b2e3853746f7261676556657273696f6e0100ad0504000c7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e0098204e6577206e6574776f726b732073746172742077697468206c6173742076657273696f6e2e010d02017008344d6178696d756d576569676874202000806e877401000008450120546865206d6178696d756d207765696768742074686174206d6179206265207363686564756c65642070657220626c6f636b20666f7220616e7920646973706174636861626c6573206f66206c657373a4207072696f72697479207468616e20607363686564756c653a3a484152445f444541444c494e45602e504d61785363686564756c6564506572426c6f636b101032000000081d0120546865206d6178696d756d206e756d626572206f66207363686564756c65642063616c6c7320696e2074686520717565756520666f7220612073696e676c6520626c6f636b2edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e01b105011042616265011042616265402845706f6368496e64657801002020000000000000000004542043757272656e742065706f636820696e6465782e2c417574686f7269746965730100b5050400046c2043757272656e742065706f636820617574686f7269746965732e2c47656e65736973536c6f740100290220000000000000000008f82054686520736c6f74206174207768696368207468652066697273742065706f63682061637475616c6c7920737461727465642e205468697320697320309020756e74696c2074686520666972737420626c6f636b206f662074686520636861696e2e2c43757272656e74536c6f740100290220000000000000000004542043757272656e7420736c6f74206e756d6265722e2852616e646f6d6e65737301000480000000000000000000000000000000000000000000000000000000000000000028b8205468652065706f63682072616e646f6d6e65737320666f7220746865202a63757272656e742a2065706f63682e002c20232053656375726974790005012054686973204d555354204e4f54206265207573656420666f722067616d626c696e672c2061732069742063616e20626520696e666c75656e6365642062792061f8206d616c6963696f75732076616c696461746f7220696e207468652073686f7274207465726d2e204974204d4159206265207573656420696e206d616e7915012063727970746f677261706869632070726f746f636f6c732c20686f77657665722c20736f206c6f6e67206173206f6e652072656d656d6265727320746861742074686973150120286c696b652065766572797468696e6720656c7365206f6e2d636861696e29206974206973207075626c69632e20466f72206578616d706c652c2069742063616e206265050120757365642077686572652061206e756d626572206973206e656564656420746861742063616e6e6f742068617665206265656e2063686f73656e20627920616e0d01206164766572736172792c20666f7220707572706f7365732073756368206173207075626c69632d636f696e207a65726f2d6b6e6f776c656467652070726f6f66732e6050656e64696e6745706f6368436f6e6669674368616e67650000310204000461012050656e64696e672065706f636820636f6e66696775726174696f6e206368616e676520746861742077696c6c206265206170706c696564207768656e20746865206e6578742065706f636820697320656e61637465642e384e65787452616e646f6d6e657373010004800000000000000000000000000000000000000000000000000000000000000000045c204e6578742065706f63682072616e646f6d6e6573732e3c4e657874417574686f7269746965730100b50504000460204e6578742065706f636820617574686f7269746965732e305365676d656e74496e6465780100101000000000247c2052616e646f6d6e65737320756e64657220636f6e737472756374696f6e2e00f4205765206d616b6520612074726164656f6666206265747765656e2073746f7261676520616363657373657320616e64206c697374206c656e6774682e01012057652073746f72652074686520756e6465722d636f6e737472756374696f6e2072616e646f6d6e65737320696e207365676d656e7473206f6620757020746f942060554e4445525f434f4e535452554354494f4e5f5345474d454e545f4c454e475448602e00ec204f6e63652061207365676d656e7420726561636865732074686973206c656e6774682c20776520626567696e20746865206e657874206f6e652e090120576520726573657420616c6c207365676d656e747320616e642072657475726e20746f206030602061742074686520626567696e6e696e67206f662065766572791c2065706f63682e44556e646572436f6e737472756374696f6e0101040510c10504000415012054574f582d4e4f54453a20605365676d656e74496e6465786020697320616e20696e6372656173696e6720696e74656765722c20736f2074686973206973206f6b61792e2c496e697469616c697a65640000c90504000801012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e292077686963682069732060536f6d65601d01206966207065722d626c6f636b20696e697469616c697a6174696f6e2068617320616c7265616479206265656e2063616c6c656420666f722063757272656e7420626c6f636b2e4c417574686f7256726652616e646f6d6e6573730100c90504001015012054686973206669656c642073686f756c6420616c7761797320626520706f70756c6174656420647572696e6720626c6f636b2070726f63657373696e6720756e6c6573731901207365636f6e6461727920706c61696e20736c6f74732061726520656e61626c65642028776869636820646f6e277420636f6e7461696e206120565246206f7574707574292e0051012049742069732073657420696e20606f6e5f696e697469616c697a65602c206265666f72652069742077696c6c20636f6e7461696e207468652076616c75652066726f6d20746865206c61737420626c6f636b2e2845706f63685374617274010074200000000000000000145d012054686520626c6f636b206e756d62657273207768656e20746865206c61737420616e642063757272656e742065706f6368206861766520737461727465642c20726573706563746976656c7920604e2d316020616e641420604e602e4901204e4f54453a20576520747261636b207468697320697320696e206f7264657220746f20616e6e6f746174652074686520626c6f636b206e756d626572207768656e206120676976656e20706f6f6c206f66590120656e74726f7079207761732066697865642028692e652e20697420776173206b6e6f776e20746f20636861696e206f6273657276657273292e2053696e63652065706f6368732061726520646566696e656420696e590120736c6f74732c207768696368206d617920626520736b69707065642c2074686520626c6f636b206e756d62657273206d6179206e6f74206c696e6520757020776974682074686520736c6f74206e756d626572732e204c6174656e657373010010100000000014d820486f77206c617465207468652063757272656e7420626c6f636b20697320636f6d706172656420746f2069747320706172656e742e001501205468697320656e74727920697320706f70756c617465642061732070617274206f6620626c6f636b20657865637574696f6e20616e6420697320636c65616e65642075701101206f6e20626c6f636b2066696e616c697a6174696f6e2e205175657279696e6720746869732073746f7261676520656e747279206f757473696465206f6620626c6f636bb020657865637574696f6e20636f6e746578742073686f756c6420616c77617973207969656c64207a65726f2e2c45706f6368436f6e6669670000cd0504000861012054686520636f6e66696775726174696f6e20666f72207468652063757272656e742065706f63682e2053686f756c64206e6576657220626520604e6f6e656020617320697420697320696e697469616c697a656420696e242067656e657369732e3c4e65787445706f6368436f6e6669670000cd050400082d012054686520636f6e66696775726174696f6e20666f7220746865206e6578742065706f63682c20604e6f6e65602069662074686520636f6e6669672077696c6c206e6f74206368616e6765e82028796f752063616e2066616c6c6261636b20746f206045706f6368436f6e6669676020696e737465616420696e20746861742063617365292e011502000c3445706f63684475726174696f6e202060090000000000000cec2054686520616d6f756e74206f662074696d652c20696e20736c6f74732c207468617420656163682065706f63682073686f756c64206c6173742e1901204e4f54453a2043757272656e746c79206974206973206e6f7420706f737369626c6520746f206368616e6765207468652065706f6368206475726174696f6e20616674657221012074686520636861696e2068617320737461727465642e20417474656d7074696e6720746f20646f20736f2077696c6c20627269636b20626c6f636b2070726f64756374696f6e2e444578706563746564426c6f636b54696d652020701700000000000014050120546865206578706563746564206176657261676520626c6f636b2074696d6520617420776869636820424142452073686f756c64206265206372656174696e67110120626c6f636b732e2053696e636520424142452069732070726f626162696c6973746963206974206973206e6f74207472697669616c20746f20666967757265206f75740501207768617420746865206578706563746564206176657261676520626c6f636b2074696d652073686f756c64206265206261736564206f6e2074686520736c6f740901206475726174696f6e20616e642074686520736563757269747920706172616d657465722060636020287768657265206031202d20636020726570726573656e7473a0207468652070726f626162696c697479206f66206120736c6f74206265696e6720656d707479292e384d6178417574686f7269746965731010a08601000488204d6178206e756d626572206f6620617574686f72697469657320616c6c6f77656401d105022454696d657374616d70012454696d657374616d70080c4e6f7701002020000000000000000004902043757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e244469645570646174650100e8040004b420446964207468652074696d657374616d7020676574207570646174656420696e207468697320626c6f636b3f013d020004344d696e696d756d506572696f642020b80b000000000000104d0120546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e204265776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a5d0120706572696f6420746861742074686520626c6f636b2070726f64756374696f6e206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c5d012067656e6572616c6c7920776f726b2077697468207468697320746f2064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20652e672e20466f7220417572612c2069742077696c6c206265a020646f75626c65207468697320706572696f64206f6e2064656661756c742073657474696e67732e00031c496e6469636573011c496e646963657304204163636f756e74730001040210d5050400048820546865206c6f6f6b75702066726f6d20696e64657820746f206163636f756e742e0145020184041c4465706f736974184000e8764817000000000000000000000004ac20546865206465706f736974206e656564656420666f7220726573657276696e6720616e20696e6465782e01d905042042616c616e636573012042616c616e6365731434546f74616c49737375616e6365010018400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e1c4163636f756e740101040200140101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c6c205468652062616c616e6365206f6620616e206163636f756e742e004101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b730101040200dd05040008b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e2052657365727665730101040200ed05040004a4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e3853746f7261676556657273696f6e0100f90504000c7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e00a020546869732069732073657420746f2076322e302e3020666f72206e6577206e6574776f726b732e01490201880c484578697374656e7469616c4465706f736974184000e40b5402000000000000000000000004d420546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d61784c6f636b7310103200000008f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e2c4d61785265736572766573101032000000040d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e01fd0505485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c6965720100010640000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e0100050604000000000c485472616e73616374696f6e42797465466565184040420f00000000000000000000000000040d01205468652066656520746f206265207061696420666f72206d616b696e672061207472616e73616374696f6e3b20746865207065722d6279746520706f7274696f6e2e604f7065726174696f6e616c4665654d756c7469706c696572080405545901204120666565206d756c6974706c69657220666f7220604f7065726174696f6e616c602065787472696e7369637320746f20636f6d7075746520227669727475616c207469702220746f20626f6f73742074686569722c20607072696f7269747960004d0120546869732076616c7565206973206d756c7469706c656420627920746865206066696e616c5f6665656020746f206f627461696e206120227669727475616c20746970222074686174206973206c61746572f420616464656420746f20612074697020636f6d706f6e656e7420696e20726567756c617220607072696f72697479602063616c63756c6174696f6e732e4d01204974206d65616e732074686174206120604e6f726d616c60207472616e73616374696f6e2063616e2066726f6e742d72756e20612073696d696c61726c792d73697a656420604f7065726174696f6e616c6041012065787472696e736963202877697468206e6f20746970292c20627920696e636c7564696e672061207469702076616c75652067726561746572207468616e20746865207669727475616c207469702e003c20606060727573742c69676e6f726540202f2f20466f7220604e6f726d616c608c206c6574207072696f72697479203d207072696f726974795f63616c6328746970293b0054202f2f20466f7220604f7065726174696f6e616c601101206c6574207669727475616c5f746970203d2028696e636c7573696f6e5f666565202b2074697029202a204f7065726174696f6e616c4665654d756c7469706c6965723bc4206c6574207072696f72697479203d207072696f726974795f63616c6328746970202b207669727475616c5f746970293b1020606060005101204e6f746520746861742073696e636520776520757365206066696e616c5f6665656020746865206d756c7469706c696572206170706c69657320616c736f20746f2074686520726567756c61722060746970605d012073656e74207769746820746865207472616e73616374696f6e2e20536f2c206e6f74206f6e6c7920646f657320746865207472616e73616374696f6e206765742061207072696f726974792062756d702062617365646101206f6e207468652060696e636c7573696f6e5f666565602c2062757420776520616c736f20616d706c6966792074686520696d70616374206f662074697073206170706c69656420746f20604f7065726174696f6e616c6038207472616e73616374696f6e732e2c576569676874546f46656509065c040000000000000000000000000000000000b4c4040001040d012054686520706f6c796e6f6d69616c2074686174206973206170706c69656420696e206f7264657220746f20646572697665206665652066726f6d207765696768742e002028417574686f72736869700128417574686f72736869700c18556e636c6573010011060400041c20556e636c657318417574686f720000000400046420417574686f72206f662063757272656e7420626c6f636b2e30446964536574556e636c65730100e8040004bc205768657468657220756e636c6573207765726520616c72656164792073657420696e207468697320626c6f636b2e015502000440556e636c6547656e65726174696f6e731010000000000ccc20546865206e756d626572206f6620626c6f636b73206261636b2077652073686f756c642061636365707420756e636c65732ee42054686973206d65616e7320746861742077652077696c6c206465616c207769746820756e636c652d706172656e7473207468617420617265942060556e636c6547656e65726174696f6e73202b203160206265666f726520606e6f77602e011906061c5374616b696e67011c5374616b696e679430486973746f7279446570746801001010540000001c8c204e756d626572206f66206572617320746f206b65657020696e20686973746f72792e00390120496e666f726d6174696f6e206973206b65707420666f72206572617320696e20605b63757272656e745f657261202d20686973746f72795f64657074683b2063757272656e745f6572615d602e006101204d757374206265206d6f7265207468616e20746865206e756d626572206f6620657261732064656c617965642062792073657373696f6e206f74686572776973652e20492e652e2061637469766520657261206d757374390120616c7761797320626520696e20686973746f72792e20492e652e20606163746976655f657261203e2063757272656e745f657261202d20686973746f72795f646570746860206d757374206265302067756172616e746565642e3856616c696461746f72436f756e74010010100000000004a82054686520696465616c206e756d626572206f66207374616b696e67207061727469636970616e74732e544d696e696d756d56616c696461746f72436f756e740100101000000000044101204d696e696d756d206e756d626572206f66207374616b696e67207061727469636970616e7473206265666f726520656d657267656e637920636f6e646974696f6e732061726520696d706f7365642e34496e76756c6e657261626c65730100dc04000c590120416e792076616c696461746f72732074686174206d6179206e6576657220626520736c6173686564206f7220666f726369626c79206b69636b65642e20497427732061205665632073696e636520746865792772654d01206561737920746f20696e697469616c697a6520616e642074686520706572666f726d616e636520686974206973206d696e696d616c2028776520657870656374206e6f206d6f7265207468616e20666f7572ac20696e76756c6e657261626c65732920616e64207265737472696374656420746f20746573746e6574732e18426f6e6465640001040500000400040101204d61702066726f6d20616c6c206c6f636b65642022737461736822206163636f756e747320746f2074686520636f6e74726f6c6c6572206163636f756e742e404d696e4e6f6d696e61746f72426f6e64010018400000000000000000000000000000000004210120546865206d696e696d756d2061637469766520626f6e6420746f206265636f6d6520616e64206d61696e7461696e2074686520726f6c65206f662061206e6f6d696e61746f722e404d696e56616c696461746f72426f6e64010018400000000000000000000000000000000004210120546865206d696e696d756d2061637469766520626f6e6420746f206265636f6d6520616e64206d61696e7461696e2074686520726f6c65206f6620612076616c696461746f722e184c656467657200010402001d060400044501204d61702066726f6d20616c6c2028756e6c6f636b6564292022636f6e74726f6c6c657222206163636f756e747320746f2074686520696e666f20726567617264696e6720746865207374616b696e672e14506179656501010405006102040004e42057686572652074686520726577617264207061796d656e742073686f756c64206265206d6164652e204b657965642062792073746173682e2856616c696461746f7273010104050065020800000c450120546865206d61702066726f6d202877616e6e616265292076616c696461746f72207374617368206b657920746f2074686520707265666572656e636573206f6620746861742076616c696461746f722e004901205768656e207570646174696e6720746869732073746f72616765206974656d2c20796f75206d75737420616c736f20757064617465207468652060436f756e746572466f7256616c696461746f7273602e50436f756e746572466f7256616c696461746f72730100101000000000042101204120747261636b657220746f206b65657020636f756e74206f6620746865206e756d626572206f66206974656d7320696e20746865206056616c696461746f727360206d61702e484d617856616c696461746f7273436f756e7400001004000c310120546865206d6178696d756d2076616c696461746f7220636f756e74206265666f72652077652073746f7020616c6c6f77696e67206e65772076616c696461746f727320746f206a6f696e2e00d0205768656e20746869732076616c7565206973206e6f74207365742c206e6f206c696d6974732061726520656e666f726365642e284e6f6d696e61746f72730001040500290604000c650120546865206d61702066726f6d206e6f6d696e61746f72207374617368206b657920746f2074686520736574206f66207374617368206b657973206f6620616c6c2076616c696461746f727320746f206e6f6d696e6174652e004901205768656e207570646174696e6720746869732073746f72616765206974656d2c20796f75206d75737420616c736f20757064617465207468652060436f756e746572466f724e6f6d696e61746f7273602e50436f756e746572466f724e6f6d696e61746f72730100101000000000042101204120747261636b657220746f206b65657020636f756e74206f6620746865206e756d626572206f66206974656d7320696e2074686520604e6f6d696e61746f727360206d61702e484d61784e6f6d696e61746f7273436f756e7400001004000c310120546865206d6178696d756d206e6f6d696e61746f7220636f756e74206265666f72652077652073746f7020616c6c6f77696e67206e65772076616c696461746f727320746f206a6f696e2e00d0205768656e20746869732076616c7565206973206e6f74207365742c206e6f206c696d6974732061726520656e666f726365642e2843757272656e744572610000100400105c205468652063757272656e742065726120696e6465782e006501205468697320697320746865206c617465737420706c616e6e6564206572612c20646570656e64696e67206f6e20686f77207468652053657373696f6e2070616c6c657420717565756573207468652076616c696461746f7280207365742c206974206d6967687420626520616374697665206f72206e6f742e2441637469766545726100002d06040010d820546865206163746976652065726120696e666f726d6174696f6e2c20697420686f6c647320696e64657820616e642073746172742e0059012054686520616374697665206572612069732074686520657261206265696e672063757272656e746c792072657761726465642e2056616c696461746f7220736574206f66207468697320657261206d757374206265ac20657175616c20746f205b6053657373696f6e496e746572666163653a3a76616c696461746f7273605d2e5445726173537461727453657373696f6e496e6465780001040510100400103101205468652073657373696f6e20696e646578206174207768696368207468652065726120737461727420666f7220746865206c6173742060484953544f52595f44455054486020657261732e006101204e6f74653a205468697320747261636b7320746865207374617274696e672073657373696f6e2028692e652e2073657373696f6e20696e646578207768656e20657261207374617274206265696e672061637469766529f020666f7220746865206572617320696e20605b43757272656e74457261202d20484953544f52595f44455054482c2043757272656e744572615d602e2c457261735374616b65727301010805053106c80c0000001878204578706f73757265206f662076616c696461746f72206174206572612e0061012054686973206973206b65796564206669727374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00a82049732069742072656d6f7665642061667465722060484953544f52595f44455054486020657261732e4101204966207374616b657273206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e20656d707479206578706f737572652069732072657475726e65642e48457261735374616b657273436c697070656401010805053106c80c0000002c9820436c6970706564204578706f73757265206f662076616c696461746f72206174206572612e00590120546869732069732073696d696c617220746f205b60457261735374616b657273605d20627574206e756d626572206f66206e6f6d696e61746f7273206578706f736564206973207265647563656420746f20746865dc2060543a3a4d61784e6f6d696e61746f72526577617264656450657256616c696461746f72602062696767657374207374616b6572732e1d0120284e6f74653a20746865206669656c642060746f74616c6020616e6420606f776e60206f6620746865206578706f737572652072656d61696e7320756e6368616e676564292ef42054686973206973207573656420746f206c696d69742074686520692f6f20636f737420666f7220746865206e6f6d696e61746f72207061796f75742e005d012054686973206973206b657965642066697374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00a82049732069742072656d6f7665642061667465722060484953544f52595f44455054486020657261732e4101204966207374616b657273206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e20656d707479206578706f737572652069732072657475726e65642e484572617356616c696461746f7250726566730101080505310665020800001411012053696d696c617220746f2060457261735374616b657273602c207468697320686f6c64732074686520707265666572656e636573206f662076616c696461746f72732e0061012054686973206973206b65796564206669727374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00a82049732069742072656d6f7665642061667465722060484953544f52595f44455054486020657261732e4c4572617356616c696461746f7252657761726400010405101804000c09012054686520746f74616c2076616c696461746f7220657261207061796f757420666f7220746865206c6173742060484953544f52595f44455054486020657261732e0021012045726173207468617420686176656e27742066696e697368656420796574206f7220686173206265656e2072656d6f76656420646f65736e27742068617665207265776172642e4045726173526577617264506f696e74730101040510350614000000000008ac205265776172647320666f7220746865206c6173742060484953544f52595f44455054486020657261732e250120496620726577617264206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e2030207265776172642069732072657475726e65642e3845726173546f74616c5374616b65010104051018400000000000000000000000000000000008ec2054686520746f74616c20616d6f756e74207374616b656420666f7220746865206c6173742060484953544f52595f44455054486020657261732e1d0120496620746f74616c206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e2030207374616b652069732072657475726e65642e20466f7263654572610100450604000454204d6f6465206f662065726120666f7263696e672e4c536c6173685265776172644672616374696f6e0100b90110000000000cf8205468652070657263656e74616765206f662074686520736c617368207468617420697320646973747269627574656420746f207265706f72746572732e00e4205468652072657374206f662074686520736c61736865642076616c75652069732068616e646c6564206279207468652060536c617368602e4c43616e63656c6564536c6173685061796f757401001840000000000000000000000000000000000815012054686520616d6f756e74206f662063757272656e637920676976656e20746f207265706f7274657273206f66206120736c617368206576656e7420776869636820776173ec2063616e63656c65642062792065787472616f7264696e6172792063697263756d7374616e6365732028652e672e20676f7665726e616e6365292e40556e6170706c696564536c617368657301010405104906040004c420416c6c20756e6170706c69656420736c61736865732074686174206172652071756575656420666f72206c617465722e28426f6e646564457261730100a50104001025012041206d617070696e672066726f6d207374696c6c2d626f6e646564206572617320746f207468652066697273742073657373696f6e20696e646578206f662074686174206572612e00c8204d75737420636f6e7461696e7320696e666f726d6174696f6e20666f72206572617320666f72207468652072616e67653abc20605b6163746976655f657261202d20626f756e64696e675f6475726174696f6e3b206163746976655f6572615d604c56616c696461746f72536c617368496e457261000108050531065106040008450120416c6c20736c617368696e67206576656e7473206f6e2076616c696461746f72732c206d61707065642062792065726120746f20746865206869676865737420736c6173682070726f706f7274696f6e7020616e6420736c6173682076616c7565206f6620746865206572612e4c4e6f6d696e61746f72536c617368496e4572610001080505310618040004610120416c6c20736c617368696e67206576656e7473206f6e206e6f6d696e61746f72732c206d61707065642062792065726120746f20746865206869676865737420736c6173682076616c7565206f6620746865206572612e34536c617368696e675370616e73000104050055060400048c20536c617368696e67207370616e7320666f72207374617368206163636f756e74732e245370616e536c6173680101040541065906800000000000000000000000000000000000000000000000000000000000000000083d01205265636f72647320696e666f726d6174696f6e2061626f757420746865206d6178696d756d20736c617368206f6620612073746173682077697468696e206120736c617368696e67207370616e2cb82061732077656c6c20617320686f77206d7563682072657761726420686173206265656e2070616964206f75742e584561726c69657374556e6170706c696564536c617368000010040004fc20546865206561726c696573742065726120666f72207768696368207765206861766520612070656e64696e672c20756e6170706c69656420736c6173682e5443757272656e74506c616e6e656453657373696f6e01001010000000000ce820546865206c61737420706c616e6e65642073657373696f6e207363686564756c6564206279207468652073657373696f6e2070616c6c65742e0071012054686973206973206261736963616c6c7920696e2073796e632077697468207468652063616c6c20746f205b6070616c6c65745f73657373696f6e3a3a53657373696f6e4d616e616765723a3a6e65775f73657373696f6e605d2e3853746f7261676556657273696f6e01005d06040710cc2054727565206966206e6574776f726b20686173206265656e20757067726164656420746f20746869732076657273696f6e2e7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e00a020546869732069732073657420746f2076372e302e3020666f72206e6577206e6574776f726b732e384368696c6c5468726573686f6c640000710204000c510120546865207468726573686f6c6420666f72207768656e2075736572732063616e2073746172742063616c6c696e6720606368696c6c5f6f746865726020666f72206f746865722076616c696461746f7273202f5901206e6f6d696e61746f72732e20546865207468726573686f6c6420697320636f6d706172656420746f207468652061637475616c206e756d626572206f662076616c696461746f7273202f206e6f6d696e61746f72732901202860436f756e74466f722a602920696e207468652073797374656d20636f6d706172656420746f2074686520636f6e66696775726564206d61782028604d61782a436f756e7460292e015d020190143853657373696f6e735065724572611010060000000470204e756d626572206f662073657373696f6e7320706572206572612e3c426f6e64696e674475726174696f6e10101c00000004e4204e756d626572206f6620657261732074686174207374616b65642066756e6473206d7573742072656d61696e20626f6e64656420666f722e48536c61736844656665724475726174696f6e10101b000000100101204e756d626572206f662065726173207468617420736c6173686573206172652064656665727265642062792c20616674657220636f6d7075746174696f6e2e000d0120546869732073686f756c64206265206c657373207468616e2074686520626f6e64696e67206475726174696f6e2e2053657420746f203020696620736c617368657315012073686f756c64206265206170706c69656420696d6d6564696174656c792c20776974686f7574206f70706f7274756e69747920666f7220696e74657276656e74696f6e2e804d61784e6f6d696e61746f72526577617264656450657256616c696461746f7210100001000010f820546865206d6178696d756d206e756d626572206f66206e6f6d696e61746f727320726577617264656420666f7220656163682076616c696461746f722e00510120466f7220656163682076616c696461746f72206f6e6c79207468652060244d61784e6f6d696e61746f72526577617264656450657256616c696461746f72602062696767657374207374616b6572732063616e390120636c61696d207468656972207265776172642e2054686973207573656420746f206c696d69742074686520692f6f20636f737420666f7220746865206e6f6d696e61746f72207061796f75742e384d61784e6f6d696e6174696f6e731010100000000001610607204f6666656e63657301204f6666656e6365730c1c5265706f72747300010405246506040004490120546865207072696d61727920737472756374757265207468617420686f6c647320616c6c206f6666656e6365207265636f726473206b65796564206279207265706f7274206964656e746966696572732e58436f6e63757272656e745265706f727473496e64657801010805056906a1010400042901204120766563746f72206f66207265706f727473206f66207468652073616d65206b696e6420746861742068617070656e6564206174207468652073616d652074696d6520736c6f742e485265706f72747342794b696e64496e646578010104059828040018110120456e756d65726174657320616c6c207265706f727473206f662061206b696e6420616c6f6e672077697468207468652074696d6520746865792068617070656e65642e00bc20416c6c207265706f7274732061726520736f72746564206279207468652074696d65206f66206f6666656e63652e004901204e6f74652074686174207468652061637475616c2074797065206f662074686973206d617070696e6720697320605665633c75383e602c207468697320697320626563617573652076616c756573206f66690120646966666572656e7420747970657320617265206e6f7420737570706f7274656420617420746865206d6f6d656e7420736f2077652061726520646f696e6720746865206d616e75616c2073657269616c697a6174696f6e2e00019400000828486973746f726963616c0000000000211c53657373696f6e011c53657373696f6e1c2856616c696461746f72730100dc0400047c205468652063757272656e7420736574206f662076616c696461746f72732e3043757272656e74496e646578010010100000000004782043757272656e7420696e646578206f66207468652073657373696f6e2e345175657565644368616e6765640100e8040008390120547275652069662074686520756e6465726c79696e672065636f6e6f6d6963206964656e746974696573206f7220776569676874696e6720626568696e64207468652076616c696461746f7273a420686173206368616e67656420696e20746865207175657565642076616c696461746f72207365742e285175657565644b65797301006d060400083d012054686520717565756564206b65797320666f7220746865206e6578742073657373696f6e2e205768656e20746865206e6578742073657373696f6e20626567696e732c207468657365206b657973e02077696c6c206265207573656420746f2064657465726d696e65207468652076616c696461746f7227732073657373696f6e206b6579732e4844697361626c656456616c696461746f72730100750204000c8020496e6469636573206f662064697361626c65642076616c696461746f72732e003501205468652073657420697320636c6561726564207768656e20606f6e5f73657373696f6e5f656e64696e67602072657475726e732061206e657720736574206f66206964656e7469746965732e204e6578744b657973000104050085020400049c20546865206e6578742073657373696f6e206b65797320666f7220612076616c696461746f722e204b65794f776e657200010405750600040004090120546865206f776e6572206f662061206b65792e20546865206b65792069732074686520604b657954797065496460202b2074686520656e636f646564206b65792e018102019c00017d06091c4772616e647061011c4772616e647061181453746174650100810604000490205374617465206f66207468652063757272656e7420617574686f72697479207365742e3450656e64696e674368616e676500008506040004c42050656e64696e67206368616e67653a20287369676e616c65642061742c207363686564756c6564206368616e6765292e284e657874466f72636564000010040004bc206e65787420626c6f636b206e756d6265722077686572652077652063616e20666f7263652061206368616e67652e1c5374616c6c65640000740400049020607472756560206966207765206172652063757272656e746c79207374616c6c65642e3043757272656e745365744964010020200000000000000000085d0120546865206e756d626572206f66206368616e6765732028626f746820696e207465726d73206f66206b65797320616e6420756e6465726c79696e672065636f6e6f6d696320726573706f6e736962696c697469657329c420696e20746865202273657422206f66204772616e6470612076616c696461746f72732066726f6d2067656e657369732e30536574496453657373696f6e00010405201004001059012041206d617070696e672066726f6d206772616e6470612073657420494420746f2074686520696e646578206f6620746865202a6d6f737420726563656e742a2073657373696f6e20666f722077686963682069747368206d656d62657273207765726520726573706f6e7369626c652e00b82054574f582d4e4f54453a2060536574496460206973206e6f7420756e646572207573657220636f6e74726f6c2e01950201a004384d6178417574686f7269746965731010a0860100045c204d617820417574686f72697469657320696e20757365018d060b20496d4f6e6c696e650120496d4f6e6c696e651038486561727462656174416674657201001010000000002c1d012054686520626c6f636b206e756d6265722061667465722077686963682069742773206f6b20746f2073656e64206865617274626561747320696e207468652063757272656e74242073657373696f6e2e0025012041742074686520626567696e6e696e67206f6620656163682073657373696f6e20776520736574207468697320746f20612076616c756520746861742073686f756c642066616c6c350120726f7567686c7920696e20746865206d6964646c65206f66207468652073657373696f6e206475726174696f6e2e20546865206964656120697320746f206669727374207761697420666f721901207468652076616c696461746f727320746f2070726f64756365206120626c6f636b20696e207468652063757272656e742073657373696f6e2c20736f207468617420746865a820686561727462656174206c61746572206f6e2077696c6c206e6f74206265206e65636573736172792e00390120546869732076616c75652077696c6c206f6e6c79206265207573656420617320612066616c6c6261636b206966207765206661696c20746f2067657420612070726f7065722073657373696f6e2d012070726f677265737320657374696d6174652066726f6d20604e65787453657373696f6e526f746174696f6e602c2061732074686f736520657374696d617465732073686f756c642062650101206d6f7265206163637572617465207468656e207468652076616c75652077652063616c63756c61746520666f7220604865617274626561744166746572602e104b65797301009106040004d0205468652063757272656e7420736574206f66206b6579732074686174206d61792069737375652061206865617274626561742e4852656365697665644865617274626561747300010805057499060400083d0120466f7220656163682073657373696f6e20696e6465782c207765206b6565702061206d617070696e67206f66202753657373696f6e496e6465786020616e64206041757468496e6465786020746fb02060577261707065724f70617175653c426f756e6465644f70617175654e6574776f726b53746174653e602e38417574686f726564426c6f636b730101080505310610100000000008150120466f7220656163682073657373696f6e20696e6465782c207765206b6565702061206d617070696e67206f66206056616c696461746f7249643c543e6020746f20746865c8206e756d626572206f6620626c6f636b7320617574686f7265642062792074686520676976656e20617574686f726974792e01c10201b40440556e7369676e65645072696f726974792020ffffffffffffffff10f0204120636f6e66696775726174696f6e20666f722062617365207072696f72697479206f6620756e7369676e6564207472616e73616374696f6e732e0015012054686973206973206578706f73656420736f20746861742069742063616e2062652074756e656420666f7220706172746963756c61722072756e74696d652c207768656eb4206d756c7469706c652070616c6c6574732073656e6420756e7369676e6564207472616e73616374696f6e732e01ad060c48417574686f72697479446973636f7665727900000000000d2444656d6f6372616379012444656d6f6372616379383c5075626c696350726f70436f756e74010010100000000004f420546865206e756d626572206f6620287075626c6963292070726f706f73616c7320746861742068617665206265656e206d61646520736f206661722e2c5075626c696350726f70730100b106040004210120546865207075626c69632070726f706f73616c732e20556e736f727465642e20546865207365636f6e64206974656d206973207468652070726f706f73616c277320686173682e244465706f7369744f660001040510b90604000c842054686f73652077686f2068617665206c6f636b65642061206465706f7369742e00d82054574f582d4e4f54453a20536166652c20617320696e6372656173696e6720696e7465676572206b6579732061726520736166652e24507265696d616765730001040624bd060400086101204d6170206f662068617368657320746f207468652070726f706f73616c20707265696d6167652c20616c6f6e6720776974682077686f207265676973746572656420697420616e64207468656972206465706f7369742ee42054686520626c6f636b206e756d6265722069732074686520626c6f636b20617420776869636820697420776173206465706f73697465642e3c5265666572656e64756d436f756e74010010100000000004310120546865206e6578742066726565207265666572656e64756d20696e6465782c20616b6120746865206e756d626572206f66207265666572656e6461207374617274656420736f206661722e344c6f77657374556e62616b6564010010100000000008250120546865206c6f77657374207265666572656e64756d20696e64657820726570726573656e74696e6720616e20756e62616b6564207265666572656e64756d2e20457175616c20746fdc20605265666572656e64756d436f756e74602069662074686572652069736e2774206120756e62616b6564207265666572656e64756d2e405265666572656e64756d496e666f4f660001040510c10604000cb420496e666f726d6174696f6e20636f6e6365726e696e6720616e7920676976656e207265666572656e64756d2e0009012054574f582d4e4f54453a205341464520617320696e646578657320617265206e6f7420756e64657220616e2061747461636b6572e280997320636f6e74726f6c2e20566f74696e674f660101040500cd06d8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000105d0120416c6c20766f74657320666f72206120706172746963756c617220766f7465722e2057652073746f7265207468652062616c616e636520666f7220746865206e756d626572206f6620766f74657320746861742077655d012068617665207265636f726465642e20546865207365636f6e64206974656d2069732074686520746f74616c20616d6f756e74206f662064656c65676174696f6e732c20746861742077696c6c2062652061646465642e00e82054574f582d4e4f54453a205341464520617320604163636f756e7449646073206172652063727970746f2068617368657320616e797761792e144c6f636b730001040500100400105d01204163636f756e747320666f7220776869636820746865726520617265206c6f636b7320696e20616374696f6e207768696368206d61792062652072656d6f76656420617420736f6d6520706f696e7420696e207468655101206675747572652e205468652076616c75652069732074686520626c6f636b206e756d62657220617420776869636820746865206c6f636b206578706972657320616e64206d61792062652072656d6f7665642e00c02054574f582d4e4f54453a204f4b20e2809520604163636f756e7449646020697320612073656375726520686173682e544c6173745461626c656457617345787465726e616c0100e80400085901205472756520696620746865206c617374207265666572656e64756d207461626c656420776173207375626d69747465642065787465726e616c6c792e2046616c7365206966206974207761732061207075626c6963282070726f706f73616c2e304e65787445787465726e616c0000e106040010590120546865207265666572656e64756d20746f206265207461626c6564207768656e6576657220697420776f756c642062652076616c696420746f207461626c6520616e2065787465726e616c2070726f706f73616c2e550120546869732068617070656e73207768656e2061207265666572656e64756d206e6565647320746f206265207461626c656420616e64206f6e65206f662074776f20636f6e646974696f6e7320617265206d65743aa4202d20604c6173745461626c656457617345787465726e616c60206973206066616c7365603b206f7268202d20605075626c696350726f70736020697320656d7074792e24426c61636b6c6973740001040624e50604000851012041207265636f7264206f662077686f207665746f656420776861742e204d6170732070726f706f73616c206861736820746f206120706f737369626c65206578697374656e7420626c6f636b206e756d626572e82028756e74696c207768656e206974206d6179206e6f742062652072657375626d69747465642920616e642077686f207665746f65642069742e3443616e63656c6c6174696f6e730101040624e80400042901205265636f7264206f6620616c6c2070726f706f73616c7320746861742068617665206265656e207375626a65637420746f20656d657267656e63792063616e63656c6c6174696f6e2e3853746f7261676556657273696f6e0000e90604000c7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e0098204e6577206e6574776f726b732073746172742077697468206c6173742076657273696f6e2e01dd0201d82c3c456e6163746d656e74506572696f6410100027060014e82054686520706572696f64206265747765656e20612070726f706f73616c206265696e6720617070726f76656420616e6420656e61637465642e0031012049742073686f756c642067656e6572616c6c792062652061206c6974746c65206d6f7265207468616e2074686520756e7374616b6520706572696f6420746f20656e737572652074686174510120766f74696e67207374616b657273206861766520616e206f70706f7274756e69747920746f2072656d6f7665207468656d73656c7665732066726f6d207468652073797374656d20696e207468652063617365b4207768657265207468657920617265206f6e20746865206c6f73696e672073696465206f66206120766f74652e304c61756e6368506572696f6410100027060004e420486f77206f6674656e2028696e20626c6f636b7329206e6577207075626c6963207265666572656e646120617265206c61756e636865642e30566f74696e67506572696f6410100027060004b820486f77206f6674656e2028696e20626c6f636b732920746f20636865636b20666f72206e657720766f7465732e44566f74654c6f636b696e67506572696f64101000270600109020546865206d696e696d756d20706572696f64206f6620766f7465206c6f636b696e672e0065012049742073686f756c64206265206e6f2073686f72746572207468616e20656e6163746d656e7420706572696f6420746f20656e73757265207468617420696e207468652063617365206f6620616e20617070726f76616c2c49012074686f7365207375636365737366756c20766f7465727320617265206c6f636b656420696e746f2074686520636f6e73657175656e636573207468617420746865697220766f74657320656e7461696c2e384d696e696d756d4465706f73697418400010a5d4e8000000000000000000000004350120546865206d696e696d756d20616d6f756e7420746f20626520757365642061732061206465706f73697420666f722061207075626c6963207265666572656e64756d2070726f706f73616c2e38496e7374616e74416c6c6f776564e804010c550120496e64696361746f7220666f72207768657468657220616e20656d657267656e6379206f726967696e206973206576656e20616c6c6f77656420746f2068617070656e2e20536f6d6520636861696e73206d617961012077616e7420746f207365742074686973207065726d616e656e746c7920746f206066616c7365602c206f7468657273206d61792077616e7420746f20636f6e646974696f6e206974206f6e207468696e67732073756368a020617320616e207570677261646520686176696e672068617070656e656420726563656e746c792e5446617374547261636b566f74696e67506572696f6410100807000004ec204d696e696d756d20766f74696e6720706572696f6420616c6c6f77656420666f72206120666173742d747261636b207265666572656e64756d2e34436f6f6c6f6666506572696f641010c089010004610120506572696f6420696e20626c6f636b7320776865726520616e2065787465726e616c2070726f706f73616c206d6179206e6f742062652072652d7375626d6974746564206166746572206265696e67207665746f65642e4c507265696d616765427974654465706f736974184000e1f5050000000000000000000000000429012054686520616d6f756e74206f662062616c616e63652074686174206d757374206265206465706f7369746564207065722062797465206f6620707265696d6167652073746f7265642e204d6178566f74657310106400000010b020546865206d6178696d756d206e756d626572206f6620766f74657320666f7220616e206163636f756e742e00d420416c736f207573656420746f20636f6d70757465207765696768742c20616e206f7665726c79206269672076616c75652063616e1501206c65616420746f2065787472696e7369632077697468207665727920626967207765696768743a20736565206064656c65676174656020666f7220696e7374616e63652e304d617850726f706f73616c73101064000000040d0120546865206d6178696d756d206e756d626572206f66207075626c69632070726f706f73616c7320746861742063616e20657869737420617420616e792074696d652e01ed060e1c436f756e63696c011c436f756e63696c182450726f706f73616c730100f106040004902054686520686173686573206f6620746865206163746976652070726f706f73616c732e2850726f706f73616c4f6600010406240902040004cc2041637475616c2070726f706f73616c20666f72206120676976656e20686173682c20696620697427732063757272656e742e18566f74696e670001040624f506040004b420566f746573206f6e206120676976656e2070726f706f73616c2c206966206974206973206f6e676f696e672e3450726f706f73616c436f756e74010010100000000004482050726f706f73616c7320736f206661722e1c4d656d626572730100dc0400043901205468652063757272656e74206d656d62657273206f662074686520636f6c6c6563746976652e20546869732069732073746f72656420736f7274656420286a7573742062792076616c7565292e145072696d65000000040004650120546865207072696d65206d656d62657220746861742068656c70732064657465726d696e65207468652064656661756c7420766f7465206265686176696f7220696e2063617365206f6620616273656e746174696f6e732e01ed0201e40001f9060f48546563686e6963616c436f6d6d69747465650148546563686e6963616c436f6d6d6974746565182450726f706f73616c730100fd06040004902054686520686173686573206f6620746865206163746976652070726f706f73616c732e2850726f706f73616c4f6600010406240902040004cc2041637475616c2070726f706f73616c20666f72206120676976656e20686173682c20696620697427732063757272656e742e18566f74696e670001040624f506040004b420566f746573206f6e206120676976656e2070726f706f73616c2c206966206974206973206f6e676f696e672e3450726f706f73616c436f756e74010010100000000004482050726f706f73616c7320736f206661722e1c4d656d626572730100dc0400043901205468652063757272656e74206d656d62657273206f662074686520636f6c6c6563746976652e20546869732069732073746f72656420736f7274656420286a7573742062792076616c7565292e145072696d65000000040004650120546865207072696d65206d656d62657220746861742068656c70732064657465726d696e65207468652064656661756c7420766f7465206265686176696f7220696e2063617365206f6620616273656e746174696f6e732e01f50201ec00010107104050687261676d656e456c656374696f6e014050687261676d656e456c656374696f6e141c4d656d626572730100050704000c74205468652063757272656e7420656c6563746564206d656d626572732e00b820496e76617269616e743a20416c7761797320736f72746564206261736564206f6e206163636f756e742069642e2452756e6e65727355700100050704001084205468652063757272656e742072657365727665642072756e6e6572732d75702e00590120496e76617269616e743a20416c7761797320736f72746564206261736564206f6e2072616e6b2028776f72736520746f2062657374292e2055706f6e2072656d6f76616c206f662061206d656d6265722c20746865bc206c6173742028692e652e205f626573745f292072756e6e65722d75702077696c6c206265207265706c616365642e2843616e646964617465730100f40400185901205468652070726573656e742063616e646964617465206c6973742e20412063757272656e74206d656d626572206f722072756e6e65722d75702063616e206e6576657220656e746572207468697320766563746f72d020616e6420697320616c7761797320696d706c696369746c7920617373756d656420746f20626520612063616e6469646174652e007c205365636f6e6420656c656d656e7420697320746865206465706f7369742e00b820496e76617269616e743a20416c7761797320736f72746564206261736564206f6e206163636f756e742069642e38456c656374696f6e526f756e647301001010000000000441012054686520746f74616c206e756d626572206f6620766f746520726f756e6473207468617420686176652068617070656e65642c206578636c7564696e6720746865207570636f6d696e67206f6e652e18566f74696e6701010405000d07840000000000000000000000000000000000000000000000000000000000000000000cb820566f74657320616e64206c6f636b6564207374616b65206f66206120706172746963756c617220766f7465722e00c42054574f582d4e4f54453a205341464520617320604163636f756e7449646020697320612063727970746f20686173682e01f90201f01c2050616c6c65744964f50120706872656c65637404d0204964656e74696669657220666f722074686520656c656374696f6e732d70687261676d656e2070616c6c65742773206c6f636b3443616e646964616379426f6e6418400010a5d4e8000000000000000000000004050120486f77206d7563682073686f756c64206265206c6f636b656420757020696e206f7264657220746f207375626d6974206f6e6527732063616e6469646163792e38566f74696e67426f6e64426173651840007013b72e000000000000000000000010942042617365206465706f736974206173736f636961746564207769746820766f74696e672e00550120546869732073686f756c642062652073656e7369626c79206869676820746f2065636f6e6f6d6963616c6c7920656e73757265207468652070616c6c65742063616e6e6f742062652061747461636b656420627994206372656174696e67206120676967616e746963206e756d626572206f6620766f7465732e40566f74696e67426f6e64466163746f72184000d012130000000000000000000000000411012054686520616d6f756e74206f6620626f6e642074686174206e65656420746f206265206c6f636b656420666f72206561636820766f746520283332206279746573292e38446573697265644d656d6265727310100d0000000470204e756d626572206f66206d656d6265727320746f20656c6563742e404465736972656452756e6e65727355701010140000000478204e756d626572206f662072756e6e6572735f757020746f206b6565702e305465726d4475726174696f6e1010c08901000c510120486f77206c6f6e6720656163682073656174206973206b6570742e205468697320646566696e657320746865206e65787420626c6f636b206e756d62657220617420776869636820616e20656c656374696f6e5d0120726f756e642077696c6c2068617070656e2e2049662073657420746f207a65726f2c206e6f20656c656374696f6e732061726520657665722074726967676572656420616e6420746865206d6f64756c652077696c6c5020626520696e2070617373697665206d6f64652e011107114c546563686e6963616c4d656d62657273686970014c546563686e6963616c4d656d62657273686970081c4d656d626572730100dc040004c8205468652063757272656e74206d656d626572736869702c2073746f72656420617320616e206f726465726564205665632e145072696d65000000040004a4205468652063757272656e74207072696d65206d656d6265722c206966206f6e65206578697374732e01010301fc0001150712205472656173757279012054726561737572790c3450726f706f73616c436f756e74010010100000000004a4204e756d626572206f662070726f706f73616c7320746861742068617665206265656e206d6164652e2450726f706f73616c73000104051019070400047c2050726f706f73616c7320746861742068617665206265656e206d6164652e24417070726f76616c7301001d07040004f82050726f706f73616c20696e646963657320746861742068617665206265656e20617070726f76656420627574206e6f742079657420617761726465642e010503010101183050726f706f73616c426f6e6421071050c30000085501204672616374696f6e206f6620612070726f706f73616c27732076616c756520746861742073686f756c6420626520626f6e64656420696e206f7264657220746f20706c616365207468652070726f706f73616c2e110120416e2061636365707465642070726f706f73616c2067657473207468657365206261636b2e20412072656a65637465642070726f706f73616c20646f6573206e6f742e4c50726f706f73616c426f6e644d696e696d756d18400010a5d4e80000000000000000000000044901204d696e696d756d20616d6f756e74206f662066756e647320746861742073686f756c6420626520706c6163656420696e2061206465706f73697420666f72206d616b696e6720612070726f706f73616c2e2c5370656e64506572696f64101000460500048820506572696f64206265747765656e2073756363657373697665207370656e64732e104275726e210710102700000411012050657263656e74616765206f662073706172652066756e64732028696620616e7929207468617420617265206275726e7420706572207370656e6420706572696f642e2050616c6c6574496425072070792f74727372790419012054686520747265617375727927732070616c6c65742069642c207573656420666f72206465726976696e672069747320736f7665726569676e206163636f756e742049442e304d6178417070726f76616c7310106400000004150120546865206d6178696d756d206e756d626572206f6620617070726f76616c7320746861742063616e207761697420696e20746865207370656e64696e672071756575652e0129071318436c61696d730118436c61696d731418436c61696d730001040609011804000014546f74616c0100184000000000000000000000000000000000001c56657374696e670001040609011903040010782056657374696e67207363686564756c6520666f72206120636c61696d2e0d012046697273742062616c616e63652069732074686520746f74616c20616d6f756e7420746861742073686f756c642062652068656c6420666f722076657374696e672ee4205365636f6e642062616c616e636520697320686f77206d7563682073686f756c6420626520756e6c6f636b65642070657220626c6f636b2ecc2054686520626c6f636b206e756d626572206973207768656e207468652076657374696e672073686f756c642073746172742e1c5369676e696e670001040609012103040004c0205468652073746174656d656e74206b696e642074686174206d757374206265207369676e65642c20696620616e792e24507265636c61696d73000104060009010400042d01205072652d636c61696d656420457468657265756d206163636f756e74732c20627920746865204163636f756e74204944207468617420746865792061726520636c61696d656420746f2e010903010501041850726566697828888450617920444f547320746f2074686520506f6c6b61646f74206163636f756e743a00012d07181c56657374696e67011c56657374696e67081c56657374696e6700010402003107040004d820496e666f726d6174696f6e20726567617264696e67207468652076657374696e67206f66206120676976656e206163636f756e742e3853746f7261676556657273696f6e0100390704000c7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e003101204e6577206e6574776f726b732073746172742077697468206c61746573742076657273696f6e2c2061732064657465726d696e6564206279207468652067656e65736973206275696c642e01250301110108444d696e5665737465645472616e73666572184000e40b5402000000000000000000000004e820546865206d696e696d756d20616d6f756e74207472616e7366657272656420746f2063616c6c20607665737465645f7472616e73666572602e4c4d617856657374696e675363686564756c657310101c00000000013d07191c5574696c69747900012d03011501044c626174636865645f63616c6c735f6c696d697410100dd2000004a820546865206c696d6974206f6e20746865206e756d626572206f6620626174636865642063616c6c732e0141071a204964656e7469747901204964656e7469747910284964656e746974794f660001040500450704000c210120496e666f726d6174696f6e20746861742069732070657274696e656e7420746f206964656e746966792074686520656e7469747920626568696e6420616e206163636f756e742e00c02054574f582d4e4f54453a204f4b20e2809520604163636f756e7449646020697320612073656375726520686173682e1c53757065724f660001040200c5030400086101205468652073757065722d6964656e74697479206f6620616e20616c7465726e6174697665202273756222206964656e7469747920746f676574686572207769746820697473206e616d652c2077697468696e2074686174510120636f6e746578742e20496620746865206163636f756e74206973206e6f7420736f6d65206f74686572206163636f756e742773207375622d6964656e746974792c207468656e206a75737420604e6f6e65602e18537562734f660101040500550744000000000000000000000000000000000014b820416c7465726e6174697665202273756222206964656e746974696573206f662074686973206163636f756e742e001d0120546865206669727374206974656d20697320746865206465706f7369742c20746865207365636f6e64206973206120766563746f72206f6620746865206163636f756e74732e00c02054574f582d4e4f54453a204f4b20e2809520604163636f756e7449646020697320612073656375726520686173682e285265676973747261727301005d070400104d012054686520736574206f6620726567697374726172732e204e6f7420657870656374656420746f206765742076657279206269672061732063616e206f6e6c79206265206164646564207468726f7567682061a8207370656369616c206f726967696e20286c696b656c79206120636f756e63696c206d6f74696f6e292e0029012054686520696e64657820696e746f20746869732063616e206265206361737420746f2060526567697374726172496e6465786020746f2067657420612076616c69642076616c75652e013503011901183042617369634465706f7369741840007db52a2f000000000000000000000004d42054686520616d6f756e742068656c64206f6e206465706f73697420666f7220612072656769737465726564206964656e74697479304669656c644465706f736974184000cd5627000000000000000000000000042d012054686520616d6f756e742068656c64206f6e206465706f73697420706572206164646974696f6e616c206669656c6420666f7220612072656769737465726564206964656e746974792e445375624163636f756e744465706f736974184080f884b02e00000000000000000000000c65012054686520616d6f756e742068656c64206f6e206465706f73697420666f7220612072656769737465726564207375626163636f756e742e20546869732073686f756c64206163636f756e7420666f7220746865206661637465012074686174206f6e652073746f72616765206974656d27732076616c75652077696c6c20696e637265617365206279207468652073697a65206f6620616e206163636f756e742049442c20616e642074686572652077696c6c350120626520616e6f746865722074726965206974656d2077686f73652076616c7565206973207468652073697a65206f6620616e206163636f756e7420494420706c75732033322062797465732e384d61785375624163636f756e7473101064000000040d0120546865206d6178696d756d206e756d626572206f66207375622d6163636f756e747320616c6c6f77656420706572206964656e746966696564206163636f756e742e4c4d61784164646974696f6e616c4669656c6473101064000000086501204d6178696d756d206e756d626572206f66206164646974696f6e616c206669656c64732074686174206d61792062652073746f72656420696e20616e2049442e204e656564656420746f20626f756e642074686520492f4fe020726571756972656420746f2061636365737320616e206964656e746974792c206275742063616e2062652070726574747920686967682e344d617852656769737472617273101014000000085101204d61786d696d756d206e756d626572206f66207265676973747261727320616c6c6f77656420696e207468652073797374656d2e204e656564656420746f20626f756e642074686520636f6d706c65786974797c206f662c20652e672e2c207570646174696e67206a756467656d656e74732e016d071c1450726f7879011450726f7879081c50726f78696573010104050071074400000000000000000000000000000000000845012054686520736574206f66206163636f756e742070726f786965732e204d61707320746865206163636f756e74207768696368206861732064656c65676174656420746f20746865206163636f756e7473210120776869636820617265206265696e672064656c65676174656420746f2c20746f67657468657220776974682074686520616d6f756e742068656c64206f6e206465706f7369742e34416e6e6f756e63656d656e74730101040500810744000000000000000000000000000000000004ac2054686520616e6e6f756e63656d656e7473206d616465206279207468652070726f787920286b6579292e01d503011d01184050726f78794465706f7369744261736518400084b2952e000000000000000000000010110120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e6720612070726f78792e00010120546869732069732068656c6420666f7220616e206164646974696f6e616c2073746f72616765206974656d2077686f73652076616c75652073697a652069732501206073697a656f662842616c616e6365296020627974657320616e642077686f7365206b65792073697a65206973206073697a656f66284163636f756e74496429602062797465732e4850726f78794465706f736974466163746f7218408066ab1300000000000000000000000014bc2054686520616d6f756e74206f662063757272656e6379206e6565646564207065722070726f78792061646465642e00350120546869732069732068656c6420666f7220616464696e6720333220627974657320706c757320616e20696e7374616e6365206f66206050726f78795479706560206d6f726520696e746f20616101207072652d6578697374696e672073746f726167652076616c75652e20546875732c207768656e20636f6e6669677572696e67206050726f78794465706f736974466163746f7260206f6e652073686f756c642074616b65f420696e746f206163636f756e7420603332202b2070726f78795f747970652e656e636f646528292e6c656e282960206279746573206f6620646174612e284d617850726f7869657310102000000004f020546865206d6178696d756d20616d6f756e74206f662070726f7869657320616c6c6f77656420666f7220612073696e676c65206163636f756e742e284d617850656e64696e6710102000000004450120546865206d6178696d756d20616d6f756e74206f662074696d652d64656c6179656420616e6e6f756e63656d656e747320746861742061726520616c6c6f77656420746f2062652070656e64696e672e5c416e6e6f756e63656d656e744465706f7369744261736518400084b2952e000000000000000000000010310120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e6720616e20616e6e6f756e63656d656e742e00490120546869732069732068656c64207768656e2061206e65772073746f72616765206974656d20686f6c64696e672061206042616c616e636560206973206372656174656420287479706963616c6c7920313620206279746573292e64416e6e6f756e63656d656e744465706f736974466163746f72184000cd562700000000000000000000000010d42054686520616d6f756e74206f662063757272656e6379206e65656465642070657220616e6e6f756e63656d656e74206d6164652e00590120546869732069732068656c6420666f7220616464696e6720616e20604163636f756e744964602c2060486173686020616e642060426c6f636b4e756d6265726020287479706963616c6c79203638206279746573298c20696e746f2061207072652d6578697374696e672073746f726167652076616c75652e0191071d204d756c746973696701204d756c746973696708244d756c746973696773000108050295079907040004942054686520736574206f66206f70656e206d756c7469736967206f7065726174696f6e732e1443616c6c7300010406049d0704000001dd030129010c2c4465706f736974426173651840008c61c52e000000000000000000000018590120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e672061206d756c746973696720657865637574696f6e206f7220746f842073746f726520612064697370617463682063616c6c20666f72206c617465722e00010120546869732069732068656c6420666f7220616e206164646974696f6e616c2073746f72616765206974656d2077686f73652076616c75652073697a652069733101206034202b2073697a656f662828426c6f636b4e756d6265722c2042616c616e63652c204163636f756e74496429296020627974657320616e642077686f7365206b65792073697a652069738020603332202b2073697a656f66284163636f756e74496429602062797465732e344465706f736974466163746f72184000d012130000000000000000000000000c55012054686520616d6f756e74206f662063757272656e6379206e65656465642070657220756e6974207468726573686f6c64207768656e206372656174696e672061206d756c746973696720657865637574696f6e2e00250120546869732069732068656c6420666f7220616464696e67203332206279746573206d6f726520696e746f2061207072652d6578697374696e672073746f726167652076616c75652e384d61785369676e61746f72696573250108640004ec20546865206d6178696d756d20616d6f756e74206f66207369676e61746f7269657320616c6c6f77656420696e20746865206d756c74697369672e01a1071e20426f756e746965730120426f756e74696573102c426f756e7479436f756e74010010100000000004c0204e756d626572206f6620626f756e74792070726f706f73616c7320746861742068617665206265656e206d6164652e20426f756e746965730001040510a5070400047820426f756e7469657320746861742068617665206265656e206d6164652e48426f756e74794465736372697074696f6e730001040510280400048020546865206465736372697074696f6e206f66206561636820626f756e74792e3c426f756e7479417070726f76616c7301007502040004ec20426f756e747920696e646963657320746861742068617665206265656e20617070726f76656420627574206e6f74207965742066756e6465642e01e5030131011c44426f756e74794465706f73697442617365184000e40b5402000000000000000000000004e82054686520616d6f756e742068656c64206f6e206465706f73697420666f7220706c6163696e67206120626f756e74792070726f706f73616c2e60426f756e74794465706f7369745061796f757444656c6179101000c20100045901205468652064656c617920706572696f6420666f72207768696368206120626f756e74792062656e6566696369617279206e65656420746f2077616974206265666f726520636c61696d20746865207061796f75742e48426f756e7479557064617465506572696f64101080c61300046c20426f756e7479206475726174696f6e20696e20626c6f636b732e50426f756e747943757261746f724465706f73697421071020a107000849012050657263656e74616765206f66207468652063757261746f722066656520746861742077696c6c20626520726573657276656420757066726f6e74206173206465706f73697420666f7220626f756e7479242063757261746f722e48426f756e747956616c75654d696e696d756d184000e876481700000000000000000000000470204d696e696d756d2076616c756520666f72206120626f756e74792e48446174614465706f73697450657242797465184000e1f5050000000000000000000000000461012054686520616d6f756e742068656c64206f6e206465706f7369742070657220627974652077697468696e2074686520746970207265706f727420726561736f6e206f7220626f756e7479206465736372697074696f6e2e4c4d6178696d756d526561736f6e4c656e6774681010004000000488204d6178696d756d2061636365707461626c6520726561736f6e206c656e6774682e01ad072210546970730110546970730810546970730001040524b10704000c650120546970734d6170207468617420617265206e6f742079657420636f6d706c657465642e204b65796564206279207468652068617368206f66206028726561736f6e2c2077686f29602066726f6d207468652076616c75652e3d012054686973206861732074686520696e73656375726520656e756d657261626c6520686173682066756e6374696f6e2073696e636520746865206b657920697473656c6620697320616c7265616479802067756172616e7465656420746f20626520612073656375726520686173682e1c526561736f6e7300010406242804000849012053696d706c6520707265696d616765206c6f6f6b75702066726f6d2074686520726561736f6e2773206861736820746f20746865206f726967696e616c20646174612e20416761696e2c2068617320616e610120696e73656375726520656e756d657261626c6520686173682073696e636520746865206b65792069732067756172616e7465656420746f2062652074686520726573756c74206f6620612073656375726520686173682e01e903013501144c4d6178696d756d526561736f6e4c656e6774681010004000000488204d6178696d756d2061636365707461626c6520726561736f6e206c656e6774682e48446174614465706f73697450657242797465184000e1f5050000000000000000000000000461012054686520616d6f756e742068656c64206f6e206465706f7369742070657220627974652077697468696e2074686520746970207265706f727420726561736f6e206f7220626f756e7479206465736372697074696f6e2e30546970436f756e74646f776e1010403800000445012054686520706572696f6420666f722077686963682061207469702072656d61696e73206f70656e20616674657220697320686173206163686965766564207468726573686f6c6420746970706572732e3454697046696e6465727346656571020414043501205468652070657263656e74206f66207468652066696e616c2074697020776869636820676f657320746f20746865206f726967696e616c207265706f72746572206f6620746865207469702e505469705265706f72744465706f73697442617365184000e40b5402000000000000000000000004d42054686520616d6f756e742068656c64206f6e206465706f73697420666f7220706c6163696e67206120746970207265706f72742e01b5072368456c656374696f6e50726f76696465724d756c746950686173650168456c656374696f6e50726f76696465724d756c746950686173652814526f756e64010010100100000018ac20496e7465726e616c20636f756e74657220666f7220746865206e756d626572206f6620726f756e64732e00550120546869732069732075736566756c20666f722064652d6475706c69636174696f6e206f66207472616e73616374696f6e73207375626d697474656420746f2074686520706f6f6c2c20616e642067656e6572616c6c20646961676e6f7374696373206f66207468652070616c6c65742e004d012054686973206973206d6572656c7920696e6372656d656e746564206f6e6365207065722065766572792074696d65207468617420616e20757073747265616d2060656c656374602069732063616c6c65642e3043757272656e7450686173650100b9070400043c2043757272656e742070686173652e38517565756564536f6c7574696f6e0000c1070400043d012043757272656e74206265737420736f6c7574696f6e2c207369676e6564206f7220756e7369676e65642c2071756575656420746f2062652072657475726e65642075706f6e2060656c656374602e20536e617073686f740000c50704000c7020536e617073686f742064617461206f662074686520726f756e642e005d01205468697320697320637265617465642061742074686520626567696e6e696e67206f6620746865207369676e656420706861736520616e6420636c65617265642075706f6e2063616c6c696e672060656c656374602e38446573697265645461726765747300001004000ccc2044657369726564206e756d626572206f66207461726765747320746f20656c65637420666f72207468697320726f756e642e00a8204f6e6c7920657869737473207768656e205b60536e617073686f74605d2069732070726573656e742e40536e617073686f744d657461646174610000c50404000c9820546865206d65746164617461206f6620746865205b60526f756e64536e617073686f74605d00a8204f6e6c7920657869737473207768656e205b60536e617073686f74605d2069732070726573656e742e645369676e65645375626d697373696f6e4e657874496e646578010010100000000024010120546865206e65787420696e64657820746f2062652061737369676e656420746f20616e20696e636f6d696e67207369676e6564207375626d697373696f6e2e007501204576657279206163636570746564207375626d697373696f6e2069732061737369676e6564206120756e6971756520696e6465783b207468617420696e64657820697320626f756e6420746f207468617420706172746963756c61726501207375626d697373696f6e20666f7220746865206475726174696f6e206f662074686520656c656374696f6e2e204f6e20656c656374696f6e2066696e616c697a6174696f6e2c20746865206e65787420696e6465782069733020726573657420746f20302e0069012057652063616e2774206a7573742075736520605369676e65645375626d697373696f6e496e64696365732e6c656e2829602c206265636175736520746861742773206120626f756e646564207365743b20706173742069747359012063617061636974792c2069742077696c6c2073696d706c792073617475726174652e2057652063616e2774206a7573742069746572617465206f76657220605369676e65645375626d697373696f6e734d6170602cf4206265636175736520697465726174696f6e20697320736c6f772e20496e73746561642c2077652073746f7265207468652076616c756520686572652e5c5369676e65645375626d697373696f6e496e64696365730100d1070400184d01204120736f727465642c20626f756e64656420736574206f6620602873636f72652c20696e64657829602c20776865726520656163682060696e6465786020706f696e747320746f20612076616c756520696e5420605369676e65645375626d697373696f6e73602e007101205765206e65766572206e65656420746f2070726f63657373206d6f7265207468616e20612073696e676c65207369676e6564207375626d697373696f6e20617420612074696d652e205369676e6564207375626d697373696f6e7375012063616e206265207175697465206c617267652c20736f2077652772652077696c6c696e6720746f207061792074686520636f7374206f66206d756c7469706c6520646174616261736520616363657373657320746f206163636573732101207468656d206f6e6520617420612074696d6520696e7374656164206f662072656164696e6720616e64206465636f64696e6720616c6c206f66207468656d206174206f6e63652e505369676e65645375626d697373696f6e734d61700101040510e10711020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000001c7420556e636865636b65642c207369676e656420736f6c7574696f6e732e00690120546f676574686572207769746820605375626d697373696f6e496e6469636573602c20746869732073746f726573206120626f756e64656420736574206f6620605369676e65645375626d697373696f6e7360207768696c65ec20616c6c6f77696e6720757320746f206b656570206f6e6c7920612073696e676c65206f6e6520696e206d656d6f727920617420612074696d652e0069012054776f78206e6f74653a20746865206b6579206f6620746865206d617020697320616e206175746f2d696e6372656d656e74696e6720696e6465782077686963682075736572732063616e6e6f7420696e7370656374206f72f4206166666563743b2077652073686f756c646e2774206e65656420612063727970746f67726170686963616c6c7920736563757265206861736865722e544d696e696d756d556e7472757374656453636f72650000c1040400105d0120546865206d696e696d756d2073636f7265207468617420656163682027756e747275737465642720736f6c7574696f6e206d7573742061747461696e20696e206f7264657220746f20626520636f6e7369646572656428206665617369626c652e00b82043616e206265207365742076696120607365745f6d696e696d756d5f756e747275737465645f73636f7265602e01ed030139013834556e7369676e656450686173651010580200000480204475726174696f6e206f662074686520756e7369676e65642070686173652e2c5369676e656450686173651010580200000478204475726174696f6e206f6620746865207369676e65642070686173652e70536f6c7574696f6e496d70726f76656d656e745468726573686f6c64b9011020a10700084d0120546865206d696e696d756d20616d6f756e74206f6620696d70726f76656d656e7420746f2074686520736f6c7574696f6e2073636f7265207468617420646566696e6573206120736f6c7574696f6e206173642022626574746572222028696e20616e79207068617365292e384f6666636861696e52657065617410100500000010b42054686520726570656174207468726573686f6c64206f6620746865206f6666636861696e20776f726b65722e00610120466f72206578616d706c652c20696620697420697320352c2074686174206d65616e732074686174206174206c65617374203520626c6f636b732077696c6c20656c61707365206265747765656e20617474656d7074738420746f207375626d69742074686520776f726b6572277320736f6c7574696f6e2e3c4d696e657254785072696f72697479202065666666666666e604250120546865207072696f72697479206f662074686520756e7369676e6564207472616e73616374696f6e207375626d697474656420696e2074686520756e7369676e65642d7068617365384d696e65724d61785765696768742020c08466655701000010b8204d6178696d756d20776569676874207468617420746865206d696e65722073686f756c6420636f6e73756d652e00550120546865206d696e65722077696c6c20656e7375726520746861742074686520746f74616c20776569676874206f662074686520756e7369676e656420736f6c7574696f6e2077696c6c206e6f7420657863656564d820746869732076616c75652c206261736564206f6e205b60576569676874496e666f3a3a7375626d69745f756e7369676e6564605d2e505369676e65644d61785375626d697373696f6e731010100000001ce4204d6178696d756d206e756d626572206f66207369676e6564207375626d697373696f6e7320746861742063616e206265207175657565642e005501204974206973206265737420746f2061766f69642061646a757374696e67207468697320647572696e6720616e20656c656374696f6e2c20617320697420696d706163747320646f776e73747265616d2064617461650120737472756374757265732e20496e20706172746963756c61722c20605369676e65645375626d697373696f6e496e64696365733c543e6020697320626f756e646564206f6e20746869732076616c75652e20496620796f75f42075706461746520746869732076616c756520647572696e6720616e20656c656374696f6e2c20796f75205f6d7573745f20656e7375726520746861744d0120605369676e65645375626d697373696f6e496e64696365732e6c656e282960206973206c657373207468616e206f7220657175616c20746f20746865206e65772076616c75652e204f74686572776973652cf020617474656d70747320746f207375626d6974206e657720736f6c7574696f6e73206d617920636175736520612072756e74696d652070616e69632e3c5369676e65644d61785765696768742020c0846665570100000c94204d6178696d756d20776569676874206f662061207369676e656420736f6c7574696f6e2e00fc20546869732073686f756c642070726f6261626c792062652073696d696c617220746f205b60436f6e6669673a3a4d696e65724d6178576569676874605d2e405369676e656452657761726442617365184000e40b54020000000000000000000000048820426173652072657761726420666f722061207369676e656420736f6c7574696f6e445369676e65644465706f73697442617365184000a0db215d000000000000000000000004902042617365206465706f73697420666f722061207369676e656420736f6c7574696f6e2e445369676e65644465706f736974427974651840787d010000000000000000000000000004a0205065722d62797465206465706f73697420666f722061207369676e656420736f6c7574696f6e2e4c5369676e65644465706f73697457656967687418400000000000000000000000000000000004a8205065722d776569676874206465706f73697420666f722061207369676e656420736f6c7574696f6e2e54566f746572536e617073686f74506572426c6f636b1010e4570000185d0120546865206d6178696d756d206e756d626572206f6620766f7465727320746f2070757420696e2074686520736e617073686f742e20417420746865206d6f6d656e742c20736e617073686f747320617265206f6e6c796101206f76657220612073696e676c6520626c6f636b2c20627574206f6e6365206d756c74692d626c6f636b20656c656374696f6e732061726520696e74726f647563656420746865792077696c6c2074616b6520706c61636558206f766572206d756c7469706c6520626c6f636b732e00310120416c736f2c206e6f746520746865206461746120747970653a2049662074686520766f746572732061726520726570726573656e746564206279206120607533326020696e206074797065390120436f6d70616374536f6c7574696f6e602c207468652073616d652060753332602069732075736564206865726520746f20656e7375726520626f756e647320617265207265737065637465642e384d696e65724d61784c656e67746810100000360010fc204d6178696d756d206c656e6774682028627974657329207468617420746865206d696e656420736f6c7574696f6e2073686f756c6420636f6e73756d652e00550120546865206d696e65722077696c6c20656e7375726520746861742074686520746f74616c206c656e677468206f662074686520756e7369676e656420736f6c7574696f6e2077696c6c206e6f74206578636565643020746869732076616c75652e01e507244050617261636861696e734f726967696e00000000003234436f6e66696775726174696f6e0134436f6e66696775726174696f6e0830416374697665436f6e6669670100e907e90200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000100000001000000000000000000060000006400000002000000c8000000010000000000000000000000000000000000000000c817a80400000004c8205468652061637469766520636f6e66696775726174696f6e20666f72207468652063757272656e742073657373696f6e2e3450656e64696e67436f6e6669670001040510e907040004d42050656e64696e6720636f6e66696775726174696f6e2028696620616e792920666f7220746865206e6578742073657373696f6e2e01d904000001ed07332c5061726173536861726564012c50617261735368617265640c4c43757272656e7453657373696f6e496e6465780100101000000000046c205468652063757272656e742073657373696f6e20696e6465782e5841637469766556616c696461746f72496e64696365730100f107040008090120416c6c207468652076616c696461746f7273206163746976656c792070617274696369706174696e6720696e2070617261636861696e20636f6e73656e7375732eb020496e64696365732061726520696e746f207468652062726f616465722076616c696461746f72207365742e4c41637469766556616c696461746f724b6579730100f5070400088101205468652070617261636861696e206174746573746174696f6e206b657973206f66207468652076616c696461746f7273206163746976656c792070617274696369706174696e6720696e2070617261636861696e20636f6e73656e7375732ef020546869732073686f756c64206265207468652073616d65206c656e677468206173206041637469766556616c696461746f72496e6469636573602e01dd04000000343450617261496e636c7573696f6e013450617261496e636c7573696f6e0c54417661696c6162696c6974794269746669656c6473000104050105f907040004650120546865206c6174657374206269746669656c6420666f7220656163682076616c696461746f722c20726566657272656420746f20627920746865697220696e64657820696e207468652076616c696461746f72207365742e4c50656e64696e67417661696c6162696c697479000104055101fd07040004b42043616e646964617465732070656e64696e6720617661696c6162696c6974792062792060506172614964602e7850656e64696e67417661696c6162696c697479436f6d6d69746d656e7473000104055101150504000405012054686520636f6d6d69746d656e7473206f662063616e646964617465732070656e64696e6720617661696c6162696c6974792c2062792060506172614964602e01e10401450100010108353050617261496e686572656e74013050617261496e686572656e740420496e636c75646564000080040018ec20576865746865722074686520706172617320696e686572656e742077617320696e636c756465642077697468696e207468697320626c6f636b2e0069012054686520604f7074696f6e3c28293e60206973206566666563746976656c7920612060626f6f6c602c20627574206974206e6576657220686974732073746f7261676520696e2074686520604e6f6e65602076617269616e74bc2064756520746f207468652067756172616e74656573206f66204652414d4527732073746f7261676520415049732e004901204966207468697320697320604e6f6e65602061742074686520656e64206f662074686520626c6f636b2c2077652070616e696320616e642072656e6465722074686520626c6f636b20696e76616c69642e01e50400000105083634506172615363686564756c65720134506172615363686564756c6572183c56616c696461746f7247726f757073010009080400186d0120416c6c207468652076616c696461746f722067726f7570732e204f6e6520666f72206561636820636f72652e20496e64696365732061726520696e746f206041637469766556616c696461746f727360202d206e6f74207468656d012062726f6164657220736574206f6620506f6c6b61646f742076616c696461746f72732c2062757420696e7374656164206a7573742074686520737562736574207573656420666f722070617261636861696e7320647572696e673820746869732073657373696f6e2e00810120426f756e643a20546865206e756d626572206f6620636f726573206973207468652073756d206f6620746865206e756d62657273206f662070617261636861696e7320616e642070617261746872656164206d756c7469706c65786572732e810120526561736f6e61626c792c203130302d313030302e2054686520646f6d696e616e7420666163746f7220697320746865206e756d626572206f662076616c696461746f72733a207361666520757070657220626f756e642061742031306b2e3c50617261746872656164517565756501000d081400000000001019012041207175657565206f66207570636f6d696e6720636c61696d7320616e6420776869636820636f726520746865792073686f756c64206265206d6170706564206f6e746f2e00150120546865206e756d626572206f662071756575656420636c61696d7320697320626f756e6465642061742074686520607363686564756c696e675f6c6f6f6b6168656164605501206d756c7469706c69656420627920746865206e756d626572206f662070617261746872656164206d756c7469706c6578657220636f7265732e20526561736f6e61626c792c203130202a203530203d203530302e44417661696c6162696c697479436f726573010021080400209d01204f6e6520656e74727920666f72206561636820617661696c6162696c69747920636f72652e20456e74726965732061726520604e6f6e65602069662074686520636f7265206973206e6f742063757272656e746c79206f636375706965642e2043616e206265c82074656d706f726172696c792060536f6d6560206966207363686564756c656420627574206e6f74206f636375706965642e41012054686520692774682070617261636861696e2062656c6f6e677320746f20746865206927746820636f72652c2077697468207468652072656d61696e696e6720636f72657320616c6c206265696e676420706172617468726561642d6d756c7469706c65786572732e00d820426f756e64656420627920746865206d6178696d756d206f6620656974686572206f662074686573652074776f2076616c7565733ae42020202a20546865206e756d626572206f662070617261636861696e7320616e642070617261746872656164206d756c7469706c657865727345012020202a20546865206e756d626572206f662076616c696461746f727320646976696465642062792060636f6e66696775726174696f6e2e6d61785f76616c696461746f72735f7065725f636f7265602e5050617261746872656164436c61696d496e64657801002d08040010590120416e20696e646578207573656420746f20656e737572652074686174206f6e6c79206f6e6520636c61696d206f6e206120706172617468726561642065786973747320696e20746865207175657565206f72206973b42063757272656e746c79206265696e672068616e646c656420627920616e206f6363757069656420636f72652e007d0120426f756e64656420627920746865206e756d626572206f66207061726174687265616420636f72657320616e64207363686564756c696e67206c6f6f6b61686561642e20526561736f6e61626c792c203130202a203530203d203530302e4453657373696f6e5374617274426c6f636b010010100000000018a5012054686520626c6f636b206e756d626572207768657265207468652073657373696f6e207374617274206f636375727265642e205573656420746f20747261636b20686f77206d616e792067726f757020726f746174696f6e732068617665206f636375727265642e005501204e6f7465207468617420696e2074686520636f6e74657874206f662070617261636861696e73206d6f64756c6573207468652073657373696f6e206368616e6765206973207369676e616c656420647572696e6761012074686520626c6f636b20616e6420656e61637465642061742074686520656e64206f662074686520626c6f636b20286174207468652066696e616c697a6174696f6e2073746167652c20746f206265206578616374292e5901205468757320666f7220616c6c20696e74656e747320616e6420707572706f7365732074686520656666656374206f66207468652073657373696f6e206368616e6765206973206f6273657276656420617420746865650120626c6f636b20666f6c6c6f77696e67207468652073657373696f6e206368616e67652c20626c6f636b206e756d626572206f66207768696368207765207361766520696e20746869732073746f726167652076616c75652e245363686564756c656401003108040018e02043757272656e746c79207363686564756c656420636f726573202d20667265652062757420757020746f206265206f636375706965642e004d0120426f756e64656420627920746865206e756d626572206f6620636f7265733a206f6e6520666f7220656163682070617261636861696e20616e642070617261746872656164206d756c7469706c657865722e00fd01205468652076616c756520636f6e7461696e656420686572652077696c6c206e6f742062652076616c69642061667465722074686520656e64206f66206120626c6f636b2e2052756e74696d6520415049732073686f756c64206265207573656420746f2064657465726d696e65207363686564756c656420636f7265732f6020666f7220746865207570636f6d696e6720626c6f636b2e000000003714506172617301145061726173442850617261636861696e7301002d08040004350120416c6c2070617261636861696e732e204f72646572656420617363656e64696e672062792060506172614964602e20506172617468726561647320617265206e6f7420696e636c756465642e38506172614c6966656379636c65730001040551013d08040004bc205468652063757272656e74206c6966656379636c65206f66206120616c6c206b6e6f776e2050617261204944732e1448656164730001040551016901040004a02054686520686561642d64617461206f66206576657279207265676973746572656420706172612e3c43757272656e74436f646548617368000104055101650104000cb4205468652076616c69646174696f6e20636f64652068617368206f66206576657279206c69766520706172612e00e420436f72726573706f6e64696e6720636f64652063616e206265207265747269657665642077697468205b60436f6465427948617368605d2e3050617374436f646548617368000104054108650104001061012041637475616c207061737420636f646520686173682c20696e646963617465642062792074686520706172612069642061732077656c6c2061732074686520626c6f636b206e756d6265722061742077686963682069744420626563616d65206f757464617465642e00e420436f72726573706f6e64696e6720636f64652063616e206265207265747269657665642077697468205b60436f6465427948617368605d2e3050617374436f64654d65746101010405510145080800000c4901205061737420636f6465206f662070617261636861696e732e205468652070617261636861696e73207468656d73656c766573206d6179206e6f74206265207265676973746572656420616e796d6f72652c49012062757420776520616c736f206b65657020746865697220636f6465206f6e2d636861696e20666f72207468652073616d6520616d6f756e74206f662074696d65206173206f7574646174656420636f6465b420746f206b65657020697420617661696c61626c6520666f72207365636f6e6461727920636865636b6572732e3c50617374436f64655072756e696e6701005108040018a1012057686963682070617261732068617665207061737420636f64652074686174206e65656473207072756e696e6720616e64207468652072656c61792d636861696e20626c6f636b2061742077686963682074686520636f646520776173207265706c616365642e8101204e6f746520746861742074686973206973207468652061637475616c20686569676874206f662074686520696e636c7564656420626c6f636b2c206e6f74207468652065787065637465642068656967687420617420776869636820746865ec20636f6465207570677261646520776f756c64206265206170706c6965642c20616c74686f7567682074686579206d617920626520657175616c2e9101205468697320697320746f20656e737572652074686520656e7469726520616363657074616e636520706572696f6420697320636f76657265642c206e6f7420616e206f666673657420616363657074616e636520706572696f64207374617274696e6749012066726f6d207468652074696d65206174207768696368207468652070617261636861696e20706572636569766573206120636f6465207570677261646520617320686176696e67206f636375727265642e5501204d756c7469706c6520656e747269657320666f7220612073696e676c65207061726120617265207065726d69747465642e204f72646572656420617363656e64696e6720627920626c6f636b206e756d6265722e48467574757265436f646555706772616465730001040551011004000c29012054686520626c6f636b206e756d6265722061742077686963682074686520706c616e6e656420636f6465206368616e676520697320657870656374656420666f72206120706172612e650120546865206368616e67652077696c6c206265206170706c696564206166746572207468652066697273742070617261626c6f636b20666f72207468697320494420696e636c75646564207768696368206578656375746573190120696e2074686520636f6e74657874206f6620612072656c617920636861696e20626c6f636b20776974682061206e756d626572203e3d206065787065637465645f6174602e38467574757265436f646548617368000104055101650104000c9c205468652061637475616c2066757475726520636f64652068617368206f66206120706172612e00e420436f72726573706f6e64696e6720636f64652063616e206265207265747269657665642077697468205b60436f6465427948617368605d2e5055706772616465476f41686561645369676e616c0001040551015508040024a10120546869732069732075736564206279207468652072656c61792d636861696e20746f20636f6d6d756e696361746520746f20612070617261636861696e206120676f2d6168656164207769746820696e2074686520757067726164652070726f6365647572652e00750120546869732076616c756520697320616273656e74207768656e20746865726520617265206e6f207570677261646573207363686564756c6564206f7220647572696e67207468652074696d65207468652072656c617920636861696e7d0120706572666f726d732074686520636865636b732e20497420697320736574206174207468652066697273742072656c61792d636861696e20626c6f636b207768656e2074686520636f72726573706f6e64696e672070617261636861696e65012063616e207377697463682069747320757067726164652066756e6374696f6e2e20417320736f6f6e206173207468652070617261636861696e277320626c6f636b20697320696e636c756465642c207468652076616c756558206765747320726573657420746f20604e6f6e65602e006501204e4f544520746861742074686973206669656c6420697320757365642062792070617261636861696e7320766961206d65726b6c652073746f726167652070726f6f66732c207468657265666f7265206368616e67696e67c42074686520666f726d61742077696c6c2072657175697265206d6967726174696f6e206f662070617261636861696e732e60557067726164655265737472696374696f6e5369676e616c0001040551015908040024690120546869732069732075736564206279207468652072656c61792d636861696e20746f20636f6d6d756e6963617465207468617420746865726520617265207265737472696374696f6e7320666f7220706572666f726d696e677c20616e207570677261646520666f7220746869732070617261636861696e2e0059012054686973206d617920626520612062656361757365207468652070617261636861696e20776169747320666f7220746865207570677261646520636f6f6c646f776e20746f206578706972652e20416e6f746865726d0120706f74656e7469616c207573652063617365206973207768656e2077652077616e7420746f20706572666f726d20736f6d65206d61696e74656e616e63652028737563682061732073746f72616765206d6967726174696f6e29e020776520636f756c6420726573747269637420757067726164657320746f206d616b65207468652070726f636573732073696d706c65722e006501204e4f544520746861742074686973206669656c6420697320757365642062792070617261636861696e7320766961206d65726b6c652073746f726167652070726f6f66732c207468657265666f7265206368616e67696e67c42074686520666f726d61742077696c6c2072657175697265206d6967726174696f6e206f662070617261636861696e732e4055706772616465436f6f6c646f776e730100510804000c510120546865206c697374206f662070617261636861696e73207468617420617265206177616974696e6720666f722074686569722075706772616465207265737472696374696f6e20746f20636f6f6c646f776e2e008c204f72646572656420617363656e64696e6720627920626c6f636b206e756d6265722e405570636f6d696e67557067726164657301005108040010590120546865206c697374206f66207570636f6d696e6720636f64652075706772616465732e2045616368206974656d20697320612070616972206f66207768696368207061726120706572666f726d73206120636f6465e8207570677261646520616e642061742077686963682072656c61792d636861696e20626c6f636b2069742069732065787065637465642061742e008c204f72646572656420617363656e64696e6720627920626c6f636b206e756d6265722e30416374696f6e73517565756501010405102d0804000415012054686520616374696f6e7320746f20706572666f726d20647572696e6720746865207374617274206f6620612073706563696669632073657373696f6e20696e6465782e505570636f6d696e67506172617347656e657369730001040551015d08040004a0205570636f6d696e6720706172617320696e7374616e74696174696f6e20617267756d656e74732e38436f64654279486173685265667301010406650110100000000004290120546865206e756d626572206f66207265666572656e6365206f6e207468652076616c69646174696f6e20636f646520696e205b60436f6465427948617368605d2073746f726167652e28436f64654279486173680001040665012505040010902056616c69646174696f6e20636f64652073746f7265642062792069747320686173682e00310120546869732073746f7261676520697320636f6e73697374656e742077697468205b60467574757265436f646548617368605d2c205b6043757272656e74436f646548617368605d20616e6448205b6050617374436f646548617368605d2e01510501750100016108382c496e697469616c697a6572012c496e697469616c697a65720838486173496e697469616c697a656400008004002021012057686574686572207468652070617261636861696e73206d6f64756c65732068617665206265656e20696e697469616c697a65642077697468696e207468697320626c6f636b2e0025012053656d616e746963616c6c7920612060626f6f6c602c2062757420746869732067756172616e746565732069742073686f756c64206e65766572206869742074686520747269652c6901206173207468697320697320636c656172656420696e20606f6e5f66696e616c697a656020616e64204672616d65206f7074696d697a657320604e6f6e65602076616c75657320746f20626520656d7074792076616c7565732e007d0120417320612060626f6f6c602c20607365742866616c7365296020616e64206072656d6f766528296020626f7468206c65616420746f20746865206e6578742060676574282960206265696e672066616c73652c20627574206f6e65206f667901207468656d2077726974657320746f20746865207472696520616e64206f6e6520646f6573206e6f742e205468697320636f6e667573696f6e206d616b657320604f7074696f6e3c28293e60206d6f7265207375697461626c6520666f7280207468652073656d616e74696373206f662074686973207661726961626c652e58427566666572656453657373696f6e4368616e6765730100650804001c59012042756666657265642073657373696f6e206368616e67657320616c6f6e6720776974682074686520626c6f636b206e756d62657220617420776869636820746865792073686f756c64206265206170706c6965642e005d01205479706963616c6c7920746869732077696c6c20626520656d707479206f72206f6e6520656c656d656e74206c6f6e672e2041706172742066726f6d20746861742074686973206974656d206e65766572206869747334207468652073746f726167652e00690120486f776576657220746869732069732061206056656360207265676172646c65737320746f2068616e646c6520766172696f757320656467652063617365732074686174206d6179206f636375722061742072756e74696d65c0207570677261646520626f756e646172696573206f7220696620676f7665726e616e636520696e74657276656e65732e015505000000390c446d70010c446d700854446f776e776172644d6573736167655175657565730101040551016d08040004d02054686520646f776e77617264206d657373616765732061646472657373656420666f722061206365727461696e20706172612e64446f776e776172644d65737361676551756575654865616473010104055101248000000000000000000000000000000000000000000000000000000000000000001c25012041206d617070696e6720746861742073746f7265732074686520646f776e77617264206d657373616765207175657565204d5143206865616420666f72206561636820706172612e00902045616368206c696e6b20696e207468697320636861696e20686173206120666f726d3a78206028707265765f686561642c20422c2048284d2929602c207768657265e8202d2060707265765f68656164603a206973207468652070726576696f757320686561642068617368206f72207a65726f206966206e6f6e652e2101202d206042603a206973207468652072656c61792d636861696e20626c6f636b206e756d62657220696e2077686963682061206d6573736167652077617320617070656e6465642ed4202d206048284d29603a206973207468652068617368206f6620746865206d657373616765206265696e6720617070656e6465642e0159050000003a0c556d70010c556d70184c52656c61794469737061746368517565756573010104055101c501040018710120546865206d657373616765732077616974696e6720746f2062652068616e646c6564206279207468652072656c61792d636861696e206f726967696e6174696e672066726f6d2061206365727461696e2070617261636861696e2e007901204e6f7465207468617420736f6d6520757077617264206d65737361676573206d696768742068617665206265656e20616c72656164792070726f6365737365642062792074686520696e636c7573696f6e206c6f6769632e20452e672e74206368616e6e656c206d616e6167656d656e74206d657373616765732e00a820546865206d65737361676573206172652070726f63657373656420696e204649464f206f726465722e5852656c61794469737061746368517565756553697a65010104055101742000000000000000002c45012053697a65206f6620746865206469737061746368207175657565732e204361636865732073697a6573206f66207468652071756575657320696e206052656c617944697370617463685175657565602e00f0204669727374206974656d20696e20746865207475706c652069732074686520636f756e74206f66206d6573736167657320616e64207365636f6e64e02069732074686520746f74616c206c656e6774682028696e20627974657329206f6620746865206d657373616765207061796c6f6164732e007901204e6f74652074686174207468697320697320616e20617578696c69617279206d617070696e673a206974277320706f737369626c6520746f2074656c6c2074686520627974652073697a6520616e6420746865206e756d626572206f667901206d65737361676573206f6e6c79206c6f6f6b696e67206174206052656c61794469737061746368517565756573602e2054686973206d617070696e6720697320736570617261746520746f2061766f69642074686520636f7374206f663d01206c6f6164696e67207468652077686f6c65206d657373616765207175657565206966206f6e6c792074686520746f74616c2073697a6520616e6420636f756e74206172652072657175697265642e002c20496e76617269616e743a4501202d2054686520736574206f66206b6579732073686f756c642065786163746c79206d617463682074686520736574206f66206b657973206f66206052656c61794469737061746368517565756573602e344e65656473446973706174636801002d08040014190120546865206f726465726564206c697374206f6620605061726149646073207468617420686176652061206052656c6179446973706174636851756575656020656e7472792e002c20496e76617269616e743a3501202d2054686520736574206f66206974656d732066726f6d207468697320766563746f722073686f756c642062652065786163746c792074686520736574206f6620746865206b65797320696ed82020206052656c617944697370617463685175657565736020616e64206052656c61794469737061746368517565756553697a65602e684e6578744469737061746368526f756e64537461727457697468000051010400147d012054686973206973207468652070617261207468617420676574732077696c6c20676574206469737061746368656420666972737420647572696e6720746865206e6578742075707761726420646973706174636861626c652071756575654420657865637574696f6e20726f756e642e002c20496e76617269616e743a0d01202d2049662060536f6d65287061726129602c207468656e20607061726160206d7573742062652070726573656e7420696e20604e656564734469737061746368602e284f7665727765696768740001040520750804000c050120546865206d657373616765732074686174206578636565646564206d617820696e646976696475616c206d65737361676520776569676874206275646765742e00d4205468657365206d65737361676573207374617920746865726520756e74696c206d616e75616c6c7920646973706174636865642e3c4f766572776569676874436f756e7401002020000000000000000008690120546865206e756d626572206f66206f766572776569676874206d657373616765732065766572207265636f7264656420696e20604f766572776569676874602028616e64207468757320746865206c6f7765737420667265652020696e646578292e015d05017901000179083b1048726d70011048726d70305c48726d704f70656e4368616e6e656c52657175657374730001040589017d08040018bc2054686520736574206f662070656e64696e672048524d50206f70656e206368616e6e656c2072657175657374732e00c02054686520736574206973206163636f6d70616e6965642062792061206c69737420666f7220697465726174696f6e2e002c20496e76617269616e743a3d01202d20546865726520617265206e6f206368616e6e656c7320746861742065786973747320696e206c69737420627574206e6f7420696e207468652073657420616e6420766963652076657273612e6c48726d704f70656e4368616e6e656c52657175657374734c697374010081080400006c48726d704f70656e4368616e6e656c52657175657374436f756e740101040551011010000000000c65012054686973206d617070696e6720747261636b7320686f77206d616e79206f70656e206368616e6e656c2072657175657374732061726520696e69746961746564206279206120676976656e2073656e64657220706172612e7d0120496e76617269616e743a206048726d704f70656e4368616e6e656c5265717565737473602073686f756c6420636f6e7461696e207468652073616d65206e756d626572206f66206974656d73207468617420686173206028582c205f2960e020617320746865206e756d626572206f66206048726d704f70656e4368616e6e656c52657175657374436f756e746020666f72206058602e7c48726d7041636365707465644368616e6e656c52657175657374436f756e740101040551011010000000000c71012054686973206d617070696e6720747261636b7320686f77206d616e79206f70656e206368616e6e656c2072657175657374732077657265206163636570746564206279206120676976656e20726563697069656e7420706172612e6d0120496e76617269616e743a206048726d704f70656e4368616e6e656c5265717565737473602073686f756c6420636f6e7461696e207468652073616d65206e756d626572206f66206974656d732060285f2c20582960207769746855012060636f6e6669726d6564602073657420746f20747275652c20617320746865206e756d626572206f66206048726d7041636365707465644368616e6e656c52657175657374436f756e746020666f72206058602e6048726d70436c6f73654368616e6e656c52657175657374730001040589018004001c9101204120736574206f662070656e64696e672048524d5020636c6f7365206368616e6e656c20726571756573747320746861742061726520676f696e6720746f20626520636c6f73656420647572696e67207468652073657373696f6e206368616e67652e0101205573656420666f7220636865636b696e67206966206120676976656e206368616e6e656c206973207265676973746572656420666f7220636c6f737572652e00c02054686520736574206973206163636f6d70616e6965642062792061206c69737420666f7220697465726174696f6e2e002c20496e76617269616e743a3d01202d20546865726520617265206e6f206368616e6e656c7320746861742065786973747320696e206c69737420627574206e6f7420696e207468652073657420616e6420766963652076657273612e7048726d70436c6f73654368616e6e656c52657175657374734c697374010081080400003848726d7057617465726d61726b730001040551011004000cb8205468652048524d502077617465726d61726b206173736f6369617465642077697468206561636820706172612e2c20496e76617269616e743a7901202d2065616368207061726120605060207573656420686572652061732061206b65792073686f756c642073617469736679206050617261733a3a69735f76616c69645f70617261285029602077697468696e20612073657373696f6e2e3048726d704368616e6e656c73000104058901850804000cb42048524d50206368616e6e656c2064617461206173736f6369617465642077697468206561636820706172612e2c20496e76617269616e743a7501202d2065616368207061727469636970616e7420696e20746865206368616e6e656c2073686f756c642073617469736679206050617261733a3a69735f76616c69645f70617261285029602077697468696e20612073657373696f6e2e6048726d70496e67726573734368616e6e656c73496e6465780101040551012d08040034590120496e67726573732f65677265737320696e646578657320616c6c6f7720746f2066696e6420616c6c207468652073656e6465727320616e642072656365697665727320676976656e20746865206f70706f736974652c20736964652e20492e652e0021012028612920696e677265737320696e64657820616c6c6f777320746f2066696e6420616c6c207468652073656e6465727320666f72206120676976656e20726563697069656e742e1d01202862292065677265737320696e64657820616c6c6f777320746f2066696e6420616c6c2074686520726563697069656e747320666f72206120676976656e2073656e6465722e003020496e76617269616e74733a8d01202d20666f72206561636820696e677265737320696e64657820656e74727920666f72206050602065616368206974656d2060496020696e2074686520696e6465782073686f756c642070726573656e7420696e206048726d704368616e6e656c73603c2020206173206028492c205029602e8901202d20666f7220656163682065677265737320696e64657820656e74727920666f72206050602065616368206974656d2060456020696e2074686520696e6465782073686f756c642070726573656e7420696e206048726d704368616e6e656c73603c2020206173206028502c204529602e0101202d2074686572652073686f756c64206265206e6f206f746865722064616e676c696e67206368616e6e656c7320696e206048726d704368616e6e656c73602e68202d2074686520766563746f72732061726520736f727465642e5c48726d704567726573734368616e6e656c73496e6465780101040551012d080400004c48726d704368616e6e656c436f6e74656e74730101040589018d08040008ac2053746f7261676520666f7220746865206d6573736167657320666f722065616368206368616e6e656c2e650120496e76617269616e743a2063616e6e6f74206265206e6f6e2d656d7074792069662074686520636f72726573706f6e64696e67206368616e6e656c20696e206048726d704368616e6e656c736020697320604e6f6e65602e4848726d704368616e6e656c44696765737473010104055101950804001cf4204d61696e7461696e732061206d617070696e6720746861742063616e206265207573656420746f20616e7377657220746865207175657374696f6e3a290120576861742070617261732073656e742061206d6573736167652061742074686520676976656e20626c6f636b206e756d62657220666f72206120676976656e2072656365697665722e3020496e76617269616e74733aa8202d2054686520696e6e657220605665633c5061726149643e60206973206e6576657220656d7074792ee8202d2054686520696e6e657220605665633c5061726149643e602063616e6e6f742073746f72652074776f2073616d652060506172614964602e8101202d20546865206f7574657220766563746f7220697320736f7274656420617363656e64696e6720627920626c6f636b206e756d62657220616e642063616e6e6f742073746f72652074776f206974656d732077697468207468652073616d6540202020626c6f636b206e756d6265722e01610501850100019d083c3c5061726153657373696f6e496e666f013c5061726153657373696f6e496e666f0c5041737369676e6d656e744b657973556e736166650100a10804000ca42041737369676e6d656e74206b65797320666f72207468652063757272656e742073657373696f6e2e6d01204e6f7465207468617420746869732041504920697320707269766174652064756520746f206974206265696e672070726f6e6520746f20276f66662d62792d6f6e65272061742073657373696f6e20626f756e6461726965732eac205768656e20696e20646f7562742c20757365206053657373696f6e73602041504920696e73746561642e544561726c6965737453746f72656453657373696f6e010010100000000004010120546865206561726c696573742073657373696f6e20666f722077686963682070726576696f75732073657373696f6e20696e666f2069732073746f7265642e2053657373696f6e730001040610a50804000ca42053657373696f6e20696e666f726d6174696f6e20696e206120726f6c6c696e672077696e646f772e35012053686f756c64206861766520616e20656e74727920696e2072616e676520604561726c6965737453746f72656453657373696f6e2e2e3d43757272656e7453657373696f6e496e646578602e750120446f6573206e6f74206861766520616e7920656e7472696573206265666f7265207468652073657373696f6e20696e64657820696e207468652066697273742073657373696f6e206368616e6765206e6f74696669636174696f6e2e000000003d2452656769737472617201245265676973747261720c2c50656e64696e67537761700001040551015101040004642050656e64696e672073776170206f7065726174696f6e732e145061726173000104055101ad08040010050120416d6f756e742068656c64206f6e206465706f73697420666f722065616368207061726120616e6420746865206f726967696e616c206465706f7369746f722e0091012054686520676976656e206163636f756e7420494420697320726573706f6e7369626c6520666f72207265676973746572696e672074686520636f646520616e6420696e697469616c206865616420646174612c20627574206d6179206f6e6c7920646f350120736f2069662069742069736e27742079657420726567697374657265642e2028416674657220746861742c206974277320757020746f20676f7665726e616e636520746f20646f20736f2e29384e65787446726565506172614964010051011000000000046020546865206e65787420667265652060506172614964602e016505018d01082c506172614465706f73697418400010a5d4e8000000000000000000000008b020546865206465706f73697420746f206265207061696420746f2072756e206120706172617468726561642e3d0120546869732073686f756c6420696e636c7564652074686520636f737420666f722073746f72696e67207468652067656e65736973206865616420616e642076616c69646174696f6e20636f64652e48446174614465706f7369745065724279746518408096980000000000000000000000000004c420546865206465706f73697420746f20626520706169642070657220627974652073746f726564206f6e20636861696e2e01b1084614536c6f74730114536c6f747304184c6561736573010104055101b508040040150120416d6f756e74732068656c64206f6e206465706f73697420666f7220656163682028706f737369626c792066757475726529206c65617365642070617261636861696e2e009901205468652061637475616c20616d6f756e74206c6f636b6564206f6e2069747320626568616c6620627920616e79206163636f756e7420617420616e792074696d6520697320746865206d6178696d756d206f6620746865207365636f6e642076616c756573f0206f6620746865206974656d7320696e2074686973206c6973742077686f73652066697273742076616c756520697320746865206163636f756e742e00610120546865206669727374206974656d20696e20746865206c6973742069732074686520616d6f756e74206c6f636b656420666f72207468652063757272656e74204c6561736520506572696f642e20466f6c6c6f77696e67b0206974656d732061726520666f72207468652073756273657175656e74206c6561736520706572696f64732e006101205468652064656661756c742076616c75652028616e20656d707479206c6973742920696d706c6965732074686174207468652070617261636861696e206e6f206c6f6e6765722065786973747320286f72206e65766572b42065786973746564292061732066617220617320746869732070616c6c657420697320636f6e6365726e65642e00510120496620612070617261636861696e20646f65736e2774206578697374202a7965742a20627574206973207363686564756c656420746f20657869737420696e20746865206675747572652c207468656e20697461012077696c6c206265206c6566742d7061646465642077697468206f6e65206f72206d6f726520604e6f6e65607320746f2064656e6f74652074686520666163742074686174206e6f7468696e672069732068656c64206f6e5d01206465706f73697420666f7220746865206e6f6e2d6578697374656e7420636861696e2063757272656e746c792c206275742069732068656c6420617420736f6d6520706f696e7420696e20746865206675747572652e00dc20497420697320696c6c6567616c20666f72206120604e6f6e65602076616c756520746f20747261696c20696e20746865206c6973742e016905019101082c4c65617365506572696f6410100075120004dc20546865206e756d626572206f6620626c6f636b73206f76657220776869636820612073696e676c6520706572696f64206c617374732e2c4c656173654f6666736574101000100e0004d420546865206e756d626572206f6620626c6f636b7320746f206f66667365742065616368206c6561736520706572696f642062792e01bd08472041756374696f6e73012041756374696f6e73103841756374696f6e436f756e7465720100101000000000048c204e756d626572206f662061756374696f6e73207374617274656420736f206661722e2c41756374696f6e496e666f000074040014f820496e666f726d6174696f6e2072656c6174696e6720746f207468652063757272656e742061756374696f6e2c206966207468657265206973206f6e652e00450120546865206669727374206974656d20696e20746865207475706c6520697320746865206c6561736520706572696f6420696e646578207468617420746865206669727374206f662074686520666f7572510120636f6e746967756f7573206c6561736520706572696f6473206f6e2061756374696f6e20697320666f722e20546865207365636f6e642069732074686520626c6f636b206e756d626572207768656e207468655d012061756374696f6e2077696c6c2022626567696e20746f20656e64222c20692e652e2074686520666972737420626c6f636b206f662074686520456e64696e6720506572696f64206f66207468652061756374696f6e2e3c5265736572766564416d6f756e747300010405c10818040008310120416d6f756e74732063757272656e746c7920726573657276656420696e20746865206163636f756e7473206f662074686520626964646572732063757272656e746c792077696e6e696e673820287375622d2972616e6765732e1c57696e6e696e670001040510c50804000c6101205468652077696e6e696e67206269647320666f722065616368206f66207468652031302072616e67657320617420656163682073616d706c6520696e207468652066696e616c20456e64696e6720506572696f64206f664901207468652063757272656e742061756374696f6e2e20546865206d61702773206b65792069732074686520302d626173656420696e64657820696e746f207468652053616d706c652053697a652e205468651d012066697273742073616d706c65206f662074686520656e64696e6720706572696f6420697320303b20746865206c617374206973206053616d706c652053697a65202d2031602e016d050195011030456e64696e67506572696f64101040190100041d0120546865206e756d626572206f6620626c6f636b73206f76657220776869636820616e2061756374696f6e206d617920626520726574726f6163746976656c7920656e6465642e3053616d706c654c656e6774681010140000000cf020546865206c656e677468206f6620656163682073616d706c6520746f2074616b6520647572696e672074686520656e64696e6720706572696f642e00d42060456e64696e67506572696f6460202f206053616d706c654c656e67746860203d20546f74616c2023206f662053616d706c657338536c6f7452616e6765436f756e74101024000000004c4c65617365506572696f6473506572536c6f741010080000000001d108482443726f77646c6f616e012443726f77646c6f616e101446756e6473000104055101d5080400046820496e666f206f6e20616c6c206f66207468652066756e64732e204e6577526169736501002d080400085501205468652066756e64732074686174206861766520686164206164646974696f6e616c20636f6e747269627574696f6e7320647572696e6720746865206c61737420626c6f636b2e20546869732069732075736564150120696e206f7264657220746f2064657465726d696e652077686963682066756e64732073686f756c64207375626d6974206e6577206f72207570646174656420626964732e30456e64696e6773436f756e74010010100000000004290120546865206e756d626572206f662061756374696f6e732074686174206861766520656e746572656420696e746f20746865697220656e64696e6720706572696f6420736f206661722e344e65787454726965496e646578010010100000000004a820547261636b657220666f7220746865206e65787420617661696c61626c65207472696520696e6465780175050199010c2050616c6c6574496425072070792f6366756e64047101206050616c6c657449646020666f72207468652063726f77646c6f616e2070616c6c65742e20416e20617070726f7072696174652076616c756520636f756c64206265206050616c6c65744964282a622270792f6366756e642229603c4d696e436f6e747269627574696f6e184000743ba40b0000000000000000000000086d0120546865206d696e696d756d20616d6f756e742074686174206d617920626520636f6e747269627574656420696e746f20612063726f77646c6f616e2e2053686f756c6420616c6d6f7374206365727461696e6c7920626520617470206c6561737420604578697374656e7469616c4465706f736974602e3c52656d6f76654b6579734c696d69741010e803000004e4204d6178206e756d626572206f662073746f72616765206b65797320746f2072656d6f7665207065722065787472696e7369632063616c6c2e01dd0849e108042040436865636b5370656356657273696f6ee9081038436865636b547856657273696f6eed081030436865636b47656e65736973f1082438436865636b4d6f7274616c697479f5082428436865636b4e6f6e6365fd08802c436865636b576569676874010980604368617267655472616e73616374696f6e5061796d656e740509804850726576616c6964617465417474657374730909800d09"; + #endregion + + private static MetadataV14? _referenceV14Metadata = null; + public static MetadataV14 ReferenceV14Metadata + { + get + { + if (_referenceV14Metadata is null) + _referenceV14Metadata = new MetadataV14(metadataV14_9110); + + return _referenceV14Metadata; + } + } + + internal static bool? TryFindModuleInV14(string moduleName) + { + return null; + } + + public static TypeDefPrimitive? TryConvertNameToPrimitive(string name) + { + + return name.ToLower() switch + { + "bool" => TypeDefPrimitive.Bool, + "u8" => TypeDefPrimitive.U8, + "u16" => TypeDefPrimitive.U16, + "u32" => TypeDefPrimitive.U32, + "u64" => TypeDefPrimitive.U64, + "u128" => TypeDefPrimitive.U128, + "u256" => TypeDefPrimitive.U256, + "i8" => TypeDefPrimitive.I8, + "i16" => TypeDefPrimitive.I16, + "i32" => TypeDefPrimitive.I32, + "i64" => TypeDefPrimitive.I64, + "i128" => TypeDefPrimitive.I128, + "i256" => TypeDefPrimitive.I256, + "char" => TypeDefPrimitive.Char, + "str" => TypeDefPrimitive.Str, + _ => null + }; + } + + public static (TypeDefEnum, string)? TryConvertNameToComposite(string name) + { + return null; + } + + public static (TypeDefEnum, string)? TryConvertNameToTuple(string name) + { + return null; + } + + public static (TypeDefEnum, string)? TryConvertNameToArray(string name) + { + return null; + } + + public static (TypeDefEnum, string)? TryConvertNameToSequence(string name) + { + var regex = new Regex(@"^(\w+)<([^>]+)>$", RegexOptions.IgnoreCase, TimeSpan.FromSeconds(1)); + + var match = regex.Match(name); + if (match.Success) + { + // Capture the base name + var baseName = match.Groups[1].Value; + + if (!baseName.Equals("Vec", StringComparison.CurrentCultureIgnoreCase)) + { + return null; + } + + // Capture the generic parameters as a single string + var genericParamsString = match.Groups[2].Value; + + // Split the generic parameters string into individual parameters + var genericParams = genericParamsString.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries) + .Select(p => p.Trim()) + .ToList(); + + // A BaseVec should only have one generic parameter + if(genericParams.Count != 1) + { + throw new InvalidOperationException($"TypeDefSequence found but found {genericParams.Count} generic parameters while should be only one"); + } + + return (TypeDefEnum.Sequence, genericParams[0]); + } + + return null; + } + } +} diff --git a/Substrate.NET.Metadata.Conversion/Substrate.NET.Metadata.Conversion.csproj b/Substrate.NET.Metadata.Conversion/Substrate.NET.Metadata.Conversion.csproj new file mode 100644 index 0000000..d0f668e --- /dev/null +++ b/Substrate.NET.Metadata.Conversion/Substrate.NET.Metadata.Conversion.csproj @@ -0,0 +1,13 @@ + + + + net8.0 + enable + enable + + + + + + + diff --git a/Substrate.NET.Metadata.Tests/Conversion/ConversionV14HelperTests.cs b/Substrate.NET.Metadata.Tests/Conversion/ConversionV14HelperTests.cs new file mode 100644 index 0000000..6b6545a --- /dev/null +++ b/Substrate.NET.Metadata.Tests/Conversion/ConversionV14HelperTests.cs @@ -0,0 +1,25 @@ +using Substrate.NET.Metadata.Conversion; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Substrate.NET.Metadata.Tests.Conversion +{ + internal class ConversionV14HelperTests + { + [Test] + public void ConvertNameToLookup_WithValidName_ShouldReturnLookup() + { + // Arrange + var name = "Vec"; + + // Act + //ConversionV14Helper.TryConvertNameToGeneric(name); + + // Assert + //Assert.IsNotNull(result); + } + } +} diff --git a/Substrate.NET.Metadata.sln b/Substrate.NET.Metadata.sln index 7cf9a59..56ed11c 100644 --- a/Substrate.NET.Metadata.sln +++ b/Substrate.NET.Metadata.sln @@ -3,9 +3,13 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 VisualStudioVersion = 17.5.33414.496 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Substrate.NET.Metadata", "Substrate.NET.Metadata\Substrate.NET.Metadata.csproj", "{E79A1FD5-DB32-4B1A-91BC-1419AFF47517}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Substrate.NET.Metadata", "Substrate.NET.Metadata\Substrate.NET.Metadata.csproj", "{E79A1FD5-DB32-4B1A-91BC-1419AFF47517}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Substrate.NET.Metadata.Tests", "Substrate.NET.Metadata.Tests\Substrate.NET.Metadata.Tests.csproj", "{4698095E-1C43-40BA-925B-B9333599E0E4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Substrate.NET.Metadata.Tests", "Substrate.NET.Metadata.Tests\Substrate.NET.Metadata.Tests.csproj", "{4698095E-1C43-40BA-925B-B9333599E0E4}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Substrate.NET.Metadata.Conversion", "Substrate.NET.Metadata.Conversion\Substrate.NET.Metadata.Conversion.csproj", "{85881994-3850-4C6C-B8B3-BC9EAE1AC200}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Substrate.NET.Metadata.Conversion.Tests", "Substrate.NET.Metadata.Conversion.Tests\Substrate.NET.Metadata.Conversion.Tests.csproj", "{ACBF4C38-6691-4443-8F4C-BFF3AF0EE62C}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -21,6 +25,14 @@ Global {4698095E-1C43-40BA-925B-B9333599E0E4}.Debug|Any CPU.Build.0 = Debug|Any CPU {4698095E-1C43-40BA-925B-B9333599E0E4}.Release|Any CPU.ActiveCfg = Release|Any CPU {4698095E-1C43-40BA-925B-B9333599E0E4}.Release|Any CPU.Build.0 = Release|Any CPU + {85881994-3850-4C6C-B8B3-BC9EAE1AC200}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {85881994-3850-4C6C-B8B3-BC9EAE1AC200}.Debug|Any CPU.Build.0 = Debug|Any CPU + {85881994-3850-4C6C-B8B3-BC9EAE1AC200}.Release|Any CPU.ActiveCfg = Release|Any CPU + {85881994-3850-4C6C-B8B3-BC9EAE1AC200}.Release|Any CPU.Build.0 = Release|Any CPU + {ACBF4C38-6691-4443-8F4C-BFF3AF0EE62C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {ACBF4C38-6691-4443-8F4C-BFF3AF0EE62C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {ACBF4C38-6691-4443-8F4C-BFF3AF0EE62C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {ACBF4C38-6691-4443-8F4C-BFF3AF0EE62C}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/Substrate.NET.Metadata/Base/BaseMetadata.cs b/Substrate.NET.Metadata/Base/BaseMetadata.cs index 724d68e..7c4a1aa 100644 --- a/Substrate.NET.Metadata/Base/BaseMetadata.cs +++ b/Substrate.NET.Metadata/Base/BaseMetadata.cs @@ -2,7 +2,7 @@ namespace Substrate.NET.Metadata.Base { - public abstract class BaseMetadata : BaseType + public abstract class BaseMetadata : BaseType, IMetaDataInfo where T : BaseType, new() { protected BaseMetadata() @@ -34,7 +34,7 @@ public override void Decode(byte[] byteArray, ref int p) TypeSize = p - start; } - public MetaDataInfo MetaDataInfo { get; private set; } - public T RuntimeMetadataData { get; private set; } + public MetaDataInfo MetaDataInfo { get; private set; } = default!; + public T RuntimeMetadataData { get; private set; } = default!; } } diff --git a/Substrate.NET.Metadata/Base/Field.cs b/Substrate.NET.Metadata/Base/Field.cs index e86ec66..2a0042e 100644 --- a/Substrate.NET.Metadata/Base/Field.cs +++ b/Substrate.NET.Metadata/Base/Field.cs @@ -6,6 +6,16 @@ namespace Substrate.NET.Metadata.Base { public class Field : BaseType, IMetadataType { + public Field() { } + + public Field(BaseOpt name, TType fieldTy, BaseOpt fieldTypeName, BaseVec docs) + { + Name = name; + FieldTy = fieldTy; + FieldTypeName = fieldTypeName; + Docs = docs; + } + public override string TypeName() => "Field"; public override byte[] Encode() diff --git a/Substrate.NET.Metadata/Base/IMetaDataInfo.cs b/Substrate.NET.Metadata/Base/IMetaDataInfo.cs new file mode 100644 index 0000000..6916cd5 --- /dev/null +++ b/Substrate.NET.Metadata/Base/IMetaDataInfo.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Substrate.NET.Metadata.Base +{ + public interface IMetaDataInfo + { + MetaDataInfo MetaDataInfo { get; } + } +} diff --git a/Substrate.NET.Metadata/Base/Portable/PortableType.cs b/Substrate.NET.Metadata/Base/Portable/PortableType.cs index b856b3a..cb38f2c 100644 --- a/Substrate.NET.Metadata/Base/Portable/PortableType.cs +++ b/Substrate.NET.Metadata/Base/Portable/PortableType.cs @@ -7,6 +7,14 @@ namespace Substrate.NET.Metadata.Base.Portable { public class PortableType : BaseType { + public PortableType() { } + + internal PortableType(U32 id, TypePortableForm ty) + { + Id = id; + Ty = ty; + } + public override string TypeName() => "PortableType"; public override byte[] Encode() diff --git a/Substrate.NET.Metadata/Base/Portable/TypePortableForm.cs b/Substrate.NET.Metadata/Base/Portable/TypePortableForm.cs index 806b540..9d8f42f 100644 --- a/Substrate.NET.Metadata/Base/Portable/TypePortableForm.cs +++ b/Substrate.NET.Metadata/Base/Portable/TypePortableForm.cs @@ -5,6 +5,19 @@ namespace Substrate.NET.Metadata.Base.Portable { public class TypePortableForm : BaseType { + public TypePortableForm() { } + + internal TypePortableForm(Path path, + BaseVec typeParams, + BaseEnumExt, TypeDefCompact, TypeDefBitSequence, BaseVoid> typeDef, + BaseVec docs) + { + Path = path; + TypeParams = typeParams; + TypeDef = typeDef; + Docs = docs; + } + public override string TypeName() => "Type"; public override byte[] Encode() diff --git a/Substrate.NET.Metadata/Base/StorageEntryTypeMap.cs b/Substrate.NET.Metadata/Base/StorageEntryTypeMap.cs index ceba7cf..e307ebc 100644 --- a/Substrate.NET.Metadata/Base/StorageEntryTypeMap.cs +++ b/Substrate.NET.Metadata/Base/StorageEntryTypeMap.cs @@ -34,10 +34,10 @@ public override void Decode(byte[] byteArray, ref int p) Hasher = new BaseEnum(); Hasher.Decode(byteArray, ref p); - var Key = new Str(); + Key = new Str(); Key.Decode(byteArray, ref p); - var Value = new Str(); + Value = new Str(); Value.Decode(byteArray, ref p); Linked = new Bool(); diff --git a/Substrate.NET.Metadata/Base/Variant.cs b/Substrate.NET.Metadata/Base/Variant.cs index 413c010..a4dc167 100644 --- a/Substrate.NET.Metadata/Base/Variant.cs +++ b/Substrate.NET.Metadata/Base/Variant.cs @@ -6,6 +6,16 @@ namespace Substrate.NET.Metadata.Base { public class Variant : BaseType, IMetadataName { + public Variant() { } + + public Variant(Str name, BaseVec variantFields, U8 index, BaseVec docs) + { + Name = name; + VariantFields = variantFields; + Index = index; + Docs = docs; + } + public override string TypeName() => "Variant"; public override byte[] Encode() diff --git a/Substrate.NET.Metadata/Common/Metadata.cs b/Substrate.NET.Metadata/Common/Metadata.cs new file mode 100644 index 0000000..0c6b35c --- /dev/null +++ b/Substrate.NET.Metadata/Common/Metadata.cs @@ -0,0 +1,455 @@ +//using Substrate.NetApi.Model.Meta; +//using Substrate.NetApi; +//using Newtonsoft.Json.Converters; +//using Newtonsoft.Json; +//using Substrate.NetApi.Model.Types.Base; +//using Substrate.NET.Metadata.V11; +//using Substrate.NET.Metadata.V12; +//using Substrate.NET.Metadata.V13; +//using Substrate.NET.Metadata.V14; +//using Substrate.NET.Metadata.V15; +//using Substrate.NET.Metadata.V9; +//using Substrate.NET.Metadata.V10; +//using Substrate.NET.Metadata.Base; +//using Substrate.NetApi.Model.Types.Metadata.V14; + +//namespace Substrate.NET.Metadata.Common +//{ +// /// +// /// Reresents the a unique structure of metadata. +// /// Build this same structure for all versions of metadata (v9 to v15) +// /// +// /// Based on +// /// +// public class MetaData +// { +// public MetaData(IMetaDataInfo metadata, string origin = "unknown") +// { +// Origin = origin; +// Magic = Utils.Bytes2HexString(metadata.MetaDataInfo.Magic.Bytes); +// Version = metadata.MetaDataInfo.Version.Value; + +// // Ensure that the parameter is known +// if (metadata is MetadataV9 metadataV9) +// { +// buildFromV9(metadataV9); +// } +// else if (metadata is MetadataV10 metadataV10) +// { +// buildFromV10(metadataV10); +// } +// if (metadata is MetadataV11 metadataV11) +// { +// buildFromV11(metadataV11); +// } +// else if (metadata is MetadataV12 metadataV12) +// { +// buildFromV12(metadataV12); +// } +// else if (metadata is MetadataV13 metadataV13) +// { +// buildFromV13(metadataV13); +// } +// else if (metadata is MetadataV14 metadataV14) +// { +// buildFromV14(metadataV14); +// } +// else if (metadata is MetadataV15 metadataV15) +// { +// buildFromV15(metadataV15); +// } +// else +// { +// throw new Exception("Unknown metadata type"); +// } + + +// } + +// /// +// /// Origin +// /// +// public string Origin { get; set; } + +// /// +// /// Magic +// /// +// public string Magic { get; set; } + +// /// +// /// Version +// /// +// public byte Version { get; set; } + +// public NodeMetadataV14 NodeMetadata { get; set; } + +// public string Serialize() +// { +// return JsonConvert.SerializeObject(this, new StringEnumConverter()); +// } + +// private void buildFromV9(MetadataV9 v9) +// { +// NodeMetadata = new NodeMetadataV14() +// { +// Types = CreateNodeTypeDict(v14.RuntimeMetadataData.Lookup.Value), +// Modules = CreateModuleDict(v14.RuntimeMetadataData.Modules.Value), +// Extrinsic = CreateExtrinsic(v14.RuntimeMetadataData.Extrinsic), +// TypeId = (uint)v14.RuntimeMetadataData.TypeId.Value +// }; +// } + +// private void buildFromV10(MetadataV10 v10) +// { + +// } + +// private void buildFromV11(MetadataV11 v11) +// { + +// } + +// private void buildFromV12(MetadataV12 v12) +// { + +// } + +// private void buildFromV13(MetadataV13 v13) +// { + +// } + +// private void buildFromV14(MetadataV14 v14) +// { +// Magic = Utils.Bytes2HexString(v14.MetaDataInfo.Magic.Bytes); +// Version = v14.MetaDataInfo.Version.Value; +// NodeMetadata = new NodeMetadataV14() +// { +// Types = CreateNodeTypeDict(v14.RuntimeMetadataData.Lookup.Value), +// Modules = CreateModuleDict(v14.RuntimeMetadataData.Modules.Value), +// Extrinsic = CreateExtrinsic(v14.RuntimeMetadataData.Extrinsic), +// TypeId = (uint)v14.RuntimeMetadataData.TypeId.Value +// }; + +// /// +// /// Create Node Type Dictionary +// /// +// /// +// /// +// static Dictionary CreateNodeTypeDict(Base.Portable.PortableType[] types) +// { +// var result = new Dictionary(); + +// foreach (var type in types) +// { +// var path = type.Ty.Path.Value.Length == 0 ? null : type.Ty.Path.Value.Select(p => p.Value).ToArray(); +// var typeParams = type.Ty.TypeParams.Value.Length == 0 ? null : type.Ty.TypeParams.Value.Select(p => +// { +// return new NodeTypeParam() +// { +// Name = p.TypeParameterName.Value, +// TypeId = p.TypeParameterType.Value?.Value +// }; +// }).ToArray(); +// var typeDefValue = type.Ty.TypeDef.Value; +// var docs = type.Ty.Docs == null || type.Ty.Docs.Value.Length == 0 ? null : type.Ty.Docs.Value.Select(p => p.Value).ToArray(); + +// NodeType nodeType = null; +// switch (typeDefValue) +// { +// case TypeDefEnum.Composite: +// { +// var typeDef = type.Ty.TypeDef.Value2 as TypeDefComposite; +// nodeType = new NodeTypeComposite() +// { +// Id = type.Id.Value, +// Path = path, +// TypeParams = typeParams, +// TypeDef = typeDefValue, +// TypeFields = typeDef.Fields.Value.Length == 0 ? null : typeDef.Fields.Value.Select(p => +// { +// var fDocs = p.Docs == null || p.Docs.Value.Length == 0 ? null : p.Docs.Value.Select(q => q.Value).ToArray(); +// return new NodeTypeField() +// { +// Name = p.FieldName.Value?.Value, +// TypeName = p.FieldTypeName.Value?.Value, +// TypeId = p.FieldTy.Value, +// Docs = fDocs +// }; +// }).ToArray(), +// Docs = docs +// }; +// } +// break; + +// case TypeDefEnum.Variant: +// { +// var typeDef = type.Ty.TypeDef.Value2 as TypeDefVariant; +// nodeType = new NodeTypeVariant() +// { +// Id = type.Id.Value, +// Path = path, +// TypeParams = typeParams, +// TypeDef = typeDefValue, +// Variants = typeDef.TypeParam.Value.Length == 0 ? null : typeDef.TypeParam.Value.Select(p => +// { +// var vDocs = p.Docs == null || p.Docs.Value.Length == 0 ? null : p.Docs.Value.Select(q => q.Value).ToArray(); +// return new TypeVariant() +// { +// Name = p.VariantName.Value, +// TypeFields = p.VariantFields.Value.Length == 0 ? null : p.VariantFields.Value.Select(q => +// { +// var fDocs = q.Docs == null || q.Docs.Value.Length == 0 ? null : q.Docs.Value.Select(r => r.Value).ToArray(); +// return new NodeTypeField() +// { +// Name = q.FieldName.Value?.Value, +// TypeName = q.FieldTypeName.Value?.Value, +// TypeId = q.FieldTy.Value, +// Docs = fDocs +// }; +// }).ToArray(), +// Index = p.Index.Value, +// Docs = vDocs +// }; +// }).ToArray(), +// Docs = docs +// }; +// } +// break; + +// case TypeDefEnum.Sequence: +// { +// var typeDef = type.Ty.TypeDef.Value2 as TypeDefSequence; +// nodeType = new NodeTypeSequence() +// { +// Id = type.Id.Value, +// Path = path, +// TypeParams = typeParams, +// TypeDef = typeDefValue, +// TypeId = typeDef.TypeParam.Value, +// Docs = docs +// }; +// } +// break; + +// case TypeDefEnum.Array: +// { +// var typeDef = type.Ty.TypeDef.Value2 as TypeDefArray; +// nodeType = new NodeTypeArray() +// { +// Id = type.Id.Value, +// Path = path, +// TypeParams = typeParams, +// TypeDef = typeDefValue, +// TypeId = typeDef.TypeParam.Value, +// Length = typeDef.Len.Value, +// Docs = docs +// }; +// } +// break; + +// case TypeDefEnum.Tuple: +// { +// var typeDef = type.Ty.TypeDef.Value2 as TypeDefTuple; +// nodeType = new NodeTypeTuple() +// { +// Id = type.Id.Value, +// Path = path, +// TypeParams = typeParams, +// TypeDef = typeDefValue, +// TypeIds = typeDef.Fields.Value.Select(p => (uint)p.Value).ToArray(), +// Docs = docs +// }; +// } +// break; + +// case TypeDefEnum.Primitive: +// { +// var typeDef = (TypeDefPrimitive)Enum.Parse(typeof(TypeDefPrimitive), type.Ty.TypeDef.Value2.ToString()); +// nodeType = new NodeTypePrimitive() +// { +// Id = type.Id.Value, +// Path = path, +// TypeParams = typeParams, +// TypeDef = typeDefValue, +// Primitive = typeDef, +// Docs = docs +// }; +// } +// break; + +// case TypeDefEnum.Compact: +// { +// var typeDef = type.Ty.TypeDef.Value2 as TypeDefCompact; +// nodeType = new NodeTypeCompact() +// { +// Id = type.Id.Value, +// Path = path, +// TypeParams = typeParams, +// TypeDef = typeDefValue, +// TypeId = typeDef.TypeParam.Value, +// Docs = docs +// }; +// } +// break; + +// case TypeDefEnum.BitSequence: +// { +// var typeDef = type.Ty.TypeDef.Value2 as TypeDefBitSequence; +// nodeType = new NodeTypeBitSequence() +// { +// Id = type.Id.Value, +// Path = path, +// TypeParams = typeParams, +// TypeDef = typeDefValue, +// TypeIdOrder = typeDef.BitOrderType.Value, +// TypeIdStore = typeDef.BitStoreType.Value, +// Docs = docs +// }; +// } +// break; +// } + +// if (nodeType != null) +// { +// result.Add(nodeType.Id, nodeType); +// } +// } + +// return result; +// } + +// /// +// /// Create Module Dictionary +// /// +// /// +// /// +// /// +// static Dictionary CreateModuleDict(PalletMetadata[] modules) +// { +// var result = new Dictionary(); + +// foreach (var module in modules) +// { +// var palletModule = new PalletModule() +// { +// Name = module.PalletName.Value, +// Index = module.Index.Value, +// }; +// result.Add(module.Index.Value, palletModule); + +// if (module.PalletStorage.OptionFlag) +// { +// var storage = module.PalletStorage.Value; +// palletModule.Storage = new PalletStorage() +// { +// Prefix = storage.Prefix.Value, +// }; + +// palletModule.Storage.Entries = new Entry[storage.Entries.Value.Length]; +// for (int i = 0; i < storage.Entries.Value.Length; i++) +// { +// var entry = storage.Entries.Value[i]; +// palletModule.Storage.Entries[i] = new Entry() +// { +// Name = entry.StorageName.Value, +// Modifier = entry.StorageModifier.Value, +// StorageType = entry.StorageType.Value, +// Default = entry.StorageDefault.Value.Select(p => p.Value).ToArray(), +// Docs = entry.Documentation.Value.Select(p => p.Value).ToArray(), +// }; + +// switch (entry.StorageType.Value) +// { +// case Storage.Type.Plain: +// palletModule.Storage.Entries[i].TypeMap = (((TType)entry.StorageType.Value2).Value, null); +// break; + +// case Storage.Type.Map: +// var typeMap = ((StorageEntryTypeMap)entry.StorageType.Value2); +// palletModule.Storage.Entries[i].TypeMap = (0, new TypeMap() +// { +// Hashers = typeMap.Hashers.Value.Select(p => p.Value).ToArray(), +// Key = (uint)typeMap.Key.Value, +// Value = (uint)typeMap.Value.Value +// }); +// break; + +// default: +// throw new NotImplementedException(); +// } +// } +// } + +// if (module.PalletCalls.OptionFlag) +// { +// var calls = module.PalletCalls.Value; +// palletModule.Calls = new PalletCalls() +// { +// TypeId = (uint)calls.CallType.Value +// }; +// } + +// if (module.PalletEvents.OptionFlag) +// { +// var events = module.PalletEvents.Value; +// palletModule.Events = new PalletEvents() +// { +// TypeId = (uint)events.EventType.Value +// }; +// } + +// var constants = module.PalletConstants.Value; +// palletModule.Constants = new PalletConstant[constants.Length]; +// for (int i = 0; i < constants.Length; i++) +// { +// PalletConstantMetadata constant = constants[i]; +// palletModule.Constants[i] = new PalletConstant() +// { +// Name = constant.ConstantName.Value, +// TypeId = (uint)constant.ConstantType.Value, +// Value = constant.ConstantValue.Value.Select(p => p.Value).ToArray(), +// Docs = constant.Documentation.Value.Select(p => p.Value).ToArray() +// }; +// } + +// if (module.PalletErrors.OptionFlag) +// { +// var errors = module.PalletErrors.Value; +// palletModule.Errors = new PalletErrors() +// { +// TypeId = (uint)errors.ErrorType.Value +// }; +// } +// } + +// return result; +// } + +// /// +// /// Create Extrinsic +// /// +// /// +// /// +// static ExtrinsicMetadata CreateExtrinsic(ExtrinsicMetadataStruct extrinsic) +// { +// return new ExtrinsicMetadata() +// { +// TypeId = (uint)extrinsic.ExtrinsicType.Value, +// Version = (int)extrinsic.Version.Value, +// SignedExtensions = extrinsic.SignedExtensions.Value.Select(p => new SignedExtensionMetadata() +// { +// SignedIdentifier = p.SignedIdentifier.Value, +// SignedExtType = (uint)p.SignedExtType.Value, +// AddSignedExtType = (uint)p.AddSignedExtType.Value, +// }).ToArray() +// }; +// } +// } + +// private void buildFromV15(MetadataV15 v15) +// { + +// } +// } +//} diff --git a/Substrate.NET.Metadata/Conversion/ConversionV14Helper.cs b/Substrate.NET.Metadata/Conversion/ConversionV14Helper.cs new file mode 100644 index 0000000..c8cb211 --- /dev/null +++ b/Substrate.NET.Metadata/Conversion/ConversionV14Helper.cs @@ -0,0 +1,112 @@ +using Ardalis.GuardClauses; +using Substrate.NET.Metadata.Base; +using Substrate.NET.Metadata.V14; +using Substrate.NetApi.Model.Types.Base; +using Substrate.NetApi.Model.Types.Primitive; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Text.RegularExpressions; +using System.Threading.Tasks; + +namespace Substrate.NET.Metadata.Conversion +{ + public static class ConversionV14Helper + { + #region V14 metadata + public const string metadataV14_9110 = "0x6d6574610e1109000c1c73705f636f72651863727970746f2c4163636f756e7449643332000004000401205b75383b2033325d0000040000032000000008000800000503000c08306672616d655f73797374656d2c4163636f756e74496e666f0814496e64657801102c4163636f756e74446174610114001401146e6f6e6365100114496e646578000124636f6e73756d657273100120526566436f756e7400012470726f766964657273100120526566436f756e7400012c73756666696369656e7473100120526566436f756e740001106461746114012c4163636f756e7444617461000010000005050014083c70616c6c65745f62616c616e6365732c4163636f756e7444617461041c42616c616e63650118001001106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500012c6d6973635f66726f7a656e18011c42616c616e63650001286665655f66726f7a656e18011c42616c616e636500001800000507001c0c346672616d655f737570706f72741c77656967687473405065724469737061746368436c6173730404540120000c01186e6f726d616c2001045400012c6f7065726174696f6e616c200104540001246d616e6461746f727920010454000020000005060024083c7072696d69746976655f74797065731048323536000004000401205b75383b2033325d00002800000208002c102873705f72756e74696d651c67656e6572696318646967657374184469676573740410486173680124000401106c6f67733001545665633c4469676573744974656d3c486173683e3e000030000002340034102873705f72756e74696d651c67656e6572696318646967657374284469676573744974656d0410486173680124011c3c4368616e67657354726965526f6f740400240110486173680002002850726552756e74696d650800380144436f6e73656e737573456e67696e654964000028011c5665633c75383e00060024436f6e73656e7375730800380144436f6e73656e737573456e67696e654964000028011c5665633c75383e000400105365616c0800380144436f6e73656e737573456e67696e654964000028011c5665633c75383e000500444368616e676573547269655369676e616c04003c01444368616e676573547269655369676e616c000700144f74686572040028011c5665633c75383e0000006452756e74696d65456e7669726f6e6d656e745570646174656400080000380000030400000008003c102873705f72756e74696d651c67656e6572696318646967657374444368616e676573547269655369676e616c000104404e6577436f6e66696775726174696f6e04004001804f7074696f6e3c4368616e67657354726965436f6e66696775726174696f6e3e000000004004184f7074696f6e04045401440108104e6f6e6500000010536f6d650400440000010000440c1c73705f636f7265306368616e6765735f74726965604368616e67657354726965436f6e66696775726174696f6e000008013c6469676573745f696e74657276616c10010c7533320001346469676573745f6c6576656c7310010c7533320000480000024c004c08306672616d655f73797374656d2c4576656e745265636f7264080445015004540124000c011470686173659d01011450686173650001146576656e7450010445000118746f70696373a10101185665633c543e0000500840706f6c6b61646f745f72756e74696d65144576656e740001801853797374656d04005401706672616d655f73797374656d3a3a4576656e743c52756e74696d653e000000245363686564756c6572040070018070616c6c65745f7363686564756c65723a3a4576656e743c52756e74696d653e0001001c496e6469636573040084017870616c6c65745f696e64696365733a3a4576656e743c52756e74696d653e0004002042616c616e636573040088017c70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d653e0005001c5374616b696e67040090017870616c6c65745f7374616b696e673a3a4576656e743c52756e74696d653e000700204f6666656e636573040094015870616c6c65745f6f6666656e6365733a3a4576656e740008001c53657373696f6e04009c015470616c6c65745f73657373696f6e3a3a4576656e740009001c4772616e6470610400a0015470616c6c65745f6772616e6470613a3a4576656e74000b0020496d4f6e6c696e650400b4018070616c6c65745f696d5f6f6e6c696e653a3a4576656e743c52756e74696d653e000c002444656d6f63726163790400d8018070616c6c65745f64656d6f63726163793a3a4576656e743c52756e74696d653e000e001c436f756e63696c0400e401fc70616c6c65745f636f6c6c6563746976653a3a4576656e743c52756e74696d652c2070616c6c65745f636f6c6c6563746976653a3a496e7374616e6365313e000f0048546563686e6963616c436f6d6d69747465650400ec01fc70616c6c65745f636f6c6c6563746976653a3a4576656e743c52756e74696d652c2070616c6c65745f636f6c6c6563746976653a3a496e7374616e6365323e0010004050687261676d656e456c656374696f6e0400f001a470616c6c65745f656c656374696f6e735f70687261676d656e3a3a4576656e743c52756e74696d653e0011004c546563686e6963616c4d656d626572736869700400fc01fc70616c6c65745f6d656d626572736869703a3a4576656e743c52756e74696d652c2070616c6c65745f6d656d626572736869703a3a496e7374616e6365313e00120020547265617375727904000101017c70616c6c65745f74726561737572793a3a4576656e743c52756e74696d653e00130018436c61696d73040005010158636c61696d733a3a4576656e743c52756e74696d653e0018001c56657374696e6704001101017870616c6c65745f76657374696e673a3a4576656e743c52756e74696d653e0019001c5574696c69747904001501015470616c6c65745f7574696c6974793a3a4576656e74001a00204964656e7469747904001901017c70616c6c65745f6964656e746974793a3a4576656e743c52756e74696d653e001c001450726f787904001d01017070616c6c65745f70726f78793a3a4576656e743c52756e74696d653e001d00204d756c746973696704002901017c70616c6c65745f6d756c74697369673a3a4576656e743c52756e74696d653e001e0020426f756e7469657304003101017c70616c6c65745f626f756e746965733a3a4576656e743c52756e74696d653e002200105469707304003501016c70616c6c65745f746970733a3a4576656e743c52756e74696d653e00230068456c656374696f6e50726f76696465724d756c746950686173650400390101d070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173653a3a4576656e743c52756e74696d653e0024003450617261496e636c7573696f6e04004501019070617261636861696e735f696e636c7573696f6e3a3a4576656e743c52756e74696d653e00350014506172617304007501015c70617261636861696e735f70617261733a3a4576656e740038000c556d7004007901015470617261636861696e735f756d703a3a4576656e74003b001048726d7004008501017c70617261636861696e735f68726d703a3a4576656e743c52756e74696d653e003c002452656769737472617204008d01017c70617261735f7265676973747261723a3a4576656e743c52756e74696d653e00460014536c6f7473040091010154736c6f74733a3a4576656e743c52756e74696d653e0047002041756374696f6e7304009501016061756374696f6e733a3a4576656e743c52756e74696d653e0048002443726f77646c6f616e04009901016463726f77646c6f616e3a3a4576656e743c52756e74696d653e00490000540c306672616d655f73797374656d1870616c6c6574144576656e740404540001184045787472696e7369635375636365737304005801304469737061746368496e666f000004b4416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e205c5b696e666f5c5d3c45787472696e7369634661696c6564080064013444697370617463684572726f7200005801304469737061746368496e666f00010490416e2065787472696e736963206661696c65642e205c5b6572726f722c20696e666f5c5d2c436f64655570646174656400020450603a636f6465602077617320757064617465642e284e65774163636f756e740400000130543a3a4163636f756e7449640003047841206e6577205c5b6163636f756e745c5d2077617320637265617465642e344b696c6c65644163636f756e740400000130543a3a4163636f756e74496400040468416e205c5b6163636f756e745c5d20776173207265617065642e2052656d61726b65640800000130543a3a4163636f756e744964000024011c543a3a48617368000504d04f6e206f6e2d636861696e2072656d61726b2068617070656e65642e205c5b6f726967696e2c2072656d61726b5f686173685c5d04704576656e7420666f72207468652053797374656d2070616c6c65742e580c346672616d655f737570706f72741c77656967687473304469737061746368496e666f00000c0118776569676874200118576569676874000114636c6173735c01344469737061746368436c617373000120706179735f6665656001105061797300005c0c346672616d655f737570706f72741c77656967687473344469737061746368436c61737300010c184e6f726d616c0000002c4f7065726174696f6e616c000100244d616e6461746f727900020000600c346672616d655f737570706f72741c7765696768747310506179730001080c596573000000084e6f0001000064082873705f72756e74696d653444697370617463684572726f72000120144f746865720000003043616e6e6f744c6f6f6b7570000100244261644f726967696e000200184d6f64756c65080114696e64657808010875380001146572726f72080108753800030044436f6e73756d657252656d61696e696e670004002c4e6f50726f76696465727300050014546f6b656e0400680128546f6b656e4572726f720006002841726974686d6574696304006c013c41726974686d657469634572726f720007000068082873705f72756e74696d6528546f6b656e4572726f7200011c1c4e6f46756e647300000020576f756c644469650001003042656c6f774d696e696d756d0002003043616e6e6f7443726561746500030030556e6b6e6f776e41737365740004001846726f7a656e0005002c556e737570706f72746564000600006c082873705f72756e74696d653c41726974686d657469634572726f7200010c24556e646572666c6f77000000204f766572666c6f77000100384469766973696f6e42795a65726f00020000700c4070616c6c65745f7363686564756c65721870616c6c6574144576656e7404045400010c245363686564756c65640800100138543a3a426c6f636b4e756d626572000010010c753332000004905363686564756c656420736f6d65207461736b2e205c5b7768656e2c20696e6465785c5d2043616e63656c65640800100138543a3a426c6f636b4e756d626572000010010c7533320001048c43616e63656c656420736f6d65207461736b2e205c5b7768656e2c20696e6465785c5d28446973706174636865640c0074016c5461736b416464726573733c543a3a426c6f636b4e756d6265723e000078013c4f7074696f6e3c5665633c75383e3e00007c01384469737061746368526573756c74000204a84469737061746368656420736f6d65207461736b2e205c5b7461736b2c2069642c20726573756c745c5d04304576656e747320747970652e74000004081010007804184f7074696f6e04045401280108104e6f6e6500000010536f6d6504002800000100007c0418526573756c740804540180044501640108084f6b040080000000000c4572720400640000010000800000040000840c3870616c6c65745f696e64696365731870616c6c6574144576656e7404045400010c34496e64657841737369676e65640800000130543a3a4163636f756e744964000010013c543a3a4163636f756e74496e646578000004b041206163636f756e7420696e646578207761732061737369676e65642e205c5b696e6465782c2077686f5c5d28496e6465784672656564040010013c543a3a4163636f756e74496e646578000104e441206163636f756e7420696e64657820686173206265656e2066726565642075702028756e61737369676e6564292e205c5b696e6465785c5d2c496e64657846726f7a656e080010013c543a3a4163636f756e74496e6465780000000130543a3a4163636f756e744964000204250141206163636f756e7420696e64657820686173206265656e2066726f7a656e20746f206974732063757272656e74206163636f756e742049442e205c5b696e6465782c2077686f5c5d04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a090909880c3c70616c6c65745f62616c616e6365731870616c6c6574144576656e740804540004490001201c456e646f7765640800000130543a3a4163636f756e7449640000180128543a3a42616c616e63650000042101416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e205c5b6163636f756e742c20667265655f62616c616e63655c5d20447573744c6f73740800000130543a3a4163636f756e7449640000180128543a3a42616c616e63650001083d01416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742ccc726573756c74696e6720696e20616e206f75747269676874206c6f73732e205c5b6163636f756e742c2062616c616e63655c5d205472616e736665720c00000130543a3a4163636f756e7449640000000130543a3a4163636f756e7449640000180128543a3a42616c616e63650002049c5472616e73666572207375636365656465642e205c5b66726f6d2c20746f2c2076616c75655c5d2842616c616e63655365740c00000130543a3a4163636f756e7449640000180128543a3a42616c616e63650000180128543a3a42616c616e6365000304c8412062616c616e6365207761732073657420627920726f6f742e205c5b77686f2c20667265652c2072657365727665645c5d1c4465706f7369740800000130543a3a4163636f756e7449640000180128543a3a42616c616e63650004041d01536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e205c5b77686f2c206465706f7369745c5d2052657365727665640800000130543a3a4163636f756e7449640000180128543a3a42616c616e63650005041d01536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e205c5b77686f2c2076616c75655c5d28556e72657365727665640800000130543a3a4163636f756e7449640000180128543a3a42616c616e63650006042501536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e205c5b77686f2c2076616c75655c5d485265736572766552657061747269617465641000000130543a3a4163636f756e7449640000000130543a3a4163636f756e7449640000180128543a3a42616c616e636500008c011853746174757300070c4d01536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742ed846696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652ea45c5b66726f6d2c20746f2c2062616c616e63652c2064657374696e6174696f6e5f7374617475735c5d04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a0909098c14346672616d655f737570706f72741874726169747318746f6b656e73106d6973633442616c616e636553746174757300010810467265650000002052657365727665640001000090103870616c6c65745f7374616b696e671870616c6c65741870616c6c6574144576656e740404540001301c457261506169640c00100120457261496e646578000018013042616c616e63654f663c543e000018013042616c616e63654f663c543e00000c550154686520657261207061796f757420686173206265656e207365743b207468652066697273742062616c616e6365206973207468652076616c696461746f722d7061796f75743b20746865207365636f6e64206973c07468652072656d61696e6465722066726f6d20746865206d6178696d756d20616d6f756e74206f66207265776172642ea85c5b6572615f696e6465782c2076616c696461746f725f7061796f75742c2072656d61696e6465725c5d2052657761726465640800000130543a3a4163636f756e744964000018013042616c616e63654f663c543e0001040501546865206e6f6d696e61746f7220686173206265656e207265776172646564206279207468697320616d6f756e742e205c5b73746173682c20616d6f756e745c5d1c536c61736865640800000130543a3a4163636f756e744964000018013042616c616e63654f663c543e00020821014f6e652076616c696461746f722028616e6420697473206e6f6d696e61746f72732920686173206265656e20736c61736865642062792074686520676976656e20616d6f756e742e545c5b76616c696461746f722c20616d6f756e745c5d684f6c64536c617368696e675265706f7274446973636172646564040010013053657373696f6e496e6465780003081901416e206f6c6420736c617368696e67207265706f72742066726f6d2061207072696f72206572612077617320646973636172646564206265636175736520697420636f756c648c6e6f742062652070726f6365737365642e205c5b73657373696f6e5f696e6465785c5d385374616b657273456c65637465640004048441206e657720736574206f66207374616b6572732077617320656c65637465642e18426f6e6465640800000130543a3a4163636f756e744964000018013042616c616e63654f663c543e000510d0416e206163636f756e742068617320626f6e646564207468697320616d6f756e742e205c5b73746173682c20616d6f756e745c5d004d014e4f54453a2054686973206576656e74206973206f6e6c7920656d6974746564207768656e2066756e64732061726520626f6e64656420766961206120646973706174636861626c652e204e6f7461626c792c210169742077696c6c206e6f7420626520656d697474656420666f72207374616b696e672072657761726473207768656e20746865792061726520616464656420746f207374616b652e20556e626f6e6465640800000130543a3a4163636f756e744964000018013042616c616e63654f663c543e000604d8416e206163636f756e742068617320756e626f6e646564207468697320616d6f756e742e205c5b73746173682c20616d6f756e745c5d2457697468647261776e0800000130543a3a4163636f756e744964000018013042616c616e63654f663c543e0007085901416e206163636f756e74206861732063616c6c6564206077697468647261775f756e626f6e6465646020616e642072656d6f76656420756e626f6e64696e67206368756e6b7320776f727468206042616c616e636560ac66726f6d2074686520756e6c6f636b696e672071756575652e205c5b73746173682c20616d6f756e745c5d184b69636b65640800000130543a3a4163636f756e7449640000000130543a3a4163636f756e744964000804090141206e6f6d696e61746f7220686173206265656e206b69636b65642066726f6d20612076616c696461746f722e205c5b6e6f6d696e61746f722c2073746173685c5d545374616b696e67456c656374696f6e4661696c6564000904ac54686520656c656374696f6e206661696c65642e204e6f206e65772065726120697320706c616e6e65642e1c4368696c6c65640400000130543a3a4163636f756e744964000a082101416e206163636f756e74206861732073746f707065642070617274696369706174696e672061732065697468657220612076616c696461746f72206f72206e6f6d696e61746f722e245c5b73746173685c5d345061796f7574537461727465640800100120457261496e6465780000000130543a3a4163636f756e744964000b041501546865207374616b657273272072657761726473206172652067657474696e6720706169642e205c5b6572615f696e6465782c2076616c696461746f725f73746173685c5d04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a090909940c3c70616c6c65745f6f6666656e6365731870616c6c6574144576656e740001041c4f6666656e636508009801104b696e6400002801384f706171756554696d65536c6f7400000c5101546865726520697320616e206f6666656e6365207265706f72746564206f662074686520676976656e20606b696e64602068617070656e656420617420746865206073657373696f6e5f696e6465786020616e643501286b696e642d7370656369666963292074696d6520736c6f742e2054686973206576656e74206973206e6f74206465706f736974656420666f72206475706c696361746520736c61736865732e4c5c5b6b696e642c2074696d65736c6f745c5d2e04304576656e747320747970652e980000031000000008009c0c3870616c6c65745f73657373696f6e1870616c6c6574144576656e74000104284e657753657373696f6e040010013053657373696f6e496e64657800000849014e65772073657373696f6e206861732068617070656e65642e204e6f746520746861742074686520617267756d656e7420697320746865205c5b73657373696f6e5f696e6465785c5d2c206e6f74207468659c626c6f636b206e756d626572206173207468652074797065206d6967687420737567676573742e04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a090909a00c3870616c6c65745f6772616e6470611870616c6c6574144576656e7400010c384e6577417574686f7269746965730400a40134417574686f726974794c697374000004d44e657720617574686f726974792073657420686173206265656e206170706c6965642e205c5b617574686f726974795f7365745c5d185061757365640001049843757272656e7420617574686f726974792073657420686173206265656e207061757365642e1c526573756d65640002049c43757272656e7420617574686f726974792073657420686173206265656e20726573756d65642e04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a090909a4000002a800a800000408ac2000ac0c4c73705f66696e616c6974795f6772616e6470610c617070185075626c696300000400b0013c656432353531393a3a5075626c69630000b00c1c73705f636f72651c65643235353139185075626c6963000004000401205b75383b2033325d0000b40c4070616c6c65745f696d5f6f6e6c696e651870616c6c6574144576656e7404045400010c4448656172746265617452656365697665640400b80138543a3a417574686f726974794964000004010141206e657720686561727462656174207761732072656365697665642066726f6d2060417574686f72697479496460205c5b617574686f726974795f69645c5d1c416c6c476f6f64000104d041742074686520656e64206f66207468652073657373696f6e2c206e6f206f6666656e63652077617320636f6d6d69747465642e2c536f6d654f66666c696e650400c0016c5665633c4964656e74696669636174696f6e5475706c653c543e3e000204390141742074686520656e64206f66207468652073657373696f6e2c206174206c65617374206f6e652076616c696461746f722077617320666f756e6420746f206265205c5b6f66666c696e655c5d2e04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a090909b8104070616c6c65745f696d5f6f6e6c696e651c737232353531392c6170705f73723235353139185075626c696300000400bc013c737232353531393a3a5075626c69630000bc0c1c73705f636f72651c73723235353139185075626c6963000004000401205b75383b2033325d0000c0000002c400c40000040800c800c8083870616c6c65745f7374616b696e67204578706f7375726508244163636f756e74496401001c42616c616e63650118000c0114746f74616ccc011c42616c616e636500010c6f776ecc011c42616c616e63650001186f7468657273d001ac5665633c496e646976696475616c4578706f737572653c4163636f756e7449642c2042616c616e63653e3e0000cc0000061800d0000002d400d4083870616c6c65745f7374616b696e6748496e646976696475616c4578706f7375726508244163636f756e74496401001c42616c616e636501180008010c77686f0001244163636f756e74496400011476616c7565cc011c42616c616e63650000d80c4070616c6c65745f64656d6f63726163791870616c6c6574144576656e740404540001442050726f706f736564080010012450726f70496e646578000018013042616c616e63654f663c543e0000042d0141206d6f74696f6e20686173206265656e2070726f706f7365642062792061207075626c6963206163636f756e742e205c5b70726f706f73616c5f696e6465782c206465706f7369745c5d185461626c65640c0010012450726f70496e646578000018013042616c616e63654f663c543e0000dc01445665633c543a3a4163636f756e7449643e000108450141207075626c69632070726f706f73616c20686173206265656e207461626c656420666f72207265666572656e64756d20766f74652e205c5b70726f706f73616c5f696e6465782c206465706f7369742c306465706f7369746f72735c5d3845787465726e616c5461626c656400020494416e2065787465726e616c2070726f706f73616c20686173206265656e207461626c65642e1c53746172746564080010013c5265666572656e64756d496e6465780000e00134566f74655468726573686f6c64000304c041207265666572656e64756d2068617320626567756e2e205c5b7265665f696e6465782c207468726573686f6c645c5d18506173736564040010013c5265666572656e64756d496e646578000404e4412070726f706f73616c20686173206265656e20617070726f766564206279207265666572656e64756d2e205c5b7265665f696e6465785c5d244e6f74506173736564040010013c5265666572656e64756d496e646578000504e4412070726f706f73616c20686173206265656e2072656a6563746564206279207265666572656e64756d2e205c5b7265665f696e6465785c5d2443616e63656c6c6564040010013c5265666572656e64756d496e646578000604b841207265666572656e64756d20686173206265656e2063616e63656c6c65642e205c5b7265665f696e6465785c5d204578656375746564080010013c5265666572656e64756d496e64657800007c01384469737061746368526573756c74000704c8412070726f706f73616c20686173206265656e20656e61637465642e205c5b7265665f696e6465782c20726573756c745c5d2444656c6567617465640800000130543a3a4163636f756e7449640000000130543a3a4163636f756e7449640008041d01416e206163636f756e74206861732064656c65676174656420746865697220766f746520746f20616e6f74686572206163636f756e742e205c5b77686f2c207461726765745c5d2c556e64656c6567617465640400000130543a3a4163636f756e744964000904f4416e205c5b6163636f756e745c5d206861732063616e63656c6c656420612070726576696f75732064656c65676174696f6e206f7065726174696f6e2e185665746f65640c00000130543a3a4163636f756e744964000024011c543a3a486173680000100138543a3a426c6f636b4e756d626572000a040d01416e2065787465726e616c2070726f706f73616c20686173206265656e207665746f65642e205c5b77686f2c2070726f706f73616c5f686173682c20756e74696c5c5d34507265696d6167654e6f7465640c0024011c543a3a486173680000000130543a3a4163636f756e744964000018013042616c616e63654f663c543e000b045d01412070726f706f73616c277320707265696d61676520776173206e6f7465642c20616e6420746865206465706f7369742074616b656e2e205c5b70726f706f73616c5f686173682c2077686f2c206465706f7369745c5d30507265696d616765557365640c0024011c543a3a486173680000000130543a3a4163636f756e744964000018013042616c616e63654f663c543e000c081101412070726f706f73616c20707265696d616765207761732072656d6f76656420616e6420757365642028746865206465706f736974207761732072657475726e6564292e905c5b70726f706f73616c5f686173682c2070726f76696465722c206465706f7369745c5d3c507265696d616765496e76616c6964080024011c543a3a48617368000010013c5265666572656e64756d496e646578000d080901412070726f706f73616c20636f756c64206e6f7420626520657865637574656420626563617573652069747320707265696d6167652077617320696e76616c69642e705c5b70726f706f73616c5f686173682c207265665f696e6465785c5d3c507265696d6167654d697373696e67080024011c543a3a48617368000010013c5265666572656e64756d496e646578000e080901412070726f706f73616c20636f756c64206e6f7420626520657865637574656420626563617573652069747320707265696d61676520776173206d697373696e672e705c5b70726f706f73616c5f686173682c207265665f696e6465785c5d38507265696d616765526561706564100024011c543a3a486173680000000130543a3a4163636f756e744964000018013042616c616e63654f663c543e0000000130543a3a4163636f756e744964000f08290141207265676973746572656420707265696d616765207761732072656d6f76656420616e6420746865206465706f73697420636f6c6c656374656420627920746865207265617065722eb05c5b70726f706f73616c5f686173682c2070726f76696465722c206465706f7369742c207265617065725c5d2c426c61636b6c6973746564040024011c543a3a48617368001004d4412070726f706f73616c205c5b686173685c5d20686173206265656e20626c61636b6c6973746564207065726d616e656e746c792e04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a090909dc0000020000e00c4070616c6c65745f64656d6f637261637938766f74655f7468726573686f6c6434566f74655468726573686f6c6400010c5053757065724d616a6f72697479417070726f76650000005053757065724d616a6f72697479416761696e73740001003853696d706c654d616a6f7269747900020000e40c4470616c6c65745f636f6c6c6563746976651870616c6c6574144576656e7408045400044900011c2050726f706f7365641000000130543a3a4163636f756e744964000010013450726f706f73616c496e646578000024011c543a3a48617368000010012c4d656d626572436f756e7400000c490141206d6f74696f6e2028676976656e20686173682920686173206265656e2070726f706f7365642028627920676976656e206163636f756e742920776974682061207468726573686f6c642028676976656e3c604d656d626572436f756e7460292ed45c5b6163636f756e742c2070726f706f73616c5f696e6465782c2070726f706f73616c5f686173682c207468726573686f6c645c5d14566f7465641400000130543a3a4163636f756e744964000024011c543a3a486173680000e80110626f6f6c000010012c4d656d626572436f756e74000010012c4d656d626572436f756e7400010c050141206d6f74696f6e2028676976656e20686173682920686173206265656e20766f746564206f6e20627920676976656e206163636f756e742c206c656176696e671501612074616c6c79202879657320766f74657320616e64206e6f20766f74657320676976656e20726573706563746976656c7920617320604d656d626572436f756e7460292ea85c5b6163636f756e742c2070726f706f73616c5f686173682c20766f7465642c207965732c206e6f5c5d20417070726f766564040024011c543a3a48617368000208c041206d6f74696f6e2077617320617070726f76656420627920746865207265717569726564207468726573686f6c642e445c5b70726f706f73616c5f686173685c5d2c446973617070726f766564040024011c543a3a48617368000308d041206d6f74696f6e20776173206e6f7420617070726f76656420627920746865207265717569726564207468726573686f6c642e445c5b70726f706f73616c5f686173685c5d204578656375746564080024011c543a3a4861736800007c01384469737061746368526573756c74000408210141206d6f74696f6e207761732065786563757465643b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e645c5b70726f706f73616c5f686173682c20726573756c745c5d384d656d6265724578656375746564080024011c543a3a4861736800007c01384469737061746368526573756c740005084901412073696e676c65206d656d6265722064696420736f6d6520616374696f6e3b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e645c5b70726f706f73616c5f686173682c20726573756c745c5d18436c6f7365640c0024011c543a3a48617368000010012c4d656d626572436f756e74000010012c4d656d626572436f756e740006085501412070726f706f73616c2077617320636c6f736564206265636175736520697473207468726573686f6c64207761732072656163686564206f7220616674657220697473206475726174696f6e207761732075702e685c5b70726f706f73616c5f686173682c207965732c206e6f5c5d04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a090909e80000050000ec0c4470616c6c65745f636f6c6c6563746976651870616c6c6574144576656e7408045400044900011c2050726f706f7365641000000130543a3a4163636f756e744964000010013450726f706f73616c496e646578000024011c543a3a48617368000010012c4d656d626572436f756e7400000c490141206d6f74696f6e2028676976656e20686173682920686173206265656e2070726f706f7365642028627920676976656e206163636f756e742920776974682061207468726573686f6c642028676976656e3c604d656d626572436f756e7460292ed45c5b6163636f756e742c2070726f706f73616c5f696e6465782c2070726f706f73616c5f686173682c207468726573686f6c645c5d14566f7465641400000130543a3a4163636f756e744964000024011c543a3a486173680000e80110626f6f6c000010012c4d656d626572436f756e74000010012c4d656d626572436f756e7400010c050141206d6f74696f6e2028676976656e20686173682920686173206265656e20766f746564206f6e20627920676976656e206163636f756e742c206c656176696e671501612074616c6c79202879657320766f74657320616e64206e6f20766f74657320676976656e20726573706563746976656c7920617320604d656d626572436f756e7460292ea85c5b6163636f756e742c2070726f706f73616c5f686173682c20766f7465642c207965732c206e6f5c5d20417070726f766564040024011c543a3a48617368000208c041206d6f74696f6e2077617320617070726f76656420627920746865207265717569726564207468726573686f6c642e445c5b70726f706f73616c5f686173685c5d2c446973617070726f766564040024011c543a3a48617368000308d041206d6f74696f6e20776173206e6f7420617070726f76656420627920746865207265717569726564207468726573686f6c642e445c5b70726f706f73616c5f686173685c5d204578656375746564080024011c543a3a4861736800007c01384469737061746368526573756c74000408210141206d6f74696f6e207761732065786563757465643b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e645c5b70726f706f73616c5f686173682c20726573756c745c5d384d656d6265724578656375746564080024011c543a3a4861736800007c01384469737061746368526573756c740005084901412073696e676c65206d656d6265722064696420736f6d6520616374696f6e3b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e645c5b70726f706f73616c5f686173682c20726573756c745c5d18436c6f7365640c0024011c543a3a48617368000010012c4d656d626572436f756e74000010012c4d656d626572436f756e740006085501412070726f706f73616c2077617320636c6f736564206265636175736520697473207468726573686f6c64207761732072656163686564206f7220616674657220697473206475726174696f6e207761732075702e685c5b70726f706f73616c5f686173682c207965732c206e6f5c5d04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a090909f00c6470616c6c65745f656c656374696f6e735f70687261676d656e1870616c6c6574144576656e7404045400011c1c4e65775465726d0400f401ec5665633c283c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e7449642c2042616c616e63654f663c543e293e000014550141206e6577207465726d2077697468205c5b6e65775f6d656d626572735c5d2e205468697320696e64696361746573207468617420656e6f7567682063616e64696461746573206578697374656420746f2072756e550174686520656c656374696f6e2c206e6f74207468617420656e6f756768206861766520686173206265656e20656c65637465642e2054686520696e6e65722076616c7565206d757374206265206578616d696e65644501666f72207468697320707572706f73652e204120604e65775465726d285c5b5c5d296020696e64696361746573207468617420736f6d652063616e6469646174657320676f7420746865697220626f6e645501736c617368656420616e64206e6f6e65207765726520656c65637465642c207768696c73742060456d7074795465726d60206d65616e732074686174206e6f2063616e64696461746573206578697374656420746f2c626567696e20776974682e24456d7074795465726d00010831014e6f20286f72206e6f7420656e6f756768292063616e64696461746573206578697374656420666f72207468697320726f756e642e205468697320697320646966666572656e742066726f6dc8604e65775465726d285c5b5c5d29602e2053656520746865206465736372697074696f6e206f6620604e65775465726d602e34456c656374696f6e4572726f72000204e4496e7465726e616c206572726f722068617070656e6564207768696c6520747279696e6720746f20706572666f726d20656c656374696f6e2e304d656d6265724b69636b656404000001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e744964000308510141205c5b6d656d6265725c5d20686173206265656e2072656d6f7665642e20546869732073686f756c6420616c7761797320626520666f6c6c6f7765642062792065697468657220604e65775465726d60206f723060456d7074795465726d602e2452656e6f756e63656404000001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e74496400040498536f6d656f6e65206861732072656e6f756e6365642074686569722063616e6469646163792e4043616e646964617465536c617368656408000001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e744964000018013042616c616e63654f663c543e000510590141205c5b63616e6469646174655c5d2077617320736c6173686564206279205c5b616d6f756e745c5d2064756520746f206661696c696e6720746f206f627461696e20612073656174206173206d656d626572206f722872756e6e65722d75702e00e44e6f74652074686174206f6c64206d656d6265727320616e642072756e6e6572732d75702061726520616c736f2063616e646964617465732e4453656174486f6c646572536c617368656408000001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e744964000018013042616c616e63654f663c543e000604550141205c5b7365617420686f6c6465725c5d2077617320736c6173686564206279205c5b616d6f756e745c5d206279206265696e6720666f72636566756c6c792072656d6f7665642066726f6d20746865207365742e04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a090909f4000002f800f800000408001800fc0c4470616c6c65745f6d656d626572736869701870616c6c6574144576656e740804540004490001182c4d656d6265724164646564000004e054686520676976656e206d656d626572207761732061646465643b2073656520746865207472616e73616374696f6e20666f722077686f2e344d656d62657252656d6f766564000104e854686520676976656e206d656d626572207761732072656d6f7665643b2073656520746865207472616e73616374696f6e20666f722077686f2e384d656d6265727353776170706564000204d854776f206d656d62657273207765726520737761707065643b2073656520746865207472616e73616374696f6e20666f722077686f2e304d656d6265727352657365740003041501546865206d656d62657273686970207761732072657365743b2073656520746865207472616e73616374696f6e20666f722077686f20746865206e6577207365742069732e284b65794368616e676564000404844f6e65206f6620746865206d656d6265727327206b657973206368616e6765642e1444756d6d790005046c5068616e746f6d206d656d6265722c206e6576657220757365642e04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a09090901010c3c70616c6c65745f74726561737572791870616c6c6574144576656e7408045400044900011c2050726f706f736564040010013450726f706f73616c496e646578000004804e65772070726f706f73616c2e205c5b70726f706f73616c5f696e6465785c5d205370656e64696e67040018013c42616c616e63654f663c542c20493e00010439015765206861766520656e6465642061207370656e6420706572696f6420616e642077696c6c206e6f7720616c6c6f636174652066756e64732e205c5b6275646765745f72656d61696e696e675c5d1c417761726465640c0010013450726f706f73616c496e646578000018013c42616c616e63654f663c542c20493e0000000130543a3a4163636f756e7449640002041901536f6d652066756e64732068617665206265656e20616c6c6f63617465642e205c5b70726f706f73616c5f696e6465782c2061776172642c2062656e65666963696172795c5d2052656a6563746564080010013450726f706f73616c496e646578000018013c42616c616e63654f663c542c20493e0003042101412070726f706f73616c207761732072656a65637465643b2066756e6473207765726520736c61736865642e205c5b70726f706f73616c5f696e6465782c20736c61736865645c5d144275726e74040018013c42616c616e63654f663c542c20493e000404ac536f6d65206f66206f75722066756e64732068617665206265656e206275726e742e205c5b6275726e5c5d20526f6c6c6f766572040018013c42616c616e63654f663c542c20493e0005082d015370656e64696e67206861732066696e69736865643b20746869732069732074686520616d6f756e74207468617420726f6c6c73206f76657220756e74696c206e657874207370656e642e505c5b6275646765745f72656d61696e696e675c5d1c4465706f736974040018013c42616c616e63654f663c542c20493e000604ac536f6d652066756e64732068617665206265656e206465706f73697465642e205c5b6465706f7369745c5d04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a0909090501105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e18636c61696d731870616c6c6574144576656e740404540001041c436c61696d65640c00000130543a3a4163636f756e74496400000901013c457468657265756d41646472657373000018013042616c616e63654f663c543e000004f0536f6d656f6e6520636c61696d656420736f6d6520444f54732e20605b77686f2c20657468657265756d5f616464726573732c20616d6f756e745d6004a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a09090909010c5c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e18636c61696d733c457468657265756d41646472657373000004000d0101205b75383b2032305d00000d0100000314000000080011010c3870616c6c65745f76657374696e671870616c6c6574144576656e740404540001083856657374696e67557064617465640800000130543a3a4163636f756e744964000018013042616c616e63654f663c543e00000c510154686520616d6f756e742076657374656420686173206265656e20757064617465642e205468697320636f756c6420696e6469636174652061206368616e676520696e2066756e647320617661696c61626c652e25015468652062616c616e636520676976656e2069732074686520616d6f756e74207768696368206973206c65667420756e7665737465642028616e642074687573206c6f636b6564292e545c5b6163636f756e742c20756e7665737465645c5d4056657374696e67436f6d706c657465640400000130543a3a4163636f756e7449640001049c416e205c5b6163636f756e745c5d20686173206265636f6d652066756c6c79207665737465642e04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a09090915010c3870616c6c65745f7574696c6974791870616c6c6574144576656e7400010c404261746368496e746572727570746564080010010c753332000064013444697370617463684572726f7200000855014261746368206f66206469737061746368657320646964206e6f7420636f6d706c6574652066756c6c792e20496e646578206f66206669727374206661696c696e6720646973706174636820676976656e2c2061738c77656c6c20617320746865206572726f722e205c5b696e6465782c206572726f725c5d384261746368436f6d706c65746564000104c84261746368206f66206469737061746368657320636f6d706c657465642066756c6c792077697468206e6f206572726f722e344974656d436f6d706c657465640002041d01412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206e6f206572726f722e04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a09090919010c3c70616c6c65745f6964656e746974791870616c6c6574144576656e740404540001282c4964656e746974795365740400000130543a3a4163636f756e7449640000040d0141206e616d652077617320736574206f72207265736574202877686963682077696c6c2072656d6f766520616c6c206a756467656d656e7473292e205c5b77686f5c5d3c4964656e74697479436c65617265640800000130543a3a4163636f756e744964000018013042616c616e63654f663c543e000104110141206e616d652077617320636c65617265642c20616e642074686520676976656e2062616c616e63652072657475726e65642e205c5b77686f2c206465706f7369745c5d384964656e746974794b696c6c65640800000130543a3a4163636f756e744964000018013042616c616e63654f663c543e000204090141206e616d65207761732072656d6f76656420616e642074686520676976656e2062616c616e636520736c61736865642e205c5b77686f2c206465706f7369745c5d484a756467656d656e745265717565737465640800000130543a3a4163636f756e7449640000100138526567697374726172496e646578000304010141206a756467656d656e74207761732061736b65642066726f6d2061207265676973747261722e205c5b77686f2c207265676973747261725f696e6465785c5d504a756467656d656e74556e7265717565737465640800000130543a3a4163636f756e7449640000100138526567697374726172496e646578000404ec41206a756467656d656e74207265717565737420776173207265747261637465642e205c5b77686f2c207265676973747261725f696e6465785c5d384a756467656d656e74476976656e0800000130543a3a4163636f756e7449640000100138526567697374726172496e646578000504050141206a756467656d656e742077617320676976656e2062792061207265676973747261722e205c5b7461726765742c207265676973747261725f696e6465785c5d3852656769737472617241646465640400100138526567697374726172496e646578000604a84120726567697374726172207761732061646465642e205c5b7265676973747261725f696e6465785c5d405375624964656e7469747941646465640c00000130543a3a4163636f756e7449640000000130543a3a4163636f756e744964000018013042616c616e63654f663c543e000704510141207375622d6964656e746974792077617320616464656420746f20616e206964656e7469747920616e6420746865206465706f73697420706169642e205c5b7375622c206d61696e2c206465706f7369745c5d485375624964656e7469747952656d6f7665640c00000130543a3a4163636f756e7449640000000130543a3a4163636f756e744964000018013042616c616e63654f663c543e000808090141207375622d6964656e74697479207761732072656d6f7665642066726f6d20616e206964656e7469747920616e6420746865206465706f7369742066726565642e585c5b7375622c206d61696e2c206465706f7369745c5d485375624964656e746974795265766f6b65640c00000130543a3a4163636f756e7449640000000130543a3a4163636f756e744964000018013042616c616e63654f663c543e000908190141207375622d6964656e746974792077617320636c65617265642c20616e642074686520676976656e206465706f7369742072657061747269617465642066726f6d2074686525016d61696e206964656e74697479206163636f756e7420746f20746865207375622d6964656e74697479206163636f756e742e205c5b7375622c206d61696e2c206465706f7369745c5d04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a0909091d010c3070616c6c65745f70726f78791870616c6c6574144576656e740404540001103450726f7879457865637574656404007c01384469737061746368526573756c74000004e8412070726f78792077617320657865637574656420636f72726563746c792c20776974682074686520676976656e205c5b726573756c745c5d2e40416e6f6e796d6f7573437265617465641000000130543a3a4163636f756e7449640000000130543a3a4163636f756e744964000021010130543a3a50726f78795479706500002501010c75313600010ce8416e6f6e796d6f7573206163636f756e7420686173206265656e2063726561746564206279206e65772070726f7879207769746820676976656e0901646973616d626967756174696f6e20696e64657820616e642070726f787920747970652e205c5b616e6f6e796d6f75732c2077686f2c2070726f78795f747970652c58646973616d626967756174696f6e5f696e6465785c5d24416e6e6f756e6365640c00000130543a3a4163636f756e7449640000000130543a3a4163636f756e744964000024013443616c6c486173684f663c543e0002044d01416e20616e6e6f756e63656d656e742077617320706c6163656420746f206d616b6520612063616c6c20696e20746865206675747572652e205c5b7265616c2c2070726f78792c2063616c6c5f686173685c5d2850726f787941646465641000000130543a3a4163636f756e7449640000000130543a3a4163636f756e744964000021010130543a3a50726f7879547970650000100138543a3a426c6f636b4e756d626572000304f8412070726f7879207761732061646465642e205c5b64656c656761746f722c2064656c6567617465652c2070726f78795f747970652c2064656c61795c5d04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a09090921010840706f6c6b61646f745f72756e74696d652450726f78795479706500011c0c416e790000002c4e6f6e5472616e7366657200010028476f7665726e616e63650002001c5374616b696e67000300444964656e746974794a756467656d656e740005002c43616e63656c50726f78790006001c41756374696f6e000700002501000005040029010c3c70616c6c65745f6d756c74697369671870616c6c6574144576656e740404540001102c4e65774d756c74697369670c00000130543a3a4163636f756e7449640000000130543a3a4163636f756e744964000004012043616c6c48617368000004190141206e6577206d756c7469736967206f7065726174696f6e2068617320626567756e2e205c5b617070726f76696e672c206d756c74697369672c2063616c6c5f686173685c5d404d756c7469736967417070726f76616c1000000130543a3a4163636f756e74496400002d01016454696d65706f696e743c543a3a426c6f636b4e756d6265723e0000000130543a3a4163636f756e744964000004012043616c6c48617368000108c841206d756c7469736967206f7065726174696f6e20686173206265656e20617070726f76656420627920736f6d656f6e652eb45c5b617070726f76696e672c2074696d65706f696e742c206d756c74697369672c2063616c6c5f686173685c5d404d756c746973696745786563757465641400000130543a3a4163636f756e74496400002d01016454696d65706f696e743c543a3a426c6f636b4e756d6265723e0000000130543a3a4163636f756e744964000004012043616c6c4861736800007c01384469737061746368526573756c74000204550141206d756c7469736967206f7065726174696f6e20686173206265656e2065786563757465642e205c5b617070726f76696e672c2074696d65706f696e742c206d756c74697369672c2063616c6c5f686173685c5d444d756c746973696743616e63656c6c65641000000130543a3a4163636f756e74496400002d01016454696d65706f696e743c543a3a426c6f636b4e756d6265723e0000000130543a3a4163636f756e744964000004012043616c6c486173680003045d0141206d756c7469736967206f7065726174696f6e20686173206265656e2063616e63656c6c65642e205c5b63616e63656c6c696e672c2074696d65706f696e742c206d756c74697369672c2063616c6c5f686173685c5d04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a0909092d01083c70616c6c65745f6d756c74697369672454696d65706f696e74042c426c6f636b4e756d62657201100008011868656967687410012c426c6f636b4e756d626572000114696e64657810010c753332000031010c3c70616c6c65745f626f756e746965731870616c6c6574144576656e7404045400011c38426f756e747950726f706f736564040010012c426f756e7479496e646578000004784e657720626f756e74792070726f706f73616c2e205c5b696e6465785c5d38426f756e747952656a6563746564080010012c426f756e7479496e646578000018013042616c616e63654f663c543e0001040d014120626f756e74792070726f706f73616c207761732072656a65637465643b2066756e6473207765726520736c61736865642e205c5b696e6465782c20626f6e645c5d48426f756e7479426563616d65416374697665040010012c426f756e7479496e646578000204e04120626f756e74792070726f706f73616c2069732066756e64656420616e6420626563616d65206163746976652e205c5b696e6465785c5d34426f756e747941776172646564080010012c426f756e7479496e6465780000000130543a3a4163636f756e744964000304f04120626f756e7479206973206177617264656420746f20612062656e65666963696172792e205c5b696e6465782c2062656e65666963696172795c5d34426f756e7479436c61696d65640c0010012c426f756e7479496e646578000018013042616c616e63654f663c543e0000000130543a3a4163636f756e74496400040409014120626f756e747920697320636c61696d65642062792062656e65666963696172792e205c5b696e6465782c207061796f75742c2062656e65666963696172795c5d38426f756e747943616e63656c6564040010012c426f756e7479496e646578000504804120626f756e74792069732063616e63656c6c65642e205c5b696e6465785c5d38426f756e7479457874656e646564040010012c426f756e7479496e646578000604984120626f756e74792065787069727920697320657874656e6465642e205c5b696e6465785c5d04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a09090935010c2c70616c6c65745f746970731870616c6c6574144576656e74040454000114184e6577546970040024011c543a3a48617368000004c841206e6577207469702073756767657374696f6e20686173206265656e206f70656e65642e205c5b7469705f686173685c5d28546970436c6f73696e67040024011c543a3a486173680001040d0141207469702073756767657374696f6e206861732072656163686564207468726573686f6c6420616e6420697320636c6f73696e672e205c5b7469705f686173685c5d24546970436c6f7365640c0024011c543a3a486173680000000130543a3a4163636f756e744964000018013042616c616e63654f663c543e000204ec41207469702073756767657374696f6e20686173206265656e20636c6f7365642e205c5b7469705f686173682c2077686f2c207061796f75745c5d30546970526574726163746564040024011c543a3a48617368000304c441207469702073756767657374696f6e20686173206265656e207265747261637465642e205c5b7469705f686173685c5d28546970536c61736865640c0024011c543a3a486173680000000130543a3a4163636f756e744964000018013042616c616e63654f663c543e000404010141207469702073756767657374696f6e20686173206265656e20736c61736865642e205c5b7469705f686173682c2066696e6465722c206465706f7369745c5d04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a09090939010c9070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173651870616c6c6574144576656e7404045400011838536f6c7574696f6e53746f72656408003d01013c456c656374696f6e436f6d707574650000e80110626f6f6c000018b44120736f6c7574696f6e207761732073746f72656420776974682074686520676976656e20636f6d707574652e003d0149662074686520736f6c7574696f6e206973207369676e65642c2074686973206d65616e732074686174206974206861736e277420796574206265656e2070726f6365737365642e204966207468650501736f6c7574696f6e20697320756e7369676e65642c2074686973206d65616e7320746861742069742068617320616c736f206265656e2070726f6365737365642e0051015468652060626f6f6c6020697320607472756560207768656e20612070726576696f757320736f6c7574696f6e2077617320656a656374656420746f206d616b6520726f6f6d20666f722074686973206f6e652e44456c656374696f6e46696e616c697a656404004101015c4f7074696f6e3c456c656374696f6e436f6d707574653e000108550154686520656c656374696f6e20686173206265656e2066696e616c697a65642c20776974682060536f6d6560206f662074686520676976656e20636f6d7075746174696f6e2c206f7220656c73652069662074686560656c656374696f6e206661696c65642c20604e6f6e65602e20526577617264656408000001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e744964000018013042616c616e63654f663c543e0002042501416e206163636f756e7420686173206265656e20726577617264656420666f72207468656972207369676e6564207375626d697373696f6e206265696e672066696e616c697a65642e1c536c617368656408000001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e744964000018013042616c616e63654f663c543e0003042101416e206163636f756e7420686173206265656e20736c617368656420666f72207375626d697474696e6720616e20696e76616c6964207369676e6564207375626d697373696f6e2e485369676e6564506861736553746172746564040010010c753332000404c0546865207369676e6564207068617365206f662074686520676976656e20726f756e642068617320737461727465642e50556e7369676e6564506861736553746172746564040010010c753332000504c854686520756e7369676e6564207068617365206f662074686520676976656e20726f756e642068617320737461727465642e04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a0909093d01089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173653c456c656374696f6e436f6d707574650001141c4f6e436861696e000000185369676e656400010020556e7369676e65640002002046616c6c6261636b00030024456d657267656e637900040000410104184f7074696f6e040454013d010108104e6f6e6500000010536f6d6504003d0100000100004501106c706f6c6b61646f745f72756e74696d655f70617261636861696e7324696e636c7573696f6e1870616c6c6574144576656e7404045400010c3c43616e6469646174654261636b656410004901016443616e646964617465526563656970743c543a3a486173683e000069010120486561644461746100006d010124436f7265496e64657800007101012847726f7570496e646578000004c0412063616e64696461746520776173206261636b65642e20605b63616e6469646174652c20686561645f646174615d604443616e646964617465496e636c7564656410004901016443616e646964617465526563656970743c543a3a486173683e000069010120486561644461746100006d010124436f7265496e64657800007101012847726f7570496e646578000104c8412063616e6469646174652077617320696e636c756465642e20605b63616e6469646174652c20686561645f646174615d604443616e64696461746554696d65644f75740c004901016443616e646964617465526563656970743c543a3a486173683e000069010120486561644461746100006d010124436f7265496e646578000204bc412063616e6469646174652074696d6564206f75742e20605b63616e6469646174652c20686561645f646174615d6004a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a09090949010c4c706f6c6b61646f745f7072696d6974697665730876314043616e6469646174655265636569707404044801240008012864657363726970746f724d01015843616e64696461746544657363726970746f723c483e000140636f6d6d69746d656e74735f686173682401104861736800004d010c4c706f6c6b61646f745f7072696d6974697665730876314c43616e64696461746544657363726970746f7204044801240024011c706172615f696451010108496400013072656c61795f706172656e7424010448000120636f6c6c61746f7255010128436f6c6c61746f7249640001787065727369737465645f76616c69646174696f6e5f646174615f6861736824011048617368000120706f765f6861736824011048617368000130657261737572655f726f6f74240110486173680001247369676e617475726559010144436f6c6c61746f725369676e6174757265000124706172615f686561642401104861736800015076616c69646174696f6e5f636f64655f686173686501014856616c69646174696f6e436f646548617368000051010c48706f6c6b61646f745f70617261636861696e287072696d6974697665730849640000040010010c75333200005501104c706f6c6b61646f745f7072696d69746976657308763030636f6c6c61746f725f617070185075626c696300000400bc013c737232353531393a3a5075626c696300005901104c706f6c6b61646f745f7072696d69746976657308763030636f6c6c61746f725f617070245369676e6174757265000004005d010148737232353531393a3a5369676e617475726500005d010c1c73705f636f72651c73723235353139245369676e617475726500000400610101205b75383b2036345d0000610100000340000000080065010c48706f6c6b61646f745f70617261636861696e287072696d6974697665734856616c69646174696f6e436f6465486173680000040024011048617368000069010c48706f6c6b61646f745f70617261636861696e287072696d6974697665732048656164446174610000040028011c5665633c75383e00006d010c4c706f6c6b61646f745f7072696d69746976657308763124436f7265496e6465780000040010010c753332000071010c4c706f6c6b61646f745f7072696d6974697665730876312847726f7570496e6465780000040010010c75333200007501106c706f6c6b61646f745f72756e74696d655f70617261636861696e731470617261731870616c6c6574144576656e740001144843757272656e74436f646555706461746564040051010118506172614964000004cc43757272656e7420636f646520686173206265656e207570646174656420666f72206120506172612e2060706172615f6964604843757272656e744865616455706461746564040051010118506172614964000104cc43757272656e74206865616420686173206265656e207570646174656420666f72206120506172612e2060706172615f69646050436f6465557067726164655363686564756c6564040051010118506172614964000204dc4120636f6465207570677261646520686173206265656e207363686564756c656420666f72206120506172612e2060706172615f696460304e6577486561644e6f746564040051010118506172614964000304bc41206e6577206865616420686173206265656e206e6f74656420666f72206120506172612e2060706172615f69646030416374696f6e517565756564080051010118506172614964000010013053657373696f6e496e646578000404f041207061726120686173206265656e2071756575656420746f20657865637574652070656e64696e6720616374696f6e732e2060706172615f69646004a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a0909097901106c706f6c6b61646f745f72756e74696d655f70617261636861696e730c756d701870616c6c6574144576656e7400011c34496e76616c6964466f726d617404000401244d657373616765496400000878557077617264206d65737361676520697320696e76616c69642058434d2e205c5b206964205c5d48556e737570706f7274656456657273696f6e04000401244d6573736167654964000108b4557077617264206d65737361676520697320756e737570706f727465642076657273696f6e206f662058434d2e205c5b206964205c5d38457865637574656455707761726408000401244d657373616765496400007d01011c4f7574636f6d65000208bc557077617264206d65737361676520657865637574656420776974682074686520676976656e206f7574636f6d652e445c5b2069642c206f7574636f6d65205c5d3c5765696768744578686175737465640c000401244d657373616765496400002001185765696768740000200118576569676874000308f054686520776569676874206c696d697420666f722068616e646c696e6720646f776e77617264206d657373616765732077617320726561636865642e745c5b2069642c2072656d61696e696e672c207265717569726564205c5d585570776172644d6573736167657352656365697665640c0051010118506172614964000010010c753332000010010c7533320004080101536f6d6520646f776e77617264206d657373616765732068617665206265656e20726563656976656420616e642077696c6c2062652070726f6365737365642e5c5c5b20706172612c20636f756e742c2073697a65205c5d484f766572776569676874456e71756575656410005101011850617261496400000401244d6573736167654964000020013c4f766572776569676874496e6465780000200118576569676874000518090154686520776569676874206275646765742077617320657863656564656420666f7220616e20696e646976696475616c20646f776e77617264206d6573736167652e00550154686973206d6573736167652063616e206265206c617465722064697370617463686564206d616e75616c6c79207573696e672060736572766963655f6f7665727765696768746020646973706174636861626c65987573696e67207468652061737369676e656420606f7665727765696768745f696e646578602e00a85c5b20706172612c2069642c206f7665727765696768745f696e6465782c207265717569726564205c5d484f7665727765696768745365727669636564080020013c4f766572776569676874496e64657800002001185765696768740006105101446f776e77617264206d6573736167652066726f6d20746865206f7665727765696768742071756575652077617320657865637574656420776974682074686520676976656e2061637475616c2077656967687414757365642e00705c5b206f7665727765696768745f696e6465782c2075736564205c5d04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a0909097d01100c78636d087632187472616974731c4f7574636f6d6500010c20436f6d706c657465040020011857656967687400000028496e636f6d706c65746508002001185765696768740000810101144572726f72000100144572726f720400810101144572726f72000200008101100c78636d08763218747261697473144572726f72000168204f766572666c6f7700000034556e696d706c656d656e74656400010060556e74727573746564526573657276654c6f636174696f6e00020064556e7472757374656454656c65706f72744c6f636174696f6e000300444d756c74694c6f636174696f6e46756c6c000400684d756c74694c6f636174696f6e4e6f74496e7665727469626c65000500244261644f726967696e0006003c496e76616c69644c6f636174696f6e0007003441737365744e6f74466f756e64000800544661696c6564546f5472616e7361637441737365740009003c4e6f74576974686472617761626c65000a00484c6f636174696f6e43616e6e6f74486f6c64000b0054457863656564734d61784d65737361676553697a65000c005844657374696e6174696f6e556e737570706f72746564000d00245472616e73706f7274000e0028556e726f757461626c65000f0030556e6b6e6f776e436c61696d001000384661696c6564546f4465636f646500110054546f6f4d7563685765696768745265717569726564001200384e6f74486f6c64696e674665657300130030546f6f457870656e736976650014001054726170040020010c7536340015004c556e68616e646c656458636d56657273696f6e001600485765696768744c696d69745265616368656404002001185765696768740017001c426172726965720018004c5765696768744e6f74436f6d70757461626c65001900008501106c706f6c6b61646f745f72756e74696d655f70617261636861696e731068726d701870616c6c6574144576656e74040454000110504f70656e4368616e6e656c526571756573746564100051010118506172614964000051010118506172614964000010010c753332000010010c753332000008704f70656e2048524d50206368616e6e656c207265717565737465642e1d01605b73656e6465722c20726563697069656e742c2070726f706f7365645f6d61785f63617061636974792c2070726f706f7365645f6d61785f6d6573736167655f73697a655d604c4f70656e4368616e6e656c43616e63656c656408005101011850617261496400008901013448726d704368616e6e656c49640001082901416e2048524d50206368616e6e656c20726571756573742073656e7420627920746865207265636569766572207761732063616e63656c6564206279206569746865722070617274792e70605b62795f70617261636861696e2c206368616e6e656c5f69645d604c4f70656e4368616e6e656c4163636570746564080051010118506172614964000051010118506172614964000204c44f70656e2048524d50206368616e6e656c2061636365707465642e20605b73656e6465722c20726563697069656e745d60344368616e6e656c436c6f73656408005101011850617261496400008901013448726d704368616e6e656c4964000304c448524d50206368616e6e656c20636c6f7365642e20605b62795f70617261636861696e2c206368616e6e656c5f69645d6004a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a09090989010c48706f6c6b61646f745f70617261636861696e287072696d6974697665733448726d704368616e6e656c4964000008011873656e646572510101084964000124726563697069656e7451010108496400008d01105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e3c70617261735f7265676973747261721870616c6c6574144576656e7404045400010c28526567697374657265640800510101185061726149640000000130543a3a4163636f756e744964000000304465726567697374657265640400510101185061726149640001002052657365727665640800510101185061726149640000000130543a3a4163636f756e74496400020004a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a0909099101105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e14736c6f74731870616c6c6574144576656e74040454000108384e65774c65617365506572696f6404001001404c65617365506572696f644f663c543e0000049041206e657720605b6c656173655f706572696f645d6020697320626567696e6e696e672e184c65617365641800510101185061726149640000000130543a3a4163636f756e74496400001001404c65617365506572696f644f663c543e00001001404c65617365506572696f644f663c543e000018013042616c616e63654f663c543e000018013042616c616e63654f663c543e00011035014120706172612068617320776f6e2074686520726967687420746f206120636f6e74696e756f757320736574206f66206c6561736520706572696f647320617320612070617261636861696e2e450146697273742062616c616e636520697320616e7920657874726120616d6f756e74207265736572766564206f6e20746f70206f662074686520706172612773206578697374696e67206465706f7369742eb05365636f6e642062616c616e63652069732074686520746f74616c20616d6f756e742072657365727665642e4901605b70617261636861696e5f69642c206c65617365722c20706572696f645f626567696e2c20706572696f645f636f756e742c2065787472615f72657365727665642c20746f74616c5f616d6f756e745d6004a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a0909099501105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e2061756374696f6e731870616c6c6574144576656e7404045400011c3841756374696f6e537461727465640c0010013041756374696f6e496e64657800001001404c65617365506572696f644f663c543e0000100138543a3a426c6f636b4e756d62657200000c4901416e2061756374696f6e20737461727465642e2050726f76696465732069747320696e64657820616e642074686520626c6f636b206e756d6265722077686572652069742077696c6c20626567696e20746f1501636c6f736520616e6420746865206669727374206c6561736520706572696f64206f662074686520717561647275706c657420746861742069732061756374696f6e65642e9c605b61756374696f6e5f696e6465782c206c656173655f706572696f642c20656e64696e675d603441756374696f6e436c6f736564040010013041756374696f6e496e6465780001040101416e2061756374696f6e20656e6465642e20416c6c2066756e6473206265636f6d6520756e72657365727665642e20605b61756374696f6e5f696e6465785d602052657365727665640c00000130543a3a4163636f756e744964000018013042616c616e63654f663c543e000018013042616c616e63654f663c543e000208490146756e6473207765726520726573657276656420666f7220612077696e6e696e67206269642e2046697273742062616c616e63652069732074686520657874726120616d6f756e742072657365727665642ef45365636f6e642069732074686520746f74616c2e20605b6269646465722c2065787472615f72657365727665642c20746f74616c5f616d6f756e745d6028556e72657365727665640800000130543a3a4163636f756e744964000018013042616c616e63654f663c543e000304290146756e6473207765726520756e72657365727665642073696e636520626964646572206973206e6f206c6f6e676572206163746976652e20605b6269646465722c20616d6f756e745d604852657365727665436f6e66697363617465640c00510101185061726149640000000130543a3a4163636f756e744964000018013042616c616e63654f663c543e00040c7501536f6d656f6e6520617474656d7074656420746f206c65617365207468652073616d6520736c6f7420747769636520666f7220612070617261636861696e2e2054686520616d6f756e742069732068656c6420696e207265736572766598627574206e6f2070617261636861696e20736c6f7420686173206265656e206c65617365642e80605b70617261636861696e5f69642c206c65617365722c20616d6f756e745d602c42696441636365707465641400000130543a3a4163636f756e744964000051010118506172614964000018013042616c616e63654f663c543e00001001404c65617365506572696f644f663c543e00001001404c65617365506572696f644f663c543e000508c841206e65772062696420686173206265656e206163636570746564206173207468652063757272656e742077696e6e65722ebc605b77686f2c20706172615f69642c20616d6f756e742c2066697273745f736c6f742c206c6173745f736c6f745d603457696e6e696e674f6666736574080010013041756374696f6e496e6465780000100138543a3a426c6f636b4e756d6265720006086d015468652077696e6e696e67206f6666736574207761732063686f73656e20666f7220616e2061756374696f6e2e20546869732077696c6c206d617020696e746f20746865206057696e6e696e67602073746f72616765206d61702e7c605b61756374696f6e5f696e6465782c20626c6f636b5f6e756d6265725d6004a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a0909099901105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e2463726f77646c6f616e1870616c6c6574144576656e740404540001281c43726561746564040051010118506172614964000004c84372656174652061206e65772063726f77646c6f616e696e672063616d706169676e2e20605b66756e645f696e6465785d602c436f6e74726962757465640c00000130543a3a4163636f756e744964000051010118506172614964000018013042616c616e63654f663c543e000104e0436f6e747269627574656420746f20612063726f77642073616c652e20605b77686f2c2066756e645f696e6465782c20616d6f756e745d602057697468647265770c00000130543a3a4163636f756e744964000051010118506172614964000018013042616c616e63654f663c543e0002040d0157697468647265772066756c6c2062616c616e6365206f66206120636f6e7472696275746f722e20605b77686f2c2066756e645f696e6465782c20616d6f756e745d60445061727469616c6c79526566756e6465640400510101185061726149640003082d01546865206c6f616e7320696e20612066756e642068617665206265656e207061727469616c6c7920646973736f6c7665642c20692e652e2074686572652061726520736f6d65206c656674f06f766572206368696c64206b6579732074686174207374696c6c206e65656420746f206265206b696c6c65642e20605b66756e645f696e6465785d602c416c6c526566756e646564040051010118506172614964000404d8416c6c206c6f616e7320696e20612066756e642068617665206265656e20726566756e6465642e20605b66756e645f696e6465785d6024446973736f6c7665640400510101185061726149640005048446756e6420697320646973736f6c7665642e20605b66756e645f696e6465785d603c48616e646c65426964526573756c7408005101011850617261496400007c01384469737061746368526573756c74000604f454686520726573756c74206f6620747279696e6720746f207375626d69742061206e65772062696420746f2074686520536c6f74732070616c6c65742e18456469746564040051010118506172614964000704010154686520636f6e66696775726174696f6e20746f20612063726f77646c6f616e20686173206265656e206564697465642e20605b66756e645f696e6465785d602c4d656d6f557064617465640c00000130543a3a4163636f756e744964000051010118506172614964000028011c5665633c75383e000804c841206d656d6f20686173206265656e20757064617465642e20605b77686f2c2066756e645f696e6465782c206d656d6f5d603c4164646564546f4e65775261697365040051010118506172614964000904a0412070617261636861696e20686173206265656e206d6f76656420746f20604e657752616973656004a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a0909099d0108306672616d655f73797374656d14506861736500010c384170706c7945787472696e736963040010010c7533320000003046696e616c697a6174696f6e00010038496e697469616c697a6174696f6e00020000a1010000022400a5010000027400a90108306672616d655f73797374656d584c61737452756e74696d6555706772616465496e666f0000080130737065635f76657273696f6ead01014c636f6465633a3a436f6d706163743c7533323e000124737065635f6e616d65b101016473705f72756e74696d653a3a52756e74696d65537472696e670000ad010000061000b1010000050200b5010c306672616d655f73797374656d1870616c6c65741043616c6c0404540001282866696c6c5f626c6f636b040114726174696fb901011c50657262696c6c00000405014120646973706174636820746861742077696c6c2066696c6c2074686520626c6f636b2077656967687420757020746f2074686520676976656e20726174696f2e1872656d61726b04011872656d61726b28011c5665633c75383e000114684d616b6520736f6d65206f6e2d636861696e2072656d61726b2e002823203c7765696768743e202d20604f283129602c23203c2f7765696768743e387365745f686561705f7061676573040114706167657320010c753634000224f853657420746865206e756d626572206f6620706167657320696e2074686520576562417373656d626c7920656e7669726f6e6d656e74277320686561702e002823203c7765696768743e202d20604f28312960482d20312073746f726167652077726974652e602d2042617365205765696768743a20312e34303520c2b5735c2d203120777269746520746f20484541505f50414745533c2d203120646967657374206974656d2c23203c2f7765696768743e207365745f636f6465040110636f646528011c5665633c75383e0003306453657420746865206e65772072756e74696d6520636f64652e002823203c7765696768743e31012d20604f2843202b2053296020776865726520604360206c656e677468206f662060636f64656020616e642060536020636f6d706c6578697479206f66206063616e5f7365745f636f64656045012d20312063616c6c20746f206063616e5f7365745f636f6465603a20604f28532960202863616c6c73206073705f696f3a3a6d6973633a3a72756e74696d655f76657273696f6e60207768696368206973342020657870656e73697665292e842d20312073746f726167652077726974652028636f64656320604f28432960292e402d203120646967657374206974656d2e282d2031206576656e742e4d0154686520776569676874206f6620746869732066756e6374696f6e20697320646570656e64656e74206f6e207468652072756e74696d652c206275742067656e6572616c6c7920746869732069732076657279b8657870656e736976652e2057652077696c6c207472656174207468697320617320612066756c6c20626c6f636b2e2c23203c2f7765696768743e5c7365745f636f64655f776974686f75745f636865636b73040110636f646528011c5665633c75383e000424190153657420746865206e65772072756e74696d6520636f646520776974686f757420646f696e6720616e7920636865636b73206f662074686520676976656e2060636f6465602e002823203c7765696768743e8c2d20604f2843296020776865726520604360206c656e677468206f662060636f646560842d20312073746f726167652077726974652028636f64656320604f28432960292e402d203120646967657374206974656d2e282d2031206576656e742e550154686520776569676874206f6620746869732066756e6374696f6e20697320646570656e64656e74206f6e207468652072756e74696d652e2057652077696c6c207472656174207468697320617320612066756c6c48626c6f636b2e2023203c2f7765696768743e5c7365745f6368616e6765735f747269655f636f6e66696704014c6368616e6765735f747269655f636f6e6669674001804f7074696f6e3c4368616e67657354726965436f6e66696775726174696f6e3e0005289c53657420746865206e6577206368616e676573207472696520636f6e66696775726174696f6e2e002823203c7765696768743e202d20604f28312960ac2d20312073746f72616765207772697465206f722064656c6574652028636f64656320604f28312960292ed42d20312063616c6c20746f20606465706f7369745f6c6f67603a20557365732060617070656e6460204150492c20736f204f283129602d2042617365205765696768743a20372e32313820c2b573302d204442205765696768743aa4202020202d205772697465733a204368616e67657320547269652c2053797374656d204469676573742c23203c2f7765696768743e2c7365745f73746f726167650401146974656d73bd0101345665633c4b657956616c75653e0006206853657420736f6d65206974656d73206f662073746f726167652e002823203c7765696768743e902d20604f2849296020776865726520604960206c656e677468206f6620606974656d7360782d206049602073746f72616765207772697465732028604f28312960292e702d2042617365205765696768743a20302e353638202a206920c2b573642d205772697465733a204e756d626572206f66206974656d732c23203c2f7765696768743e306b696c6c5f73746f726167650401106b657973c50101205665633c4b65793e000720744b696c6c20736f6d65206974656d732066726f6d2073746f726167652e002823203c7765696768743ef82d20604f28494b296020776865726520604960206c656e677468206f6620606b6579736020616e6420604b60206c656e677468206f66206f6e65206b6579602d206049602073746f726167652064656c6574696f6e732e6c2d2042617365205765696768743a202e333738202a206920c2b573642d205772697465733a204e756d626572206f66206974656d732c23203c2f7765696768743e2c6b696c6c5f70726566697808011870726566697828010c4b657900011c7375626b65797310010c75333200082c11014b696c6c20616c6c2073746f72616765206974656d7320776974682061206b657920746861742073746172747320776974682074686520676976656e207072656669782e0039012a2a4e4f54453a2a2a2057652072656c79206f6e2074686520526f6f74206f726967696e20746f2070726f7669646520757320746865206e756d626572206f66207375626b65797320756e6465723d0174686520707265666978207765206172652072656d6f76696e6720746f2061636375726174656c792063616c63756c6174652074686520776569676874206f6620746869732066756e6374696f6e2e002823203c7765696768743ed82d20604f285029602077686572652060506020616d6f756e74206f66206b657973207769746820707265666978206070726566697860602d206050602073746f726167652064656c6574696f6e732e702d2042617365205765696768743a20302e383334202a205020c2b5737c2d205772697465733a204e756d626572206f66207375626b657973202b20312c23203c2f7765696768743e4472656d61726b5f776974685f6576656e7404011872656d61726b28011c5665633c75383e000918a44d616b6520736f6d65206f6e2d636861696e2072656d61726b20616e6420656d6974206576656e742e002823203c7765696768743eb42d20604f28622960207768657265206220697320746865206c656e677468206f66207468652072656d61726b2e282d2031206576656e742e2c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632eb9010c3473705f61726974686d65746963287065725f7468696e67731c50657262696c6c0000040010010c7533320000bd01000002c10100c10100000408282800c5010000022800c9010c306672616d655f73797374656d186c696d69747330426c6f636b5765696768747300000c0128626173655f626c6f636b2001185765696768740001246d61785f626c6f636b2001185765696768740001247065725f636c617373cd0101845065724469737061746368436c6173733c57656967687473506572436c6173733e0000cd010c346672616d655f737570706f72741c77656967687473405065724469737061746368436c61737304045401d101000c01186e6f726d616cd10101045400012c6f7065726174696f6e616cd1010104540001246d616e6461746f7279d1010104540000d1010c306672616d655f73797374656d186c696d6974733c57656967687473506572436c6173730000100138626173655f65787472696e7369632001185765696768740001346d61785f65787472696e736963d50101384f7074696f6e3c5765696768743e0001246d61785f746f74616cd50101384f7074696f6e3c5765696768743e0001207265736572766564d50101384f7074696f6e3c5765696768743e0000d50104184f7074696f6e04045401200108104e6f6e6500000010536f6d650400200000010000d9010c306672616d655f73797374656d186c696d6974732c426c6f636b4c656e677468000004010c6d6178dd0101545065724469737061746368436c6173733c7533323e0000dd010c346672616d655f737570706f72741c77656967687473405065724469737061746368436c6173730404540110000c01186e6f726d616c1001045400012c6f7065726174696f6e616c100104540001246d616e6461746f7279100104540000e1010c346672616d655f737570706f72741c776569676874733c52756e74696d65446257656967687400000801107265616420011857656967687400011477726974652001185765696768740000e501082873705f76657273696f6e3852756e74696d6556657273696f6e00001c0124737065635f6e616d65b101013452756e74696d65537472696e67000124696d706c5f6e616d65b101013452756e74696d65537472696e67000144617574686f72696e675f76657273696f6e10010c753332000130737065635f76657273696f6e10010c753332000130696d706c5f76657273696f6e10010c75333200011061706973e901011c4170697356656300014c7472616e73616374696f6e5f76657273696f6e10010c7533320000e901040c436f7704045401ed01000400ed01000000ed01000002f10100f10100000408f5011000f501000003080000000800f9010c306672616d655f73797374656d1870616c6c6574144572726f720404540001143c496e76616c6964537065634e616d650000081101546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e63726561736500010841015468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e00020cec4661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e0009014569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f73697465000304fc537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e74000404350154686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e046c4572726f7220666f72207468652053797374656d2070616c6c6574fd01000002010200010204184f7074696f6e0404540105020108104e6f6e6500000010536f6d650400050200000100000502084070616c6c65745f7363686564756c65722c5363686564756c65645632101043616c6c0109022c426c6f636b4e756d62657201103450616c6c6574734f726967696e019505244163636f756e7449640100001401206d617962655f696478013c4f7074696f6e3c5665633c75383e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6c0902011043616c6c0001386d617962655f706572696f646963110201944f7074696f6e3c7363686564756c653a3a506572696f643c426c6f636b4e756d6265723e3e0001186f726967696e9505013450616c6c6574734f726967696e000009020840706f6c6b61646f745f72756e74696d651043616c6c00019c1853797374656d0400b50101ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53797374656d2c2052756e74696d653e000000245363686564756c657204000d0201b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5363686564756c65722c2052756e74696d653e00010010426162650400150201a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c426162652c2052756e74696d653e0002002454696d657374616d7004003d0201b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54696d657374616d702c2052756e74696d653e0003001c496e64696365730400450201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c496e64696365732c2052756e74696d653e0004002042616c616e6365730400490201b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42616c616e6365732c2052756e74696d653e00050028417574686f72736869700400550201bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c417574686f72736869702c2052756e74696d653e0006001c5374616b696e6704005d0201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5374616b696e672c2052756e74696d653e0007001c53657373696f6e0400810201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53657373696f6e2c2052756e74696d653e0009001c4772616e6470610400950201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4772616e6470612c2052756e74696d653e000b0020496d4f6e6c696e650400c10201b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c496d4f6e6c696e652c2052756e74696d653e000c002444656d6f63726163790400dd0201b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c44656d6f63726163792c2052756e74696d653e000e001c436f756e63696c0400ed0201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f756e63696c2c2052756e74696d653e000f0048546563686e6963616c436f6d6d69747465650400f50201dd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c546563686e6963616c436f6d6d69747465652c2052756e74696d653e0010004050687261676d656e456c656374696f6e0400f90201d50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50687261676d656e456c656374696f6e2c2052756e74696d653e0011004c546563686e6963616c4d656d626572736869700400010301e10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c546563686e6963616c4d656d626572736869702c2052756e74696d653e0012002054726561737572790400050301b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54726561737572792c2052756e74696d653e00130018436c61696d730400090301ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436c61696d732c2052756e74696d653e0018001c56657374696e670400250301b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c56657374696e672c2052756e74696d653e0019001c5574696c69747904002d0301b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5574696c6974792c2052756e74696d653e001a00204964656e746974790400350301b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4964656e746974792c2052756e74696d653e001c001450726f78790400d50301a90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50726f78792c2052756e74696d653e001d00204d756c74697369670400dd0301b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d756c74697369672c2052756e74696d653e001e0020426f756e746965730400e50301b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c426f756e746965732c2052756e74696d653e00220010546970730400e90301a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c546970732c2052756e74696d653e00230068456c656374696f6e50726f76696465724d756c746950686173650400ed0301fd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c456c656374696f6e50726f76696465724d756c746950686173652c2052756e74696d653e00240034436f6e66696775726174696f6e0400d90401c90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f6e66696775726174696f6e2c2052756e74696d653e0033002c50617261735368617265640400dd0401c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50617261735368617265642c2052756e74696d653e0034003450617261496e636c7573696f6e0400e10401c90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50617261496e636c7573696f6e2c2052756e74696d653e0035003050617261496e686572656e740400e50401c50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50617261496e686572656e742c2052756e74696d653e0036001450617261730400510501a90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50617261732c2052756e74696d653e0038002c496e697469616c697a65720400550501c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c496e697469616c697a65722c2052756e74696d653e0039000c446d700400590501a10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c446d702c2052756e74696d653e003a000c556d7004005d0501a10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c556d702c2052756e74696d653e003b001048726d700400610501a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c48726d702c2052756e74696d653e003c00245265676973747261720400650501b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5265676973747261722c2052756e74696d653e00460014536c6f74730400690501a90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c536c6f74732c2052756e74696d653e0047002041756374696f6e7304006d0501b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c41756374696f6e732c2052756e74696d653e0048002443726f77646c6f616e0400750501b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c43726f77646c6f616e2c2052756e74696d653e004900000d020c4070616c6c65745f7363686564756c65721870616c6c65741043616c6c040454000118207363686564756c651001107768656e100138543a3a426c6f636b4e756d6265720001386d617962655f706572696f646963110201a04f7074696f6e3c7363686564756c653a3a506572696f643c543a3a426c6f636b4e756d6265723e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6c09020160426f783c3c5420617320436f6e6669673e3a3a43616c6c3e00002870416e6f6e796d6f75736c79207363686564756c652061207461736b2e002823203c7765696768743e9c2d2053203d204e756d626572206f6620616c7265616479207363686564756c65642063616c6c738c2d2042617365205765696768743a2032322e3239202b202e313236202a205320c2b573302d204442205765696768743a48202020202d20526561643a204167656e64614c202020202d2057726974653a204167656e646139012d2057696c6c20757365206261736520776569676874206f662032352077686963682073686f756c6420626520676f6f6420666f7220757020746f203330207363686564756c65642063616c6c732c23203c2f7765696768743e1863616e63656c0801107768656e100138543a3a426c6f636b4e756d626572000114696e64657810010c7533320001289443616e63656c20616e20616e6f6e796d6f75736c79207363686564756c6564207461736b2e002823203c7765696768743e9c2d2053203d204e756d626572206f6620616c7265616479207363686564756c65642063616c6c73902d2042617365205765696768743a2032322e3135202b20322e383639202a205320c2b573302d204442205765696768743a48202020202d20526561643a204167656e64616c202020202d2057726974653a204167656e64612c204c6f6f6b75703d012d2057696c6c20757365206261736520776569676874206f66203130302077686963682073686f756c6420626520676f6f6420666f7220757020746f203330207363686564756c65642063616c6c732c23203c2f7765696768743e387363686564756c655f6e616d6564140108696428011c5665633c75383e0001107768656e100138543a3a426c6f636b4e756d6265720001386d617962655f706572696f646963110201a04f7074696f6e3c7363686564756c653a3a506572696f643c543a3a426c6f636b4e756d6265723e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6c09020160426f783c3c5420617320436f6e6669673e3a3a43616c6c3e000228585363686564756c652061206e616d6564207461736b2e002823203c7765696768743e9c2d2053203d204e756d626572206f6620616c7265616479207363686564756c65642063616c6c73882d2042617365205765696768743a2032392e36202b202e313539202a205320c2b573302d204442205765696768743a68202020202d20526561643a204167656e64612c204c6f6f6b75706c202020202d2057726974653a204167656e64612c204c6f6f6b757049012d2057696c6c20757365206261736520776569676874206f662033352077686963682073686f756c6420626520676f6f6420666f72206d6f7265207468616e203330207363686564756c65642063616c6c732c23203c2f7765696768743e3063616e63656c5f6e616d6564040108696428011c5665633c75383e0003287843616e63656c2061206e616d6564207363686564756c6564207461736b2e002823203c7765696768743e9c2d2053203d204e756d626572206f6620616c7265616479207363686564756c65642063616c6c73902d2042617365205765696768743a2032342e3931202b20322e393037202a205320c2b573302d204442205765696768743a68202020202d20526561643a204167656e64612c204c6f6f6b75706c202020202d2057726974653a204167656e64612c204c6f6f6b75703d012d2057696c6c20757365206261736520776569676874206f66203130302077686963682073686f756c6420626520676f6f6420666f7220757020746f203330207363686564756c65642063616c6c732c23203c2f7765696768743e387363686564756c655f61667465721001146166746572100138543a3a426c6f636b4e756d6265720001386d617962655f706572696f646963110201a04f7074696f6e3c7363686564756c653a3a506572696f643c543a3a426c6f636b4e756d6265723e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6c09020160426f783c3c5420617320436f6e6669673e3a3a43616c6c3e000414a8416e6f6e796d6f75736c79207363686564756c652061207461736b20616674657220612064656c61792e002823203c7765696768743e5453616d65206173205b607363686564756c65605d2e2c23203c2f7765696768743e507363686564756c655f6e616d65645f6166746572140108696428011c5665633c75383e0001146166746572100138543a3a426c6f636b4e756d6265720001386d617962655f706572696f646963110201a04f7074696f6e3c7363686564756c653a3a506572696f643c543a3a426c6f636b4e756d6265723e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6c09020160426f783c3c5420617320436f6e6669673e3a3a43616c6c3e000514905363686564756c652061206e616d6564207461736b20616674657220612064656c61792e002823203c7765696768743ec453616d65206173205b607363686564756c655f6e616d6564605d2853656c663a3a7363686564756c655f6e616d6564292e2c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e110204184f7074696f6e04045401740108104e6f6e6500000010536f6d65040074000001000015020c2c70616c6c65745f626162651870616c6c65741043616c6c04045400010c4c7265706f72745f65717569766f636174696f6e08014865717569766f636174696f6e5f70726f6f6619020184426f783c45717569766f636174696f6e50726f6f663c543a3a4865616465723e3e00013c6b65795f6f776e65725f70726f6f662d020140543a3a4b65794f776e657250726f6f6600001009015265706f727420617574686f726974792065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667905017468652065717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f660d01616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63652077696c6c306265207265706f727465642e707265706f72745f65717569766f636174696f6e5f756e7369676e656408014865717569766f636174696f6e5f70726f6f6619020184426f783c45717569766f636174696f6e50726f6f663c543a3a4865616465723e3e00013c6b65795f6f776e65725f70726f6f662d020140543a3a4b65794f776e657250726f6f6600012009015265706f727420617574686f726974792065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667905017468652065717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f660d01616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63652077696c6c306265207265706f727465642e0d01546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c791501626c6f636b20617574686f72732077696c6c2063616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c2061732073756368150169662074686520626c6f636b20617574686f7220697320646566696e65642069742077696c6c20626520646566696e6564206173207468652065717569766f636174696f6e247265706f727465722e48706c616e5f636f6e6669675f6368616e6765040118636f6e666967310201504e657874436f6e66696744657363726970746f720002105d01506c616e20616e2065706f636820636f6e666967206368616e67652e205468652065706f636820636f6e666967206368616e6765206973207265636f7264656420616e642077696c6c20626520656e6163746564206f6e5101746865206e6578742063616c6c20746f2060656e6163745f65706f63685f6368616e6765602e2054686520636f6e6669672077696c6c20626520616374697661746564206f6e652065706f63682061667465722e59014d756c7469706c652063616c6c7320746f2074686973206d6574686f642077696c6c207265706c61636520616e79206578697374696e6720706c616e6e656420636f6e666967206368616e6765207468617420686164546e6f74206265656e20656e6163746564207965742e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e1902084873705f636f6e73656e7375735f736c6f74734445717569766f636174696f6e50726f6f660818486561646572011d02084964012502001001206f6666656e646572250201084964000110736c6f7429020110536c6f7400013066697273745f6865616465721d0201184865616465720001347365636f6e645f6865616465721d02011848656164657200001d02102873705f72756e74696d651c67656e65726963186865616465721848656164657208184e756d626572011010486173680121020014012c706172656e745f68617368240130486173683a3a4f75747075740001186e756d626572ad0101184e756d62657200012873746174655f726f6f74240130486173683a3a4f757470757400013c65787472696e736963735f726f6f74240130486173683a3a4f75747075740001186469676573742c01504469676573743c486173683a3a4f75747075743e000021020c2873705f72756e74696d65187472616974732c426c616b6554776f3235360000000025020c4473705f636f6e73656e7375735f626162650c617070185075626c696300000400bc013c737232353531393a3a5075626c696300002902084873705f636f6e73656e7375735f736c6f747310536c6f740000040020010c75363400002d02082873705f73657373696f6e3c4d656d6265727368697050726f6f6600000c011c73657373696f6e10013053657373696f6e496e646578000128747269655f6e6f646573c50101305665633c5665633c75383e3e00013c76616c696461746f725f636f756e7410013856616c696461746f72436f756e74000031020c4473705f636f6e73656e7375735f626162651c64696765737473504e657874436f6e66696744657363726970746f720001040856310801046335020128287536342c2075363429000134616c6c6f7765645f736c6f747339020130416c6c6f776564536c6f7473000100003502000004082020003902084473705f636f6e73656e7375735f6261626530416c6c6f776564536c6f747300010c305072696d617279536c6f7473000000745072696d617279416e645365636f6e64617279506c61696e536c6f74730001006c5072696d617279416e645365636f6e64617279565246536c6f7473000200003d020c4070616c6c65745f74696d657374616d701870616c6c65741043616c6c0404540001040c73657404010c6e6f7741020124543a3a4d6f6d656e7400004054536574207468652063757272656e742074696d652e005501546869732063616c6c2073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6ed470686173652c20696620746869732063616c6c206861736e2774206265656e20696e766f6b656420627920746861742074696d652e0041015468652074696d657374616d702073686f756c642062652067726561746572207468616e207468652070726576696f7573206f6e652062792074686520616d6f756e742073706563696669656420627940604d696e696d756d506572696f64602e00d4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652060496e686572656e74602e002823203c7765696768743e31012d20604f2831296020284e6f7465207468617420696d706c656d656e746174696f6e73206f6620604f6e54696d657374616d7053657460206d75737420616c736f20626520604f283129602961012d20312073746f72616765207265616420616e6420312073746f72616765206d75746174696f6e2028636f64656320604f28312960292e202862656361757365206f6620604469645570646174653a3a74616b656020696e402020606f6e5f66696e616c697a656029d42d2031206576656e742068616e646c657220606f6e5f74696d657374616d705f736574602e204d75737420626520604f283129602e2c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e4102000006200045020c3870616c6c65745f696e64696365731870616c6c65741043616c6c04045400011414636c61696d040114696e64657810013c543a3a4163636f756e74496e6465780000489841737369676e20616e2070726576696f75736c7920756e61737369676e656420696e6465782e00dc5061796d656e743a20604465706f736974602069732072657365727665642066726f6d207468652073656e646572206163636f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e00f02d2060696e646578603a2074686520696e64657820746f20626520636c61696d65642e2054686973206d757374206e6f7420626520696e207573652e0090456d6974732060496e64657841737369676e656460206966207375636365737366756c2e002823203c7765696768743e242d20604f283129602e982d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28312960292e602d204f6e652072657365727665206f7065726174696f6e2e302d204f6e65206576656e742e4c2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d902d204442205765696768743a203120526561642f577269746520284163636f756e7473292c23203c2f7765696768743e207472616e7366657208010c6e6577000130543a3a4163636f756e744964000114696e64657810013c543a3a4163636f756e74496e6465780001505d0141737369676e20616e20696e64657820616c7265616479206f776e6564206279207468652073656e64657220746f20616e6f74686572206163636f756e742e205468652062616c616e6365207265736572766174696f6eb86973206566666563746976656c79207472616e7366657272656420746f20746865206e6577206163636f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0025012d2060696e646578603a2074686520696e64657820746f2062652072652d61737369676e65642e2054686973206d757374206265206f776e6564206279207468652073656e6465722e5d012d20606e6577603a20746865206e6577206f776e6572206f662074686520696e6465782e20546869732066756e6374696f6e2069732061206e6f2d6f7020696620697420697320657175616c20746f2073656e6465722e0090456d6974732060496e64657841737369676e656460206966207375636365737366756c2e002823203c7765696768743e242d20604f283129602e982d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28312960292e642d204f6e65207472616e73666572206f7065726174696f6e2e302d204f6e65206576656e742e4c2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d302d204442205765696768743ae02020202d2052656164733a20496e6469636573204163636f756e74732c2053797374656d204163636f756e742028726563697069656e7429e42020202d205772697465733a20496e6469636573204163636f756e74732c2053797374656d204163636f756e742028726563697069656e74292c23203c2f7765696768743e1066726565040114696e64657810013c543a3a4163636f756e74496e646578000248944672656520757020616e20696e646578206f776e6564206279207468652073656e6465722e005d015061796d656e743a20416e792070726576696f7573206465706f73697420706c6163656420666f722074686520696e64657820697320756e726573657276656420696e207468652073656e646572206163636f756e742e005501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d757374206f776e2074686520696e6465782e000d012d2060696e646578603a2074686520696e64657820746f2062652066726565642e2054686973206d757374206265206f776e6564206279207468652073656e6465722e0084456d6974732060496e646578467265656460206966207375636365737366756c2e002823203c7765696768743e242d20604f283129602e982d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28312960292e602d204f6e652072657365727665206f7065726174696f6e2e302d204f6e65206576656e742e4c2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d902d204442205765696768743a203120526561642f577269746520284163636f756e7473292c23203c2f7765696768743e38666f7263655f7472616e736665720c010c6e6577000130543a3a4163636f756e744964000114696e64657810013c543a3a4163636f756e74496e646578000118667265657a65e80110626f6f6c0003545501466f72636520616e20696e64657820746f20616e206163636f756e742e205468697320646f65736e277420726571756972652061206465706f7369742e2049662074686520696e64657820697320616c7265616479e868656c642c207468656e20616e79206465706f736974206973207265696d62757273656420746f206974732063757272656e74206f776e65722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e00a42d2060696e646578603a2074686520696e64657820746f206265202872652d2961737369676e65642e5d012d20606e6577603a20746865206e6577206f776e6572206f662074686520696e6465782e20546869732066756e6374696f6e2069732061206e6f2d6f7020696620697420697320657175616c20746f2073656e6465722e41012d2060667265657a65603a2069662073657420746f206074727565602c2077696c6c20667265657a652074686520696e64657820736f2069742063616e6e6f74206265207472616e736665727265642e0090456d6974732060496e64657841737369676e656460206966207375636365737366756c2e002823203c7765696768743e242d20604f283129602e982d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28312960292e782d20557020746f206f6e652072657365727665206f7065726174696f6e2e302d204f6e65206576656e742e4c2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d302d204442205765696768743af42020202d2052656164733a20496e6469636573204163636f756e74732c2053797374656d204163636f756e7420286f726967696e616c206f776e657229f82020202d205772697465733a20496e6469636573204163636f756e74732c2053797374656d204163636f756e7420286f726967696e616c206f776e6572292c23203c2f7765696768743e18667265657a65040114696e64657810013c543a3a4163636f756e74496e6465780004484101467265657a6520616e20696e64657820736f2069742077696c6c20616c7761797320706f696e7420746f207468652073656e646572206163636f756e742e205468697320636f6e73756d657320746865206465706f7369742e005901546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d757374206861766520616c6e6f6e2d66726f7a656e206163636f756e742060696e646578602e00ac2d2060696e646578603a2074686520696e64657820746f2062652066726f7a656e20696e20706c6163652e0088456d6974732060496e64657846726f7a656e60206966207375636365737366756c2e002823203c7765696768743e242d20604f283129602e982d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28312960292e702d20557020746f206f6e6520736c617368206f7065726174696f6e2e302d204f6e65206576656e742e4c2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d902d204442205765696768743a203120526561642f577269746520284163636f756e7473292c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e49020c3c70616c6c65745f62616c616e6365731870616c6c65741043616c6c080454000449000118207472616e73666572080110646573744d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500011476616c7565cc0128543a3a42616c616e6365000070d45472616e7366657220736f6d65206c697175696420667265652062616c616e636520746f20616e6f74686572206163636f756e742e000501607472616e73666572602077696c6c207365742074686520604672656542616c616e636560206f66207468652073656e64657220616e642072656365697665722e1d0149742077696c6c2064656372656173652074686520746f74616c2069737375616e6365206f66207468652073797374656d2062792074686520605472616e73666572466565602e11014966207468652073656e6465722773206163636f756e742069732062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c74b06f6620746865207472616e736665722c20746865206163636f756e742077696c6c206265207265617065642e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520605369676e65646020627920746865207472616e736163746f722e002823203c7765696768743e61012d20446570656e64656e74206f6e20617267756d656e747320627574206e6f7420637269746963616c2c20676976656e2070726f70657220696d706c656d656e746174696f6e7320666f7220696e70757420636f6e66696794202074797065732e205365652072656c617465642066756e6374696f6e732062656c6f772e31012d20497420636f6e7461696e732061206c696d69746564206e756d626572206f6620726561647320616e642077726974657320696e7465726e616c6c7920616e64206e6f20636f6d706c6578382020636f6d7075746174696f6e2e004852656c617465642066756e6374696f6e733a004d0120202d2060656e737572655f63616e5f77697468647261776020697320616c776179732063616c6c656420696e7465726e616c6c792062757420686173206120626f756e64656420636f6d706c65786974792e290120202d205472616e7366657272696e672062616c616e63657320746f206163636f756e7473207468617420646964206e6f74206578697374206265666f72652077696c6c206361757365cc2020202060543a3a4f6e4e65774163636f756e743a3a6f6e5f6e65775f6163636f756e746020746f2062652063616c6c65642e5d0120202d2052656d6f76696e6720656e6f7567682066756e64732066726f6d20616e206163636f756e742077696c6c20747269676765722060543a3a4475737452656d6f76616c3a3a6f6e5f756e62616c616e636564602e5d0120202d20607472616e736665725f6b6565705f616c6976656020776f726b73207468652073616d652077617920617320607472616e73666572602c206275742068617320616e206164646974696f6e616c20636865636bdc202020207468617420746865207472616e736665722077696c6c206e6f74206b696c6c20746865206f726967696e206163636f756e742e842d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d41012d2042617365205765696768743a2037332e363420c2b5732c20776f7273742063617365207363656e6172696f20286163636f756e7420637265617465642c206163636f756e742072656d6f76656429d82d204442205765696768743a2031205265616420616e64203120577269746520746f2064657374696e6174696f6e206163636f756e7411012d204f726967696e206163636f756e7420697320616c726561647920696e206d656d6f72792c20736f206e6f204442206f7065726174696f6e7320666f72207468656d2e2c23203c2f7765696768743e2c7365745f62616c616e63650c010c77686f4d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001206e65775f66726565cc0128543a3a42616c616e63650001306e65775f7265736572766564cc0128543a3a42616c616e636500014890536574207468652062616c616e636573206f66206120676976656e206163636f756e742e001d01546869732077696c6c20616c74657220604672656542616c616e63656020616e642060526573657276656442616c616e63656020696e2073746f726167652e2069742077696c6c0501616c736f2064656372656173652074686520746f74616c2069737375616e6365206f66207468652073797374656d202860546f74616c49737375616e636560292e1501496620746865206e65772066726565206f722072657365727665642062616c616e63652069732062656c6f7720746865206578697374656e7469616c206465706f7369742cfc69742077696c6c20726573657420746865206163636f756e74206e6f6e63652028606672616d655f73797374656d3a3a4163636f756e744e6f6e636560292e00b0546865206469737061746368206f726967696e20666f7220746869732063616c6c2069732060726f6f74602e002823203c7765696768743e7c2d20496e646570656e64656e74206f662074686520617267756d656e74732ec02d20436f6e7461696e732061206c696d69746564206e756d626572206f6620726561647320616e64207772697465732e542d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d382d2042617365205765696768743a64202020202d204372656174696e673a2032372e353620c2b57360202020202d204b696c6c696e673a2033352e313120c2b573942d204442205765696768743a203120526561642c203120577269746520746f206077686f602c23203c2f7765696768743e38666f7263655f7472616e736665720c0118736f757263654d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365000110646573744d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500011476616c7565cc0128543a3a42616c616e63650002184d0145786163746c7920617320607472616e73666572602c2065786365707420746865206f726967696e206d75737420626520726f6f7420616e642074686520736f75726365206163636f756e74206d6179206265287370656369666965642e2823203c7765696768743e4d012d2053616d65206173207472616e736665722c20627574206164646974696f6e616c207265616420616e6420777269746520626563617573652074686520736f75726365206163636f756e74206973206e6f747c2020617373756d656420746f20626520696e20746865206f7665726c61792e2c23203c2f7765696768743e4c7472616e736665725f6b6565705f616c697665080110646573744d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500011476616c7565cc0128543a3a42616c616e636500032c4d0153616d6520617320746865205b607472616e73666572605d2063616c6c2c206275742077697468206120636865636b207468617420746865207472616e736665722077696c6c206e6f74206b696c6c207468653c6f726967696e206163636f756e742e00b8393925206f66207468652074696d6520796f752077616e74205b607472616e73666572605d20696e73746561642e00c05b607472616e73666572605d3a207374727563742e50616c6c65742e68746d6c236d6574686f642e7472616e736665722823203c7765696768743ee42d2043686561706572207468616e207472616e736665722062656361757365206163636f756e742063616e6e6f74206265206b696c6c65642e5c2d2042617365205765696768743a2035312e3420c2b57319012d204442205765696768743a2031205265616420616e64203120577269746520746f2064657374202873656e64657220697320696e206f7665726c617920616c72656164792928233c2f7765696768743e307472616e736665725f616c6c080110646573744d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001286b6565705f616c697665e80110626f6f6c00044405015472616e736665722074686520656e74697265207472616e7366657261626c652062616c616e63652066726f6d207468652063616c6c6572206163636f756e742e0059014e4f54453a20546869732066756e6374696f6e206f6e6c7920617474656d70747320746f207472616e73666572205f7472616e7366657261626c655f2062616c616e6365732e2054686973206d65616e7320746861746101616e79206c6f636b65642c2072657365727665642c206f72206578697374656e7469616c206465706f7369747320287768656e20606b6565705f616c6976656020697320607472756560292c2077696c6c206e6f742062655d017472616e7366657272656420627920746869732066756e6374696f6e2e20546f20656e73757265207468617420746869732066756e6374696f6e20726573756c747320696e2061206b696c6c6564206163636f756e742c4501796f75206d69676874206e65656420746f207072657061726520746865206163636f756e742062792072656d6f76696e6720616e79207265666572656e636520636f756e746572732c2073746f72616765406465706f736974732c206574632e2e2e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205369676e65642e00a02d206064657374603a2054686520726563697069656e74206f6620746865207472616e736665722e59012d20606b6565705f616c697665603a204120626f6f6c65616e20746f2064657465726d696e652069662074686520607472616e736665725f616c6c60206f7065726174696f6e2073686f756c642073656e6420616c6c4d0120206f66207468652066756e647320746865206163636f756e74206861732c2063617573696e67207468652073656e646572206163636f756e7420746f206265206b696c6c6564202866616c7365292c206f72590120207472616e736665722065766572797468696e6720657863657074206174206c6561737420746865206578697374656e7469616c206465706f7369742c2077686963682077696c6c2067756172616e74656520746fc820206b656570207468652073656e646572206163636f756e7420616c697665202874727565292e2023203c7765696768743e39012d204f2831292e204a757374206c696b65207472616e736665722c206275742072656164696e672074686520757365722773207472616e7366657261626c652062616c616e63652066697273742e302020233c2f7765696768743e3c666f7263655f756e7265736572766508010c77686f4d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365000118616d6f756e74180128543a3a42616c616e636500050cb0556e7265736572766520736f6d652062616c616e63652066726f6d2061207573657220627920666f7263652e006c43616e206f6e6c792062652063616c6c656420627920524f4f542e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e4d020c2873705f72756e74696d65306d756c746961646472657373304d756c74694164647265737308244163636f756e7449640100304163636f756e74496e6465780180011408496404000001244163636f756e74496400000014496e6465780400510201304163636f756e74496e6465780001000c526177040028011c5665633c75383e0002002441646472657373333204000401205b75383b2033325d0003002441646472657373323004000d0101205b75383b2032305d000400005102000006800055020c4470616c6c65745f617574686f72736869701870616c6c65741043616c6c040454000104287365745f756e636c65730401286e65775f756e636c6573590201385665633c543a3a4865616465723e0000046050726f76696465206120736574206f6620756e636c65732e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e59020000021d02005d02103870616c6c65745f7374616b696e671870616c6c65741870616c6c65741043616c6c04045400016410626f6e640c0128636f6e74726f6c6c65724d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500011476616c7565cc013042616c616e63654f663c543e00011470617965656102017c52657761726444657374696e6174696f6e3c543a3a4163636f756e7449643e000044610154616b6520746865206f726967696e206163636f756e74206173206120737461736820616e64206c6f636b207570206076616c756560206f66206974732062616c616e63652e2060636f6e74726f6c6c6572602077696c6c80626520746865206163636f756e74207468617420636f6e74726f6c732069742e002d016076616c756560206d757374206265206d6f7265207468616e2074686520606d696e696d756d5f62616c616e636560207370656369666965642062792060543a3a43757272656e6379602e002101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20627920746865207374617368206163636f756e742e003c456d6974732060426f6e646564602e2823203c7765696768743ed02d20496e646570656e64656e74206f662074686520617267756d656e74732e204d6f64657261746520636f6d706c65786974792e1c2d204f2831292e642d20546872656520657874726120444220656e74726965732e004d014e4f54453a2054776f206f66207468652073746f726167652077726974657320286053656c663a3a626f6e646564602c206053656c663a3a7061796565602920617265205f6e657665725f20636c65616e65643d01756e6c6573732074686520606f726967696e602066616c6c732062656c6f77205f6578697374656e7469616c206465706f7369745f20616e6420676574732072656d6f76656420617320647573742e482d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2c23203c2f7765696768743e28626f6e645f65787472610401386d61785f6164646974696f6e616ccc013042616c616e63654f663c543e00013c610141646420736f6d6520657874726120616d6f756e742074686174206861766520617070656172656420696e207468652073746173682060667265655f62616c616e63656020696e746f207468652062616c616e636520757030666f72207374616b696e672e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c65722e004d01557365207468697320696620746865726520617265206164646974696f6e616c2066756e647320696e20796f7572207374617368206163636f756e74207468617420796f75207769736820746f20626f6e642e5501556e6c696b65205b60626f6e64605d2853656c663a3a626f6e6429206f72205b60756e626f6e64605d2853656c663a3a756e626f6e642920746869732066756e6374696f6e20646f6573206e6f7420696d706f7365bc616e79206c696d69746174696f6e206f6e2074686520616d6f756e7420746861742063616e2062652061646465642e003c456d6974732060426f6e646564602e002823203c7765696768743ee42d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e1c2d204f2831292e2c23203c2f7765696768743e18756e626f6e6404011476616c7565cc013042616c616e63654f663c543e00024c51015363686564756c65206120706f7274696f6e206f662074686520737461736820746f20626520756e6c6f636b656420726561647920666f72207472616e73666572206f75742061667465722074686520626f6e64fc706572696f6420656e64732e2049662074686973206c656176657320616e20616d6f756e74206163746976656c7920626f6e646564206c657373207468616e2101543a3a43757272656e63793a3a6d696e696d756d5f62616c616e636528292c207468656e20697420697320696e6372656173656420746f207468652066756c6c20616d6f756e742e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0045014f6e63652074686520756e6c6f636b20706572696f6420697320646f6e652c20796f752063616e2063616c6c206077697468647261775f756e626f6e6465646020746f2061637475616c6c79206d6f7665bc7468652066756e6473206f7574206f66206d616e6167656d656e7420726561647920666f72207472616e736665722e0039014e6f206d6f7265207468616e2061206c696d69746564206e756d626572206f6620756e6c6f636b696e67206368756e6b73202873656520604d41585f554e4c4f434b494e475f4348554e4b536029390163616e20636f2d657869737473206174207468652073616d652074696d652e20496e207468617420636173652c205b6043616c6c3a3a77697468647261775f756e626f6e646564605d206e656564f8746f2062652063616c6c656420666972737420746f2072656d6f766520736f6d65206f6620746865206368756e6b732028696620706f737369626c65292e00390149662061207573657220656e636f756e74657273207468652060496e73756666696369656e74426f6e6460206572726f72207768656e2063616c6c696e6720746869732065787472696e7369632c1901746865792073686f756c642063616c6c20606368696c6c6020666972737420696e206f7264657220746f206672656520757020746865697220626f6e6465642066756e64732e0044456d6974732060556e626f6e646564602e009453656520616c736f205b6043616c6c3a3a77697468647261775f756e626f6e646564605d2e4477697468647261775f756e626f6e6465640401486e756d5f736c617368696e675f7370616e7310010c75333200033c290152656d6f766520616e7920756e6c6f636b6564206368756e6b732066726f6d207468652060756e6c6f636b696e67602071756575652066726f6d206f7572206d616e6167656d656e742e0031015468697320657373656e7469616c6c7920667265657320757020746861742062616c616e636520746f206265207573656420627920746865207374617368206163636f756e7420746f20646f4877686174657665722069742077616e74732e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722e0048456d697473206057697468647261776e602e006853656520616c736f205b6043616c6c3a3a756e626f6e64605d2e002823203c7765696768743e0501436f6d706c6578697479204f285329207768657265205320697320746865206e756d626572206f6620736c617368696e67207370616e7320746f2072656d6f766509014e4f54453a2057656967687420616e6e6f746174696f6e20697320746865206b696c6c207363656e6172696f2c20776520726566756e64206f74686572776973652e2c23203c2f7765696768743e2076616c696461746504011470726566736502013856616c696461746f725072656673000414e44465636c617265207468652064657369726520746f2076616c696461746520666f7220746865206f726967696e20636f6e74726f6c6c65722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e206e6f6d696e61746504011c746172676574736d0201a05665633c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653e00052c0d014465636c617265207468652064657369726520746f206e6f6d696e6174652060746172676574736020666f7220746865206f726967696e20636f6e74726f6c6c65722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e002823203c7765696768743e2d012d20546865207472616e73616374696f6e277320636f6d706c65786974792069732070726f706f7274696f6e616c20746f207468652073697a65206f662060746172676574736020284e29fc77686963682069732063617070656420617420436f6d7061637441737369676e6d656e74733a3a4c494d495420284d41585f4e4f4d494e4154494f4e53292ed42d20426f74682074686520726561647320616e642077726974657320666f6c6c6f7720612073696d696c6172207061747465726e2e2c23203c2f7765696768743e146368696c6c00062cc44465636c617265206e6f2064657369726520746f206569746865722076616c6964617465206f72206e6f6d696e6174652e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e002823203c7765696768743ee42d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e502d20436f6e7461696e73206f6e6520726561642ec42d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e2c23203c2f7765696768743e247365745f706179656504011470617965656102017c52657761726444657374696e6174696f6e3c543a3a4163636f756e7449643e000740b42852652d2973657420746865207061796d656e742074617267657420666f72206120636f6e74726f6c6c65722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e002823203c7765696768743ee42d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e942d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec42d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e242d2d2d2d2d2d2d2d2d382d205765696768743a204f283129302d204442205765696768743a48202020202d20526561643a204c656467657248202020202d2057726974653a2050617965652c23203c2f7765696768743e387365745f636f6e74726f6c6c6572040128636f6e74726f6c6c65724d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650008408c2852652d297365742074686520636f6e74726f6c6c6572206f6620612073746173682e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c65722e002823203c7765696768743ee42d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e942d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec42d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e282d2d2d2d2d2d2d2d2d2d305765696768743a204f283129284442205765696768743af02d20526561643a20426f6e6465642c204c6564676572204e657720436f6e74726f6c6c65722c204c6564676572204f6c6420436f6e74726f6c6c6572f42d2057726974653a20426f6e6465642c204c6564676572204e657720436f6e74726f6c6c65722c204c6564676572204f6c6420436f6e74726f6c6c65722c23203c2f7765696768743e4c7365745f76616c696461746f725f636f756e7404010c6e6577ad01010c75333200092090536574732074686520696465616c206e756d626572206f662076616c696461746f72732e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002823203c7765696768743e305765696768743a204f2831295857726974653a2056616c696461746f7220436f756e742c23203c2f7765696768743e60696e6372656173655f76616c696461746f725f636f756e740401286164646974696f6e616cad01010c753332000a1ca8496e6372656d656e74732074686520696465616c206e756d626572206f662076616c696461746f72732e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002823203c7765696768743e9853616d65206173205b6053656c663a3a7365745f76616c696461746f725f636f756e74605d2e2c23203c2f7765696768743e547363616c655f76616c696461746f725f636f756e74040118666163746f727102011c50657263656e74000b1cd05363616c652075702074686520696465616c206e756d626572206f662076616c696461746f7273206279206120666163746f722e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002823203c7765696768743e9853616d65206173205b6053656c663a3a7365745f76616c696461746f725f636f756e74605d2e2c23203c2f7765696768743e34666f7263655f6e6f5f65726173000c3cac466f72636520746865726520746f206265206e6f206e6577206572617320696e646566696e6974656c792e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002423205761726e696e6700190154686520656c656374696f6e2070726f6365737320737461727473206d756c7469706c6520626c6f636b73206265666f72652074686520656e64206f6620746865206572612e3901546875732074686520656c656374696f6e2070726f63657373206d6179206265206f6e676f696e67207768656e20746869732069732063616c6c65642e20496e2074686973206361736520746865dc656c656374696f6e2077696c6c20636f6e74696e756520756e74696c20746865206e65787420657261206973207472696767657265642e002823203c7765696768743e3c2d204e6f20617267756d656e74732e382d205765696768743a204f283129442d2057726974653a20466f7263654572612c23203c2f7765696768743e34666f7263655f6e65775f657261000d404901466f72636520746865726520746f2062652061206e6577206572612061742074686520656e64206f6620746865206e6578742073657373696f6e2e20416674657220746869732c2069742077696c6c2062659c726573657420746f206e6f726d616c20286e6f6e2d666f7263656429206265686176696f75722e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002423205761726e696e6700190154686520656c656374696f6e2070726f6365737320737461727473206d756c7469706c6520626c6f636b73206265666f72652074686520656e64206f6620746865206572612e4901496620746869732069732063616c6c6564206a757374206265666f72652061206e657720657261206973207472696767657265642c2074686520656c656374696f6e2070726f63657373206d6179206e6f748c6861766520656e6f75676820626c6f636b7320746f20676574206120726573756c742e002823203c7765696768743e3c2d204e6f20617267756d656e74732e382d205765696768743a204f283129402d20577269746520466f7263654572612c23203c2f7765696768743e447365745f696e76756c6e657261626c6573040134696e76756c6e657261626c6573dc01445665633c543a3a4163636f756e7449643e000e20c8536574207468652076616c696461746f72732077686f2063616e6e6f7420626520736c61736865642028696620616e79292e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002823203c7765696768743e182d204f285629582d2057726974653a20496e76756c6e657261626c65732c23203c2f7765696768743e34666f7263655f756e7374616b650801147374617368000130543a3a4163636f756e7449640001486e756d5f736c617368696e675f7370616e7310010c753332000f280901466f72636520612063757272656e74207374616b657220746f206265636f6d6520636f6d706c6574656c7920756e7374616b65642c20696d6d6564696174656c792e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002823203c7765696768743ee84f285329207768657265205320697320746865206e756d626572206f6620736c617368696e67207370616e7320746f2062652072656d6f766564b452656164733a20426f6e6465642c20536c617368696e67205370616e732c204163636f756e742c204c6f636b7345015772697465733a20426f6e6465642c20536c617368696e67205370616e73202869662053203e2030292c204c65646765722c2050617965652c2056616c696461746f72732c204e6f6d696e61746f72732ca44163636f756e742c204c6f636b732057726974657320456163683a205370616e536c617368202a20532c23203c2f7765696768743e50666f7263655f6e65775f6572615f616c776179730010380101466f72636520746865726520746f2062652061206e6577206572612061742074686520656e64206f662073657373696f6e7320696e646566696e6974656c792e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002423205761726e696e6700190154686520656c656374696f6e2070726f6365737320737461727473206d756c7469706c6520626c6f636b73206265666f72652074686520656e64206f6620746865206572612e4901496620746869732069732063616c6c6564206a757374206265666f72652061206e657720657261206973207472696767657265642c2074686520656c656374696f6e2070726f63657373206d6179206e6f748c6861766520656e6f75676820626c6f636b7320746f20676574206120726573756c742e002823203c7765696768743e382d205765696768743a204f283129442d2057726974653a20466f7263654572612c23203c2f7765696768743e5463616e63656c5f64656665727265645f736c61736808010c657261100120457261496e646578000134736c6173685f696e6469636573750201205665633c7533323e0011349443616e63656c20656e6163746d656e74206f66206120646566657272656420736c6173682e00b043616e2062652063616c6c6564206279207468652060543a3a536c61736843616e63656c4f726967696e602e000101506172616d65746572733a2065726120616e6420696e6469636573206f662074686520736c617368657320666f7220746861742065726120746f206b696c6c2e002823203c7765696768743e50436f6d706c65786974793a204f2855202b205329b477697468205520756e6170706c69656420736c6173686573207765696768746564207769746820553d31303030d0616e64205320697320746865206e756d626572206f6620736c61736820696e646963657320746f2062652063616e63656c65642e642d20526561643a20556e6170706c69656420536c6173686573682d2057726974653a20556e6170706c69656420536c61736865732c23203c2f7765696768743e387061796f75745f7374616b65727308013c76616c696461746f725f7374617368000130543a3a4163636f756e74496400010c657261100120457261496e6465780012540d01506179206f757420616c6c20746865207374616b65727320626568696e6420612073696e676c652076616c696461746f7220666f7220612073696e676c65206572612e0049012d206076616c696461746f725f73746173686020697320746865207374617368206163636f756e74206f66207468652076616c696461746f722e205468656972206e6f6d696e61746f72732c20757020746f2501202060543a3a4d61784e6f6d696e61746f72526577617264656450657256616c696461746f72602c2077696c6c20616c736f207265636569766520746865697220726577617264732e31012d206065726160206d617920626520616e7920657261206265747765656e20605b63757272656e745f657261202d20686973746f72795f64657074683b2063757272656e745f6572615d602e005501546865206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e20416e79206163636f756e742063616e2063616c6c20746869732066756e6374696f6e2c206576656e206966746974206973206e6f74206f6e65206f6620746865207374616b6572732e002823203c7765696768743efc2d2054696d6520636f6d706c65786974793a206174206d6f7374204f284d61784e6f6d696e61746f72526577617264656450657256616c696461746f72292ec02d20436f6e7461696e732061206c696d69746564206e756d626572206f6620726561647320616e64207772697465732e2c2d2d2d2d2d2d2d2d2d2d2d19014e20697320746865204e756d626572206f66207061796f75747320666f72207468652076616c696461746f722028696e636c7564696e67207468652076616c696461746f72291c5765696768743a842d205265776172642044657374696e6174696f6e205374616b65643a204f284e29c02d205265776172642044657374696e6174696f6e20436f6e74726f6c6c657220284372656174696e67293a204f284e29004d0120204e4f54453a20776569676874732061726520617373756d696e672074686174207061796f75747320617265206d61646520746f20616c697665207374617368206163636f756e7420285374616b6564292e55012020506179696e67206576656e2061206465616420636f6e74726f6c6c65722069732063686561706572207765696768742d776973652e20576520646f6e277420646f20616e7920726566756e647320686572652e2c23203c2f7765696768743e187265626f6e6404011476616c7565cc013042616c616e63654f663c543e001324dc5265626f6e64206120706f7274696f6e206f6620746865207374617368207363686564756c656420746f20626520756e6c6f636b65642e00d4546865206469737061746368206f726967696e206d757374206265207369676e65642062792074686520636f6e74726f6c6c65722e002823203c7765696768743ed02d2054696d6520636f6d706c65786974793a204f284c292c207768657265204c20697320756e6c6f636b696e67206368756e6b73902d20426f756e64656420627920604d41585f554e4c4f434b494e475f4348554e4b53602ef02d2053746f72616765206368616e6765733a2043616e277420696e6372656173652073746f726167652c206f6e6c792064656372656173652069742e2c23203c2f7765696768743e447365745f686973746f72795f64657074680801446e65775f686973746f72795f6465707468ad010120457261496e6465780001446572615f6974656d735f64656c65746564ad01010c7533320014582d015365742060486973746f72794465707468602076616c75652e20546869732066756e6374696f6e2077696c6c2064656c65746520616e7920686973746f727920696e666f726d6174696f6e7c7768656e2060486973746f727944657074686020697320726564756365642e002c506172616d65746572733a0d012d20606e65775f686973746f72795f6465707468603a20546865206e657720686973746f727920646570746820796f7520776f756c64206c696b6520746f207365742e59012d20606572615f6974656d735f64656c65746564603a20546865206e756d626572206f66206974656d7320746861742077696c6c2062652064656c6574656420627920746869732064697370617463682e20546869735d01202073686f756c64207265706f727420616c6c207468652073746f72616765206974656d7320746861742077696c6c2062652064656c6574656420627920636c656172696e67206f6c642065726120686973746f72792e590120204e656564656420746f207265706f727420616e2061636375726174652077656967687420666f72207468652064697370617463682e20547275737465642062792060526f6f746020746f207265706f727420616e4820206163637572617465206e756d6265722e00504f726967696e206d75737420626520726f6f742e002823203c7765696768743edc2d20453a204e756d626572206f6620686973746f7279206465707468732072656d6f7665642c20692e652e203130202d3e2037203d2033382d205765696768743a204f284529302d204442205765696768743a9c202020202d2052656164733a2043757272656e74204572612c20486973746f72792044657074686c202020202d205772697465733a20486973746f72792044657074682d01202020202d20436c6561722050726566697820456163683a20457261205374616b6572732c204572615374616b657273436c69707065642c204572617356616c696461746f7250726566732501202020202d2057726974657320456163683a204572617356616c696461746f725265776172642c2045726173526577617264506f696e74732c2045726173546f74616c5374616b652c6c20202020202045726173537461727453657373696f6e496e6465782c23203c2f7765696768743e28726561705f73746173680801147374617368000130543a3a4163636f756e7449640001486e756d5f736c617368696e675f7370616e7310010c7533320015405d0152656d6f766520616c6c20646174612073747275637475726520636f6e6365726e696e672061207374616b65722f7374617368206f6e6365206974732062616c616e636520697320617420746865206d696e696d756d2e5d015468697320697320657373656e7469616c6c79206571756976616c656e7420746f206077697468647261775f756e626f6e64656460206578636570742069742063616e2062652063616c6c656420627920616e796f6e65f4616e6420746865207461726765742060737461736860206d7573742068617665206e6f2066756e6473206c656674206265796f6e64207468652045442e008c546869732063616e2062652063616c6c65642066726f6d20616e79206f726967696e2e00fc2d20607374617368603a20546865207374617368206163636f756e7420746f20726561702e204974732062616c616e6365206d757374206265207a65726f2e002823203c7765696768743e2101436f6d706c65786974793a204f285329207768657265205320697320746865206e756d626572206f6620736c617368696e67207370616e73206f6e20746865206163636f756e742e284442205765696768743ad42d2052656164733a205374617368204163636f756e742c20426f6e6465642c20536c617368696e67205370616e732c204c6f636b734d012d205772697465733a20426f6e6465642c20536c617368696e67205370616e73202869662053203e2030292c204c65646765722c2050617965652c2056616c696461746f72732c204e6f6d696e61746f72732c5820205374617368204163636f756e742c204c6f636b73702d2057726974657320456163683a205370616e536c617368202a20532c23203c2f7765696768743e106b69636b04010c77686f6d0201a05665633c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653e00162ce052656d6f76652074686520676976656e206e6f6d696e6174696f6e732066726f6d207468652063616c6c696e672076616c696461746f722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e004d012d206077686f603a2041206c697374206f66206e6f6d696e61746f72207374617368206163636f756e74732077686f20617265206e6f6d696e6174696e6720746869732076616c696461746f72207768696368c0202073686f756c64206e6f206c6f6e676572206265206e6f6d696e6174696e6720746869732076616c696461746f722e0055014e6f74653a204d616b696e6720746869732063616c6c206f6e6c79206d616b65732073656e736520696620796f7520666972737420736574207468652076616c696461746f7220707265666572656e63657320746f78626c6f636b20616e792066757274686572206e6f6d696e6174696f6e732e487365745f7374616b696e675f6c696d6974731401486d696e5f6e6f6d696e61746f725f626f6e6418013042616c616e63654f663c543e0001486d696e5f76616c696461746f725f626f6e6418013042616c616e63654f663c543e00014c6d61785f6e6f6d696e61746f725f636f756e747902012c4f7074696f6e3c7533323e00014c6d61785f76616c696461746f725f636f756e747902012c4f7074696f6e3c7533323e0001247468726573686f6c647d02013c4f7074696f6e3c50657263656e743e001734b85570646174652074686520766172696f7573207374616b696e67206c696d69747320746869732070616c6c65742e0025012a20606d696e5f6e6f6d696e61746f725f626f6e64603a20546865206d696e696d756d2061637469766520626f6e64206e656564656420746f2062652061206e6f6d696e61746f722e25012a20606d696e5f76616c696461746f725f626f6e64603a20546865206d696e696d756d2061637469766520626f6e64206e656564656420746f20626520612076616c696461746f722e55012a20606d61785f6e6f6d696e61746f725f636f756e74603a20546865206d6178206e756d626572206f662075736572732077686f2063616e2062652061206e6f6d696e61746f72206174206f6e63652e205768656e98202073657420746f20604e6f6e65602c206e6f206c696d697420697320656e666f726365642e55012a20606d61785f76616c696461746f725f636f756e74603a20546865206d6178206e756d626572206f662075736572732077686f2063616e20626520612076616c696461746f72206174206f6e63652e205768656e98202073657420746f20604e6f6e65602c206e6f206c696d697420697320656e666f726365642e00a84f726967696e206d75737420626520526f6f7420746f2063616c6c20746869732066756e6374696f6e2e0035014e4f54453a204578697374696e67206e6f6d696e61746f727320616e642076616c696461746f72732077696c6c206e6f742062652061666665637465642062792074686973207570646174652e1101746f206b69636b2070656f706c6520756e64657220746865206e6577206c696d6974732c20606368696c6c5f6f74686572602073686f756c642062652063616c6c65642e2c6368696c6c5f6f74686572040128636f6e74726f6c6c6572000130543a3a4163636f756e74496400185441014465636c61726520612060636f6e74726f6c6c65726020746f2073746f702070617274696369706174696e672061732065697468657220612076616c696461746f72206f72206e6f6d696e61746f722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e004101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2c206275742063616e2062652063616c6c656420627920616e796f6e652e0059014966207468652063616c6c6572206973207468652073616d652061732074686520636f6e74726f6c6c6572206265696e672074617267657465642c207468656e206e6f206675727468657220636865636b7320617265d8656e666f726365642c20616e6420746869732066756e6374696f6e2062656861766573206a757374206c696b6520606368696c6c602e005d014966207468652063616c6c657220697320646966666572656e74207468616e2074686520636f6e74726f6c6c6572206265696e672074617267657465642c2074686520666f6c6c6f77696e6720636f6e646974696f6e73306d757374206265206d65743a3d012a204120604368696c6c5468726573686f6c6460206d7573742062652073657420616e6420636865636b656420776869636820646566696e657320686f7720636c6f736520746f20746865206d6178550120206e6f6d696e61746f7273206f722076616c696461746f7273207765206d757374207265616368206265666f72652075736572732063616e207374617274206368696c6c696e67206f6e652d616e6f746865722e59012a204120604d61784e6f6d696e61746f72436f756e746020616e6420604d617856616c696461746f72436f756e7460206d75737420626520736574207768696368206973207573656420746f2064657465726d696e65902020686f7720636c6f73652077652061726520746f20746865207468726573686f6c642e5d012a204120604d696e4e6f6d696e61746f72426f6e646020616e6420604d696e56616c696461746f72426f6e6460206d7573742062652073657420616e6420636865636b65642c2077686963682064657465726d696e65735101202069662074686973206973206120706572736f6e20746861742073686f756c64206265206368696c6c6564206265636175736520746865792068617665206e6f74206d657420746865207468726573686f6c64402020626f6e642072657175697265642e005501546869732063616e2062652068656c7066756c20696620626f6e6420726571756972656d656e74732061726520757064617465642c20616e64207765206e65656420746f2072656d6f7665206f6c642075736572739877686f20646f206e6f74207361746973667920746865736520726571756972656d656e74732e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e6102083870616c6c65745f7374616b696e674452657761726444657374696e6174696f6e04244163636f756e74496401000114185374616b656400000014537461736800010028436f6e74726f6c6c65720002001c4163636f756e7404000001244163636f756e744964000300104e6f6e65000400006502083870616c6c65745f7374616b696e673856616c696461746f7250726566730000080128636f6d6d697373696f6e6902011c50657262696c6c00011c626c6f636b6564e80110626f6f6c00006902000006b901006d020000024d020071020c3473705f61726974686d65746963287065725f7468696e67731c50657263656e74000004000801087538000075020000021000790204184f7074696f6e04045401100108104e6f6e6500000010536f6d6504001000000100007d0204184f7074696f6e0404540171020108104e6f6e6500000010536f6d6504007102000001000081020c3870616c6c65745f73657373696f6e1870616c6c65741043616c6c040454000108207365745f6b6579730801106b6579738502011c543a3a4b65797300011470726f6f6628011c5665633c75383e000038e453657473207468652073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c657220746f20606b657973602e1d01416c6c6f777320616e206163636f756e7420746f20736574206974732073657373696f6e206b6579207072696f7220746f206265636f6d696e6720612076616c696461746f722ec05468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e00d0546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265207369676e65642e002823203c7765696768743e11012d20436f6d706c65786974793a20604f283129602e2041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f6698202060543a3a4b6579733a3a6b65795f6964732829602077686963682069732066697865642eec2d20446252656164733a20606f726967696e206163636f756e74602c2060543a3a56616c696461746f7249644f66602c20604e6578744b65797360a02d2044625772697465733a20606f726967696e206163636f756e74602c20604e6578744b65797360802d204462526561647320706572206b65792069643a20604b65794f776e657260842d20446257726974657320706572206b65792069643a20604b65794f776e6572602c23203c2f7765696768743e2870757267655f6b657973000130c852656d6f76657320616e792073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c65722ec05468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e00d0546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265207369676e65642e002823203c7765696768743e61012d20436f6d706c65786974793a20604f2831296020696e206e756d626572206f66206b65792074797065732e2041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468a420206f662060543a3a4b6579733a3a6b65795f6964732829602077686963682069732066697865642eec2d20446252656164733a2060543a3a56616c696461746f7249644f66602c20604e6578744b657973602c20606f726967696e206163636f756e7460a02d2044625772697465733a20604e6578744b657973602c20606f726967696e206163636f756e7460842d20446257726974657320706572206b65792069643a20604b65794f776e6572602c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e85020840706f6c6b61646f745f72756e74696d652c53657373696f6e4b657973000018011c6772616e647061ac01d03c4772616e647061206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c696300011062616265250201c43c42616265206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c6963000124696d5f6f6e6c696e65b801d43c496d4f6e6c696e65206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c6963000138706172615f76616c696461746f72890201e03c496e697469616c697a6572206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c696300013c706172615f61737369676e6d656e748d0201f03c5061726153657373696f6e496e666f206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c696300014c617574686f726974795f646973636f76657279910201fc3c417574686f72697479446973636f76657279206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c696300008902104c706f6c6b61646f745f7072696d6974697665730876303476616c696461746f725f617070185075626c696300000400bc013c737232353531393a3a5075626c696300008d02104c706f6c6b61646f745f7072696d6974697665730876313861737369676e6d656e745f617070185075626c696300000400bc013c737232353531393a3a5075626c6963000091020c5873705f617574686f726974795f646973636f766572790c617070185075626c696300000400bc013c737232353531393a3a5075626c6963000095020c3870616c6c65745f6772616e6470611870616c6c65741043616c6c04045400010c4c7265706f72745f65717569766f636174696f6e08014865717569766f636174696f6e5f70726f6f66990201bc426f783c45717569766f636174696f6e50726f6f663c543a3a486173682c20543a3a426c6f636b4e756d6265723e3e00013c6b65795f6f776e65725f70726f6f662d020140543a3a4b65794f776e657250726f6f6600001009015265706f727420766f7465722065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667920746865f465717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66f8616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63654477696c6c206265207265706f727465642e707265706f72745f65717569766f636174696f6e5f756e7369676e656408014865717569766f636174696f6e5f70726f6f66990201bc426f783c45717569766f636174696f6e50726f6f663c543a3a486173682c20543a3a426c6f636b4e756d6265723e3e00013c6b65795f6f776e65725f70726f6f662d020140543a3a4b65794f776e657250726f6f6600012409015265706f727420766f7465722065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667920746865f465717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66f8616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63654477696c6c206265207265706f727465642e000d01546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c791501626c6f636b20617574686f72732077696c6c2063616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c2061732073756368150169662074686520626c6f636b20617574686f7220697320646566696e65642069742077696c6c20626520646566696e6564206173207468652065717569766f636174696f6e247265706f727465722e306e6f74655f7374616c6c656408011464656c6179100138543a3a426c6f636b4e756d62657200016c626573745f66696e616c697a65645f626c6f636b5f6e756d626572100138543a3a426c6f636b4e756d62657200021c19014e6f74652074686174207468652063757272656e7420617574686f7269747920736574206f6620746865204752414e4450412066696e616c697479206761646765742068617325017374616c6c65642e20546869732077696c6c2074726967676572206120666f7263656420617574686f7269747920736574206368616e67652061742074686520626567696e6e696e671d016f6620746865206e6578742073657373696f6e2c20746f20626520656e6163746564206064656c61796020626c6f636b7320616674657220746861742e205468652064656c6179110173686f756c64206265206869676820656e6f75676820746f20736166656c7920617373756d6520746861742074686520626c6f636b207369676e616c6c696e67207468652501666f72636564206368616e67652077696c6c206e6f742062652072652d6f726765642028652e672e203130303020626c6f636b73292e20546865204752414e44504120766f74657273250177696c6c20737461727420746865206e657720617574686f7269747920736574207573696e672074686520676976656e2066696e616c697a656420626c6f636b20617320626173652e584f6e6c792063616c6c61626c6520627920726f6f742e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e9902084c73705f66696e616c6974795f6772616e6470614445717569766f636174696f6e50726f6f660804480124044e0110000801187365745f6964200114536574496400013065717569766f636174696f6e9d02014845717569766f636174696f6e3c482c204e3e00009d02084c73705f66696e616c6974795f6772616e6470613045717569766f636174696f6e0804480124044e011001081c507265766f74650400a1020139016772616e6470613a3a45717569766f636174696f6e3c417574686f7269747949642c206772616e6470613a3a507265766f74653c482c204e3e2c0a417574686f726974795369676e61747572653e00000024507265636f6d6d69740400b5020141016772616e6470613a3a45717569766f636174696f6e3c417574686f7269747949642c206772616e6470613a3a507265636f6d6d69743c482c204e3e2c0a417574686f726974795369676e61747572653e00010000a102084066696e616c6974795f6772616e6470613045717569766f636174696f6e0c08496401ac045601a502045301a90200100130726f756e645f6e756d62657220010c7536340001206964656e74697479ac010849640001146669727374b102011828562c2053290001187365636f6e64b102011828562c2053290000a502084066696e616c6974795f6772616e6470611c507265766f74650804480124044e01100008012c7461726765745f68617368240104480001347461726765745f6e756d6265721001044e0000a9020c4c73705f66696e616c6974795f6772616e6470610c617070245369676e617475726500000400ad020148656432353531393a3a5369676e61747572650000ad020c1c73705f636f72651c65643235353139245369676e617475726500000400610101205b75383b2036345d0000b10200000408a502a90200b502084066696e616c6974795f6772616e6470613045717569766f636174696f6e0c08496401ac045601b902045301a90200100130726f756e645f6e756d62657220010c7536340001206964656e74697479ac010849640001146669727374bd02011828562c2053290001187365636f6e64bd02011828562c2053290000b902084066696e616c6974795f6772616e64706124507265636f6d6d69740804480124044e01100008012c7461726765745f68617368240104480001347461726765745f6e756d6265721001044e0000bd0200000408b902a90200c1020c4070616c6c65745f696d5f6f6e6c696e651870616c6c65741043616c6c04045400010424686561727462656174080124686561727462656174c50201644865617274626561743c543a3a426c6f636b4e756d6265723e0001247369676e6174757265d90201bc3c543a3a417574686f7269747949642061732052756e74696d654170705075626c69633e3a3a5369676e61747572650000242823203c7765696768743e61012d20436f6d706c65786974793a20604f284b202b20452960207768657265204b206973206c656e677468206f6620604b6579736020286865617274626561742e76616c696461746f72735f6c656e2920616e642045206973d820206c656e677468206f6620606865617274626561742e6e6574776f726b5f73746174652e65787465726e616c5f61646472657373608820202d20604f284b29603a206465636f64696e67206f66206c656e67746820604b60ac20202d20604f284529603a206465636f64696e672f656e636f64696e67206f66206c656e6774682060456039012d20446252656164733a2070616c6c65745f73657373696f6e206056616c696461746f7273602c2070616c6c65745f73657373696f6e206043757272656e74496e646578602c20604b657973602c5820206052656365697665644865617274626561747360802d2044625772697465733a2060526563656976656448656172746265617473602c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ec502084070616c6c65745f696d5f6f6e6c696e6524486561727462656174042c426c6f636b4e756d626572011000140130626c6f636b5f6e756d62657210012c426c6f636b4e756d6265720001346e6574776f726b5f7374617465c90201484f70617175654e6574776f726b537461746500013473657373696f6e5f696e64657810013053657373696f6e496e64657800013c617574686f726974795f696e64657810012441757468496e64657800013876616c696461746f72735f6c656e10010c7533320000c9020c1c73705f636f7265206f6666636861696e484f70617175654e6574776f726b5374617465000008011c706565725f6964cd0201304f706171756550656572496400014865787465726e616c5f616464726573736573d10201505665633c4f70617175654d756c7469616464723e0000cd02081c73705f636f7265304f70617175655065657249640000040028011c5665633c75383e0000d102000002d50200d5020c1c73705f636f7265206f6666636861696e3c4f70617175654d756c7469616464720000040028011c5665633c75383e0000d902104070616c6c65745f696d5f6f6e6c696e651c737232353531392c6170705f73723235353139245369676e6174757265000004005d010148737232353531393a3a5369676e61747572650000dd020c4070616c6c65745f64656d6f63726163791870616c6c65741043616c6c0404540001641c70726f706f736508013470726f706f73616c5f6861736824011c543a3a4861736800011476616c7565cc013042616c616e63654f663c543e00002c9c50726f706f736520612073656e73697469766520616374696f6e20746f2062652074616b656e2e001501546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737480686176652066756e647320746f20636f76657220746865206465706f7369742e00d42d206070726f706f73616c5f68617368603a205468652068617368206f66207468652070726f706f73616c20707265696d6167652e15012d206076616c7565603a2054686520616d6f756e74206f66206465706f73697420286d757374206265206174206c6561737420604d696e696d756d4465706f73697460292e0044456d697473206050726f706f736564602e00385765696768743a20604f28702960187365636f6e6408012070726f706f73616cad01012450726f70496e64657800014c7365636f6e64735f75707065725f626f756e64ad01010c753332000128b45369676e616c732061677265656d656e742077697468206120706172746963756c61722070726f706f73616c2e000101546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e64657211016d75737420686176652066756e647320746f20636f76657220746865206465706f7369742c20657175616c20746f20746865206f726967696e616c206465706f7369742e00c82d206070726f706f73616c603a2054686520696e646578206f66207468652070726f706f73616c20746f207365636f6e642e41012d20607365636f6e64735f75707065725f626f756e64603a20616e20757070657220626f756e64206f6e207468652063757272656e74206e756d626572206f66207365636f6e6473206f6e20746869732501202070726f706f73616c2e2045787472696e736963206973207765696768746564206163636f7264696e6720746f20746869732076616c75652077697468206e6f20726566756e642e001d015765696768743a20604f28532960207768657265205320697320746865206e756d626572206f66207365636f6e647320612070726f706f73616c20616c7265616479206861732e10766f74650801247265665f696e646578ad01013c5265666572656e64756d496e646578000110766f7465e10201644163636f756e74566f74653c42616c616e63654f663c543e3e0002243101566f746520696e2061207265666572656e64756d2e2049662060766f74652e69735f6179652829602c2074686520766f746520697320746f20656e616374207468652070726f706f73616c3bb86f7468657277697365206974206973206120766f746520746f206b65657020746865207374617475732071756f2e00c8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00dc2d20607265665f696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f20766f746520666f722e842d2060766f7465603a2054686520766f746520636f6e66696775726174696f6e2e002d015765696768743a20604f28522960207768657265205220697320746865206e756d626572206f66207265666572656e64756d732074686520766f7465722068617320766f746564206f6e2e40656d657267656e63795f63616e63656c0401247265665f696e64657810013c5265666572656e64756d496e6465780003204d015363686564756c6520616e20656d657267656e63792063616e63656c6c6174696f6e206f662061207265666572656e64756d2e2043616e6e6f742068617070656e20747769636520746f207468652073616d652c7265666572656e64756d2e00f8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265206043616e63656c6c6174696f6e4f726967696e602e00d02d607265665f696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f2063616e63656c2e003c5765696768743a20604f283129602e4065787465726e616c5f70726f706f736504013470726f706f73616c5f6861736824011c543a3a486173680004242d015363686564756c652061207265666572656e64756d20746f206265207461626c6564206f6e6365206974206973206c6567616c20746f207363686564756c6520616e2065787465726e616c2c7265666572656e64756d2e00e8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265206045787465726e616c4f726967696e602e00d42d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f66207468652070726f706f73616c2e0015015765696768743a20604f2856296020776974682056206e756d626572206f66207665746f65727320696e2074686520626c61636b6c697374206f662070726f706f73616c2eb820204465636f64696e6720766563206f66206c656e67746820562e2043686172676564206173206d6178696d756d6465787465726e616c5f70726f706f73655f6d616a6f7269747904013470726f706f73616c5f6861736824011c543a3a4861736800052c55015363686564756c652061206d616a6f726974792d63617272696573207265666572656e64756d20746f206265207461626c6564206e657874206f6e6365206974206973206c6567616c20746f207363686564756c655c616e2065787465726e616c207265666572656e64756d2e00ec546865206469737061746368206f6620746869732063616c6c206d757374206265206045787465726e616c4d616a6f726974794f726967696e602e00d42d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f66207468652070726f706f73616c2e004901556e6c696b65206065787465726e616c5f70726f706f7365602c20626c61636b6c697374696e6720686173206e6f20656666656374206f6e207468697320616e64206974206d6179207265706c6163652061987072652d7363686564756c6564206065787465726e616c5f70726f706f7365602063616c6c2e00385765696768743a20604f283129606065787465726e616c5f70726f706f73655f64656661756c7404013470726f706f73616c5f6861736824011c543a3a4861736800062c45015363686564756c652061206e656761746976652d7475726e6f75742d62696173207265666572656e64756d20746f206265207461626c6564206e657874206f6e6365206974206973206c6567616c20746f807363686564756c6520616e2065787465726e616c207265666572656e64756d2e00e8546865206469737061746368206f6620746869732063616c6c206d757374206265206045787465726e616c44656661756c744f726967696e602e00d42d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f66207468652070726f706f73616c2e004901556e6c696b65206065787465726e616c5f70726f706f7365602c20626c61636b6c697374696e6720686173206e6f20656666656374206f6e207468697320616e64206974206d6179207265706c6163652061987072652d7363686564756c6564206065787465726e616c5f70726f706f7365602063616c6c2e00385765696768743a20604f2831296028666173745f747261636b0c013470726f706f73616c5f6861736824011c543a3a48617368000134766f74696e675f706572696f64100138543a3a426c6f636b4e756d62657200011464656c6179100138543a3a426c6f636b4e756d62657200073c4d015363686564756c65207468652063757272656e746c792065787465726e616c6c792d70726f706f736564206d616a6f726974792d63617272696573207265666572656e64756d20746f206265207461626c65646101696d6d6564696174656c792e204966207468657265206973206e6f2065787465726e616c6c792d70726f706f736564207265666572656e64756d2063757272656e746c792c206f72206966207468657265206973206f6e65e8627574206974206973206e6f742061206d616a6f726974792d63617272696573207265666572656e64756d207468656e206974206661696c732e00d0546865206469737061746368206f6620746869732063616c6c206d757374206265206046617374547261636b4f726967696e602e00f42d206070726f706f73616c5f68617368603a205468652068617368206f66207468652063757272656e742065787465726e616c2070726f706f73616c2e5d012d2060766f74696e675f706572696f64603a2054686520706572696f64207468617420697320616c6c6f77656420666f7220766f74696e67206f6e20746869732070726f706f73616c2e20496e6372656173656420746f9420206046617374547261636b566f74696e67506572696f646020696620746f6f206c6f772e51012d206064656c6179603a20546865206e756d626572206f6620626c6f636b20616674657220766f74696e672068617320656e64656420696e20617070726f76616c20616e6420746869732073686f756c64206265b82020656e61637465642e205468697320646f65736e277420686176652061206d696e696d756d20616d6f756e742e0040456d697473206053746172746564602e00385765696768743a20604f28312960347665746f5f65787465726e616c04013470726f706f73616c5f6861736824011c543a3a48617368000824b85665746f20616e6420626c61636b6c697374207468652065787465726e616c2070726f706f73616c20686173682e00d8546865206469737061746368206f726967696e206f6620746869732063616c6c206d75737420626520605665746f4f726967696e602e002d012d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f66207468652070726f706f73616c20746f207665746f20616e6420626c61636b6c6973742e003c456d69747320605665746f6564602e00fc5765696768743a20604f2856202b206c6f6728562929602077686572652056206973206e756d626572206f6620606578697374696e67207665746f657273604463616e63656c5f7265666572656e64756d0401247265665f696e646578ad01013c5265666572656e64756d496e64657800091c5052656d6f76652061207265666572656e64756d2e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f526f6f745f2e00d42d20607265665f696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f2063616e63656c2e004423205765696768743a20604f283129602e3463616e63656c5f717565756564040114776869636810013c5265666572656e64756d496e646578000a1c9c43616e63656c20612070726f706f73616c2071756575656420666f7220656e6163746d656e742e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f526f6f745f2e00c42d20607768696368603a2054686520696e646578206f6620746865207265666572656e64756d20746f2063616e63656c2e0049015765696768743a20604f284429602077686572652060446020697320746865206974656d7320696e207468652064697370617463682071756575652e205765696768746564206173206044203d203130602e2064656c65676174650c0108746f000130543a3a4163636f756e744964000128636f6e76696374696f6ee9020128436f6e76696374696f6e00011c62616c616e636518013042616c616e63654f663c543e000b50390144656c65676174652074686520766f74696e6720706f77657220287769746820736f6d6520676976656e20636f6e76696374696f6e29206f66207468652073656e64696e67206163636f756e742e0055015468652062616c616e63652064656c656761746564206973206c6f636b656420666f72206173206c6f6e6720617320697427732064656c6567617465642c20616e64207468657265616674657220666f7220746865c874696d6520617070726f70726961746520666f722074686520636f6e76696374696f6e2773206c6f636b20706572696f642e005d01546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2c20616e6420746865207369676e696e67206163636f756e74206d757374206569746865723a7420202d2062652064656c65676174696e6720616c72656164793b206f72590120202d2068617665206e6f20766f74696e67206163746976697479202869662074686572652069732c207468656e2069742077696c6c206e65656420746f2062652072656d6f7665642f636f6e736f6c69646174656494202020207468726f7567682060726561705f766f746560206f722060756e766f746560292e0045012d2060746f603a20546865206163636f756e742077686f736520766f74696e6720746865206074617267657460206163636f756e74277320766f74696e6720706f7765722077696c6c20666f6c6c6f772e55012d2060636f6e76696374696f6e603a2054686520636f6e76696374696f6e20746861742077696c6c20626520617474616368656420746f207468652064656c65676174656420766f7465732e205768656e20746865410120206163636f756e7420697320756e64656c6567617465642c207468652066756e64732077696c6c206265206c6f636b656420666f722074686520636f72726573706f6e64696e6720706572696f642e61012d206062616c616e6365603a2054686520616d6f756e74206f6620746865206163636f756e7427732062616c616e636520746f206265207573656420696e2064656c65676174696e672e2054686973206d757374206e6f74b420206265206d6f7265207468616e20746865206163636f756e7427732063757272656e742062616c616e63652e0048456d697473206044656c656761746564602e003d015765696768743a20604f28522960207768657265205220697320746865206e756d626572206f66207265666572656e64756d732074686520766f7465722064656c65676174696e6720746f20686173c82020766f746564206f6e2e205765696768742069732063686172676564206173206966206d6178696d756d20766f7465732e28756e64656c6567617465000c30cc556e64656c65676174652074686520766f74696e6720706f776572206f66207468652073656e64696e67206163636f756e742e005d01546f6b656e73206d617920626520756e6c6f636b656420666f6c6c6f77696e67206f6e636520616e20616d6f756e74206f662074696d6520636f6e73697374656e74207769746820746865206c6f636b20706572696f64dc6f662074686520636f6e76696374696f6e2077697468207768696368207468652064656c65676174696f6e20776173206973737565642e004501546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d7573742062655463757272656e746c792064656c65676174696e672e0050456d6974732060556e64656c656761746564602e003d015765696768743a20604f28522960207768657265205220697320746865206e756d626572206f66207265666572656e64756d732074686520766f7465722064656c65676174696e6720746f20686173c82020766f746564206f6e2e205765696768742069732063686172676564206173206966206d6178696d756d20766f7465732e58636c6561725f7075626c69635f70726f706f73616c73000d1470436c6561727320616c6c207075626c69632070726f706f73616c732e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f526f6f745f2e003c5765696768743a20604f283129602e346e6f74655f707265696d616765040140656e636f6465645f70726f706f73616c28011c5665633c75383e000e285d0152656769737465722074686520707265696d61676520666f7220616e207570636f6d696e672070726f706f73616c2e205468697320646f65736e27742072657175697265207468652070726f706f73616c20746f2062652101696e207468652064697370617463682071756575652062757420646f657320726571756972652061206465706f7369742c2072657475726e6564206f6e636520656e61637465642e00c8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00c42d2060656e636f6465645f70726f706f73616c603a2054686520707265696d616765206f6620612070726f706f73616c2e0058456d6974732060507265696d6167654e6f746564602e004d015765696768743a20604f28452960207769746820452073697a65206f662060656e636f6465645f70726f706f73616c60202870726f7465637465642062792061207265717569726564206465706f736974292e646e6f74655f707265696d6167655f6f7065726174696f6e616c040140656e636f6465645f70726f706f73616c28011c5665633c75383e000f04090153616d6520617320606e6f74655f707265696d6167656020627574206f726967696e20697320604f7065726174696f6e616c507265696d6167654f726967696e602e586e6f74655f696d6d696e656e745f707265696d616765040140656e636f6465645f70726f706f73616c28011c5665633c75383e001030410152656769737465722074686520707265696d61676520666f7220616e207570636f6d696e672070726f706f73616c2e2054686973207265717569726573207468652070726f706f73616c20746f2062653d01696e207468652064697370617463682071756575652e204e6f206465706f736974206973206e65656465642e205768656e20746869732063616c6c206973207375636365737366756c2c20692e652e350174686520707265696d61676520686173206e6f74206265656e2075706c6f61646564206265666f726520616e64206d61746368657320736f6d6520696d6d696e656e742070726f706f73616c2c3c6e6f2066656520697320706169642e00c8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00c42d2060656e636f6465645f70726f706f73616c603a2054686520707265696d616765206f6620612070726f706f73616c2e0058456d6974732060507265696d6167654e6f746564602e004d015765696768743a20604f28452960207769746820452073697a65206f662060656e636f6465645f70726f706f73616c60202870726f7465637465642062792061207265717569726564206465706f736974292e886e6f74655f696d6d696e656e745f707265696d6167655f6f7065726174696f6e616c040140656e636f6465645f70726f706f73616c28011c5665633c75383e0011042d0153616d6520617320606e6f74655f696d6d696e656e745f707265696d6167656020627574206f726967696e20697320604f7065726174696f6e616c507265696d6167654f726967696e602e34726561705f707265696d61676508013470726f706f73616c5f6861736824011c543a3a4861736800016070726f706f73616c5f6c656e5f75707065725f626f756e64ad01010c75333200123cf052656d6f766520616e20657870697265642070726f706f73616c20707265696d61676520616e6420636f6c6c65637420746865206465706f7369742e00c8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00cc2d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f6620612070726f706f73616c2e5d012d206070726f706f73616c5f6c656e6774685f75707065725f626f756e64603a20616e20757070657220626f756e64206f6e206c656e677468206f66207468652070726f706f73616c2e2045787472696e736963206973c820207765696768746564206163636f7264696e6720746f20746869732076616c75652077697468206e6f20726566756e642e004d01546869732077696c6c206f6e6c7920776f726b2061667465722060566f74696e67506572696f646020626c6f636b732066726f6d207468652074696d6520746861742074686520707265696d6167652077617359016e6f7465642c2069662069742773207468652073616d65206163636f756e7420646f696e672069742e2049662069742773206120646966666572656e74206163636f756e742c207468656e206974276c6c206f6e6c79ac776f726b20616e206164646974696f6e616c2060456e6163746d656e74506572696f6460206c617465722e005c456d6974732060507265696d616765526561706564602e00b45765696768743a20604f284429602077686572652044206973206c656e677468206f662070726f706f73616c2e18756e6c6f636b040118746172676574000130543a3a4163636f756e74496400131ca0556e6c6f636b20746f6b656e732074686174206861766520616e2065787069726564206c6f636b2e00c8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00b82d2060746172676574603a20546865206163636f756e7420746f2072656d6f766520746865206c6f636b206f6e2e00bc5765696768743a20604f2852296020776974682052206e756d626572206f6620766f7465206f66207461726765742e2c72656d6f76655f766f7465040114696e64657810013c5265666572656e64756d496e64657800146c7c52656d6f7665206120766f746520666f722061207265666572656e64756d2e000c49663a882d20746865207265666572656e64756d207761732063616e63656c6c65642c206f727c2d20746865207265666572656e64756d206973206f6e676f696e672c206f72902d20746865207265666572656e64756d2068617320656e64656420737563682074686174fc20202d2074686520766f7465206f6620746865206163636f756e742077617320696e206f70706f736974696f6e20746f2074686520726573756c743b206f72d420202d20746865726520776173206e6f20636f6e76696374696f6e20746f20746865206163636f756e74277320766f74653b206f728420202d20746865206163636f756e74206d61646520612073706c697420766f74655d012e2e2e7468656e2074686520766f74652069732072656d6f76656420636c65616e6c7920616e64206120666f6c6c6f77696e672063616c6c20746f2060756e6c6f636b60206d617920726573756c7420696e206d6f72655866756e6473206265696e6720617661696c61626c652e00a849662c20686f77657665722c20746865207265666572656e64756d2068617320656e64656420616e643aec2d2069742066696e697368656420636f72726573706f6e64696e6720746f2074686520766f7465206f6620746865206163636f756e742c20616e64dc2d20746865206163636f756e74206d6164652061207374616e6461726420766f7465207769746820636f6e76696374696f6e2c20616e64bc2d20746865206c6f636b20706572696f64206f662074686520636f6e76696374696f6e206973206e6f74206f76657259012e2e2e7468656e20746865206c6f636b2077696c6c206265206167677265676174656420696e746f20746865206f766572616c6c206163636f756e742773206c6f636b2c207768696368206d617920696e766f6c766559012a6f7665726c6f636b696e672a20287768657265207468652074776f206c6f636b732061726520636f6d62696e656420696e746f20612073696e676c65206c6f636b207468617420697320746865206d6178696d756de46f6620626f74682074686520616d6f756e74206c6f636b656420616e64207468652074696d65206973206974206c6f636b656420666f72292e004901546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2c20616e6420746865207369676e6572206d7573742068617665206120766f7465887265676973746572656420666f72207265666572656e64756d2060696e646578602e00f42d2060696e646578603a2054686520696e646578206f66207265666572656e64756d206f662074686520766f746520746f2062652072656d6f7665642e0055015765696768743a20604f2852202b206c6f6720522960207768657265205220697320746865206e756d626572206f66207265666572656e646120746861742060746172676574602068617320766f746564206f6e2ed820205765696768742069732063616c63756c6174656420666f7220746865206d6178696d756d206e756d626572206f6620766f74652e4472656d6f76655f6f746865725f766f7465080118746172676574000130543a3a4163636f756e744964000114696e64657810013c5265666572656e64756d496e64657800153c7c52656d6f7665206120766f746520666f722061207265666572656e64756d2e004d0149662074686520607461726765746020697320657175616c20746f20746865207369676e65722c207468656e20746869732066756e6374696f6e2069732065786163746c79206571756976616c656e7420746f2d016072656d6f76655f766f7465602e204966206e6f7420657175616c20746f20746865207369676e65722c207468656e2074686520766f7465206d757374206861766520657870697265642c5501656974686572206265636175736520746865207265666572656e64756d207761732063616e63656c6c65642c20626563617573652074686520766f746572206c6f737420746865207265666572656e64756d206f7298626563617573652074686520636f6e76696374696f6e20706572696f64206973206f7665722e00c8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e004d012d2060746172676574603a20546865206163636f756e74206f662074686520766f746520746f2062652072656d6f7665643b2074686973206163636f756e74206d757374206861766520766f74656420666f725420207265666572656e64756d2060696e646578602ef42d2060696e646578603a2054686520696e646578206f66207265666572656e64756d206f662074686520766f746520746f2062652072656d6f7665642e0055015765696768743a20604f2852202b206c6f6720522960207768657265205220697320746865206e756d626572206f66207265666572656e646120746861742060746172676574602068617320766f746564206f6e2ed820205765696768742069732063616c63756c6174656420666f7220746865206d6178696d756d206e756d626572206f6620766f74652e38656e6163745f70726f706f73616c08013470726f706f73616c5f6861736824011c543a3a48617368000114696e64657810013c5265666572656e64756d496e6465780016044d01456e61637420612070726f706f73616c2066726f6d2061207265666572656e64756d2e20466f72206e6f77207765206a757374206d616b65207468652077656967687420626520746865206d6178696d756d2e24626c61636b6c69737408013470726f706f73616c5f6861736824011c543a3a4861736800013c6d617962655f7265665f696e6465787902015c4f7074696f6e3c5265666572656e64756d496e6465783e00173c45015065726d616e656e746c7920706c61636520612070726f706f73616c20696e746f2074686520626c61636b6c6973742e20546869732070726576656e74732069742066726f6d2065766572206265696e673c70726f706f73656420616761696e2e00510149662063616c6c6564206f6e206120717565756564207075626c6963206f722065787465726e616c2070726f706f73616c2c207468656e20746869732077696c6c20726573756c7420696e206974206265696e67510172656d6f7665642e2049662074686520607265665f696e6465786020737570706c69656420697320616e20616374697665207265666572656e64756d2077697468207468652070726f706f73616c20686173682c687468656e2069742077696c6c2062652063616e63656c6c65642e00ec546865206469737061746368206f726967696e206f6620746869732063616c6c206d7573742062652060426c61636b6c6973744f726967696e602e00f82d206070726f706f73616c5f68617368603a205468652070726f706f73616c206861736820746f20626c61636b6c697374207065726d616e656e746c792e45012d20607265665f696e646578603a20416e206f6e676f696e67207265666572656e64756d2077686f73652068617368206973206070726f706f73616c5f68617368602c2077686963682077696c6c2062652863616e63656c6c65642e0041015765696768743a20604f28702960202874686f756768206173207468697320697320616e20686967682d70726976696c6567652064697370617463682c20776520617373756d65206974206861732061502020726561736f6e61626c652076616c7565292e3c63616e63656c5f70726f706f73616c04012870726f705f696e646578ad01012450726f70496e64657800181c4852656d6f766520612070726f706f73616c2e000101546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265206043616e63656c50726f706f73616c4f726967696e602e00d02d206070726f705f696e646578603a2054686520696e646578206f66207468652070726f706f73616c20746f2063616e63656c2e00e45765696768743a20604f28702960207768657265206070203d205075626c696350726f70733a3a3c543e3a3a6465636f64655f6c656e282960042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ee1020c4070616c6c65745f64656d6f637261637910766f74652c4163636f756e74566f7465041c42616c616e636501180108205374616e64617264080110766f7465e5020110566f746500011c62616c616e636518011c42616c616e63650000001453706c697408010c61796518011c42616c616e636500010c6e617918011c42616c616e636500010000e5020c4070616c6c65745f64656d6f637261637910766f746510566f74650000040008000000e9020c4070616c6c65745f64656d6f637261637928636f6e76696374696f6e28436f6e76696374696f6e00011c104e6f6e65000000204c6f636b65643178000100204c6f636b65643278000200204c6f636b65643378000300204c6f636b65643478000400204c6f636b65643578000500204c6f636b6564367800060000ed020c4470616c6c65745f636f6c6c6563746976651870616c6c65741043616c6c0804540004490001182c7365745f6d656d626572730c012c6e65775f6d656d62657273dc01445665633c543a3a4163636f756e7449643e0001147072696d65f10201504f7074696f6e3c543a3a4163636f756e7449643e0001246f6c645f636f756e7410012c4d656d626572436f756e74000064805365742074686520636f6c6c6563746976652773206d656d626572736869702e0045012d20606e65775f6d656d62657273603a20546865206e6577206d656d626572206c6973742e204265206e69636520746f2074686520636861696e20616e642070726f7669646520697420736f727465642ee02d20607072696d65603a20546865207072696d65206d656d6265722077686f736520766f74652073657473207468652064656661756c742e59012d20606f6c645f636f756e74603a2054686520757070657220626f756e6420666f72207468652070726576696f7573206e756d626572206f66206d656d6265727320696e2073746f726167652e205573656420666f7250202077656967687420657374696d6174696f6e2e0054526571756972657320726f6f74206f726967696e2e0051014e4f54453a20446f6573206e6f7420656e666f7263652074686520657870656374656420604d61784d656d6265727360206c696d6974206f6e2074686520616d6f756e74206f66206d656d626572732c2062757421012020202020207468652077656967687420657374696d6174696f6e732072656c79206f6e20697420746f20657374696d61746520646973706174636861626c65207765696768742e002823203c7765696768743e24232320576569676874502d20604f284d50202b204e29602077686572653ae020202d20604d60206f6c642d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429e020202d20604e60206e65772d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e646564299820202d206050602070726f706f73616c732d636f756e742028636f64652d626f756e64656429142d2044423a510120202d20312073746f72616765206d75746174696f6e2028636f64656320604f284d296020726561642c20604f284e29602077726974652920666f722072656164696e6720616e642077726974696e67207468652c202020206d656d62657273ec20202d20312073746f7261676520726561642028636f64656320604f285029602920666f722072656164696e67207468652070726f706f73616c73450120202d206050602073746f72616765206d75746174696f6e732028636f64656320604f284d29602920666f72207570646174696e672074686520766f74657320666f7220656163682070726f706f73616c5d0120202d20312073746f726167652077726974652028636f64656320604f283129602920666f722064656c6574696e6720746865206f6c6420607072696d656020616e642073657474696e6720746865206e6577206f6e652c23203c2f7765696768743e1c6578656375746508012070726f706f73616c0902017c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e0001306c656e6774685f626f756e64ad01010c75333200012cf0446973706174636820612070726f706f73616c2066726f6d2061206d656d626572207573696e672074686520604d656d62657260206f726967696e2e00a84f726967696e206d7573742062652061206d656d626572206f662074686520636f6c6c6563746976652e002823203c7765696768743e2423232057656967687455012d20604f284d202b2050296020776865726520604d60206d656d626572732d636f756e742028636f64652d626f756e6465642920616e642060506020636f6d706c6578697479206f66206469737061746368696e673020206070726f706f73616c60d42d2044423a203120726561642028636f64656320604f284d296029202b20444220616363657373206f66206070726f706f73616c60242d2031206576656e742c23203c2f7765696768743e1c70726f706f73650c01247468726573686f6c64ad01012c4d656d626572436f756e7400012070726f706f73616c0902017c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e0001306c656e6774685f626f756e64ad01010c75333200026cf84164642061206e65772070726f706f73616c20746f2065697468657220626520766f746564206f6e206f72206578656375746564206469726563746c792e00845265717569726573207468652073656e64657220746f206265206d656d6265722e004101607468726573686f6c64602064657465726d696e65732077686574686572206070726f706f73616c60206973206578656375746564206469726563746c792028607468726573686f6c64203c20326029546f722070757420757020666f7220766f74696e672e002823203c7765696768743e24232320576569676874ac2d20604f2842202b204d202b2050312960206f7220604f2842202b204d202b20503229602077686572653ae020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429dc20202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429c420202d206272616e6368696e6720697320696e666c75656e63656420627920607468726573686f6c64602077686572653af4202020202d20605031602069732070726f706f73616c20657865637574696f6e20636f6d706c65786974792028607468726573686f6c64203c20326029fc202020202d20605032602069732070726f706f73616c732d636f756e742028636f64652d626f756e646564292028607468726573686f6c64203e3d20326029142d2044423ab420202d20312073746f726167652072656164206069735f6d656d626572602028636f64656320604f284d296029f020202d20312073746f726167652072656164206050726f706f73616c4f663a3a636f6e7461696e735f6b6579602028636f64656320604f2831296029a820202d20444220616363657373657320696e666c75656e63656420627920607468726573686f6c64603a0901202020202d204549544845522073746f7261676520616363657373657320646f6e65206279206070726f706f73616c602028607468726573686f6c64203c20326029b8202020202d204f522070726f706f73616c20696e73657274696f6e2028607468726573686f6c64203c3d20326029d82020202020202d20312073746f72616765206d75746174696f6e206050726f706f73616c73602028636f64656320604f285032296029e42020202020202d20312073746f72616765206d75746174696f6e206050726f706f73616c436f756e74602028636f64656320604f2831296029cc2020202020202d20312073746f72616765207772697465206050726f706f73616c4f66602028636f64656320604f2842296029bc2020202020202d20312073746f726167652077726974652060566f74696e67602028636f64656320604f284d2960292c20202d2031206576656e742c23203c2f7765696768743e10766f74650c012070726f706f73616c24011c543a3a48617368000114696e646578ad01013450726f706f73616c496e64657800011c617070726f7665e80110626f6f6c00033cf041646420616e20617965206f72206e617920766f746520666f72207468652073656e64657220746f2074686520676976656e2070726f706f73616c2e008c5265717569726573207468652073656e64657220746f2062652061206d656d6265722e0049015472616e73616374696f6e20666565732077696c6c2062652077616976656420696620746865206d656d62657220697320766f74696e67206f6e20616e7920706172746963756c61722070726f706f73616c5101666f72207468652066697273742074696d6520616e64207468652063616c6c206973207375636365737366756c2e2053756273657175656e7420766f7465206368616e6765732077696c6c206368617267652061106665652e2823203c7765696768743e2423232057656967687409012d20604f284d296020776865726520604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429142d2044423aac20202d20312073746f72616765207265616420604d656d62657273602028636f64656320604f284d296029b820202d20312073746f72616765206d75746174696f6e2060566f74696e67602028636f64656320604f284d296029242d2031206576656e742c23203c2f7765696768743e14636c6f736510013470726f706f73616c5f6861736824011c543a3a48617368000114696e646578ad01013450726f706f73616c496e64657800015470726f706f73616c5f7765696768745f626f756e64410201185765696768740001306c656e6774685f626f756e64ad01010c7533320004804d01436c6f7365206120766f746520746861742069732065697468657220617070726f7665642c20646973617070726f766564206f722077686f736520766f74696e6720706572696f642068617320656e6465642e0055014d61792062652063616c6c656420627920616e79207369676e6564206163636f756e7420696e206f7264657220746f2066696e69736820766f74696e6720616e6420636c6f7365207468652070726f706f73616c2e00490149662063616c6c6564206265666f72652074686520656e64206f662074686520766f74696e6720706572696f642069742077696c6c206f6e6c7920636c6f73652074686520766f7465206966206974206973bc68617320656e6f75676820766f74657320746f20626520617070726f766564206f7220646973617070726f7665642e00490149662063616c6c65642061667465722074686520656e64206f662074686520766f74696e6720706572696f642061627374656e74696f6e732061726520636f756e7465642061732072656a656374696f6e732501756e6c6573732074686572652069732061207072696d65206d656d6265722073657420616e6420746865207072696d65206d656d626572206361737420616e20617070726f76616c2e00610149662074686520636c6f7365206f7065726174696f6e20636f6d706c65746573207375636365737366756c6c79207769746820646973617070726f76616c2c20746865207472616e73616374696f6e206665652077696c6c5d016265207761697665642e204f746865727769736520657865637574696f6e206f662074686520617070726f766564206f7065726174696f6e2077696c6c206265206368617267656420746f207468652063616c6c65722e0061012b206070726f706f73616c5f7765696768745f626f756e64603a20546865206d6178696d756d20616d6f756e74206f662077656967687420636f6e73756d656420627920657865637574696e672074686520636c6f7365642470726f706f73616c2e61012b20606c656e6774685f626f756e64603a2054686520757070657220626f756e6420666f7220746865206c656e677468206f66207468652070726f706f73616c20696e2073746f726167652e20436865636b65642076696135016073746f726167653a3a726561646020736f206974206973206073697a655f6f663a3a3c7533323e2829203d3d203460206c6172676572207468616e207468652070757265206c656e6774682e002823203c7765696768743e24232320576569676874742d20604f2842202b204d202b205031202b20503229602077686572653ae020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429dc20202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429c820202d20605031602069732074686520636f6d706c6578697479206f66206070726f706f73616c6020707265696d6167652ea420202d20605032602069732070726f706f73616c2d636f756e742028636f64652d626f756e64656429142d2044423a0d01202d20322073746f726167652072656164732028604d656d62657273603a20636f64656320604f284d29602c20605072696d65603a20636f64656320604f28312960295901202d2033206d75746174696f6e73202860566f74696e67603a20636f64656320604f284d29602c206050726f706f73616c4f66603a20636f64656320604f284229602c206050726f706f73616c73603a20636f6465632c202020604f285032296029dc202d20616e79206d75746174696f6e7320646f6e65207768696c6520657865637574696e67206070726f706f73616c6020286050316029402d20757020746f2033206576656e74732c23203c2f7765696768743e4c646973617070726f76655f70726f706f73616c04013470726f706f73616c5f6861736824011c543a3a486173680005385901446973617070726f766520612070726f706f73616c2c20636c6f73652c20616e642072656d6f76652069742066726f6d207468652073797374656d2c207265676172646c657373206f66206974732063757272656e741873746174652e00884d7573742062652063616c6c65642062792074686520526f6f74206f726967696e2e002c506172616d65746572733a1d012a206070726f706f73616c5f68617368603a205468652068617368206f66207468652070726f706f73616c20746861742073686f756c6420626520646973617070726f7665642e002823203c7765696768743edc436f6d706c65786974793a204f285029207768657265205020697320746865206e756d626572206f66206d61782070726f706f73616c73284442205765696768743a482a2052656164733a2050726f706f73616c739c2a205772697465733a20566f74696e672c2050726f706f73616c732c2050726f706f73616c4f662c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ef10204184f7074696f6e04045401000108104e6f6e6500000010536f6d650400000000010000f5020c4470616c6c65745f636f6c6c6563746976651870616c6c65741043616c6c0804540004490001182c7365745f6d656d626572730c012c6e65775f6d656d62657273dc01445665633c543a3a4163636f756e7449643e0001147072696d65f10201504f7074696f6e3c543a3a4163636f756e7449643e0001246f6c645f636f756e7410012c4d656d626572436f756e74000064805365742074686520636f6c6c6563746976652773206d656d626572736869702e0045012d20606e65775f6d656d62657273603a20546865206e6577206d656d626572206c6973742e204265206e69636520746f2074686520636861696e20616e642070726f7669646520697420736f727465642ee02d20607072696d65603a20546865207072696d65206d656d6265722077686f736520766f74652073657473207468652064656661756c742e59012d20606f6c645f636f756e74603a2054686520757070657220626f756e6420666f72207468652070726576696f7573206e756d626572206f66206d656d6265727320696e2073746f726167652e205573656420666f7250202077656967687420657374696d6174696f6e2e0054526571756972657320726f6f74206f726967696e2e0051014e4f54453a20446f6573206e6f7420656e666f7263652074686520657870656374656420604d61784d656d6265727360206c696d6974206f6e2074686520616d6f756e74206f66206d656d626572732c2062757421012020202020207468652077656967687420657374696d6174696f6e732072656c79206f6e20697420746f20657374696d61746520646973706174636861626c65207765696768742e002823203c7765696768743e24232320576569676874502d20604f284d50202b204e29602077686572653ae020202d20604d60206f6c642d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429e020202d20604e60206e65772d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e646564299820202d206050602070726f706f73616c732d636f756e742028636f64652d626f756e64656429142d2044423a510120202d20312073746f72616765206d75746174696f6e2028636f64656320604f284d296020726561642c20604f284e29602077726974652920666f722072656164696e6720616e642077726974696e67207468652c202020206d656d62657273ec20202d20312073746f7261676520726561642028636f64656320604f285029602920666f722072656164696e67207468652070726f706f73616c73450120202d206050602073746f72616765206d75746174696f6e732028636f64656320604f284d29602920666f72207570646174696e672074686520766f74657320666f7220656163682070726f706f73616c5d0120202d20312073746f726167652077726974652028636f64656320604f283129602920666f722064656c6574696e6720746865206f6c6420607072696d656020616e642073657474696e6720746865206e6577206f6e652c23203c2f7765696768743e1c6578656375746508012070726f706f73616c0902017c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e0001306c656e6774685f626f756e64ad01010c75333200012cf0446973706174636820612070726f706f73616c2066726f6d2061206d656d626572207573696e672074686520604d656d62657260206f726967696e2e00a84f726967696e206d7573742062652061206d656d626572206f662074686520636f6c6c6563746976652e002823203c7765696768743e2423232057656967687455012d20604f284d202b2050296020776865726520604d60206d656d626572732d636f756e742028636f64652d626f756e6465642920616e642060506020636f6d706c6578697479206f66206469737061746368696e673020206070726f706f73616c60d42d2044423a203120726561642028636f64656320604f284d296029202b20444220616363657373206f66206070726f706f73616c60242d2031206576656e742c23203c2f7765696768743e1c70726f706f73650c01247468726573686f6c64ad01012c4d656d626572436f756e7400012070726f706f73616c0902017c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e0001306c656e6774685f626f756e64ad01010c75333200026cf84164642061206e65772070726f706f73616c20746f2065697468657220626520766f746564206f6e206f72206578656375746564206469726563746c792e00845265717569726573207468652073656e64657220746f206265206d656d6265722e004101607468726573686f6c64602064657465726d696e65732077686574686572206070726f706f73616c60206973206578656375746564206469726563746c792028607468726573686f6c64203c20326029546f722070757420757020666f7220766f74696e672e002823203c7765696768743e24232320576569676874ac2d20604f2842202b204d202b2050312960206f7220604f2842202b204d202b20503229602077686572653ae020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429dc20202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429c420202d206272616e6368696e6720697320696e666c75656e63656420627920607468726573686f6c64602077686572653af4202020202d20605031602069732070726f706f73616c20657865637574696f6e20636f6d706c65786974792028607468726573686f6c64203c20326029fc202020202d20605032602069732070726f706f73616c732d636f756e742028636f64652d626f756e646564292028607468726573686f6c64203e3d20326029142d2044423ab420202d20312073746f726167652072656164206069735f6d656d626572602028636f64656320604f284d296029f020202d20312073746f726167652072656164206050726f706f73616c4f663a3a636f6e7461696e735f6b6579602028636f64656320604f2831296029a820202d20444220616363657373657320696e666c75656e63656420627920607468726573686f6c64603a0901202020202d204549544845522073746f7261676520616363657373657320646f6e65206279206070726f706f73616c602028607468726573686f6c64203c20326029b8202020202d204f522070726f706f73616c20696e73657274696f6e2028607468726573686f6c64203c3d20326029d82020202020202d20312073746f72616765206d75746174696f6e206050726f706f73616c73602028636f64656320604f285032296029e42020202020202d20312073746f72616765206d75746174696f6e206050726f706f73616c436f756e74602028636f64656320604f2831296029cc2020202020202d20312073746f72616765207772697465206050726f706f73616c4f66602028636f64656320604f2842296029bc2020202020202d20312073746f726167652077726974652060566f74696e67602028636f64656320604f284d2960292c20202d2031206576656e742c23203c2f7765696768743e10766f74650c012070726f706f73616c24011c543a3a48617368000114696e646578ad01013450726f706f73616c496e64657800011c617070726f7665e80110626f6f6c00033cf041646420616e20617965206f72206e617920766f746520666f72207468652073656e64657220746f2074686520676976656e2070726f706f73616c2e008c5265717569726573207468652073656e64657220746f2062652061206d656d6265722e0049015472616e73616374696f6e20666565732077696c6c2062652077616976656420696620746865206d656d62657220697320766f74696e67206f6e20616e7920706172746963756c61722070726f706f73616c5101666f72207468652066697273742074696d6520616e64207468652063616c6c206973207375636365737366756c2e2053756273657175656e7420766f7465206368616e6765732077696c6c206368617267652061106665652e2823203c7765696768743e2423232057656967687409012d20604f284d296020776865726520604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429142d2044423aac20202d20312073746f72616765207265616420604d656d62657273602028636f64656320604f284d296029b820202d20312073746f72616765206d75746174696f6e2060566f74696e67602028636f64656320604f284d296029242d2031206576656e742c23203c2f7765696768743e14636c6f736510013470726f706f73616c5f6861736824011c543a3a48617368000114696e646578ad01013450726f706f73616c496e64657800015470726f706f73616c5f7765696768745f626f756e64410201185765696768740001306c656e6774685f626f756e64ad01010c7533320004804d01436c6f7365206120766f746520746861742069732065697468657220617070726f7665642c20646973617070726f766564206f722077686f736520766f74696e6720706572696f642068617320656e6465642e0055014d61792062652063616c6c656420627920616e79207369676e6564206163636f756e7420696e206f7264657220746f2066696e69736820766f74696e6720616e6420636c6f7365207468652070726f706f73616c2e00490149662063616c6c6564206265666f72652074686520656e64206f662074686520766f74696e6720706572696f642069742077696c6c206f6e6c7920636c6f73652074686520766f7465206966206974206973bc68617320656e6f75676820766f74657320746f20626520617070726f766564206f7220646973617070726f7665642e00490149662063616c6c65642061667465722074686520656e64206f662074686520766f74696e6720706572696f642061627374656e74696f6e732061726520636f756e7465642061732072656a656374696f6e732501756e6c6573732074686572652069732061207072696d65206d656d6265722073657420616e6420746865207072696d65206d656d626572206361737420616e20617070726f76616c2e00610149662074686520636c6f7365206f7065726174696f6e20636f6d706c65746573207375636365737366756c6c79207769746820646973617070726f76616c2c20746865207472616e73616374696f6e206665652077696c6c5d016265207761697665642e204f746865727769736520657865637574696f6e206f662074686520617070726f766564206f7065726174696f6e2077696c6c206265206368617267656420746f207468652063616c6c65722e0061012b206070726f706f73616c5f7765696768745f626f756e64603a20546865206d6178696d756d20616d6f756e74206f662077656967687420636f6e73756d656420627920657865637574696e672074686520636c6f7365642470726f706f73616c2e61012b20606c656e6774685f626f756e64603a2054686520757070657220626f756e6420666f7220746865206c656e677468206f66207468652070726f706f73616c20696e2073746f726167652e20436865636b65642076696135016073746f726167653a3a726561646020736f206974206973206073697a655f6f663a3a3c7533323e2829203d3d203460206c6172676572207468616e207468652070757265206c656e6774682e002823203c7765696768743e24232320576569676874742d20604f2842202b204d202b205031202b20503229602077686572653ae020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429dc20202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429c820202d20605031602069732074686520636f6d706c6578697479206f66206070726f706f73616c6020707265696d6167652ea420202d20605032602069732070726f706f73616c2d636f756e742028636f64652d626f756e64656429142d2044423a0d01202d20322073746f726167652072656164732028604d656d62657273603a20636f64656320604f284d29602c20605072696d65603a20636f64656320604f28312960295901202d2033206d75746174696f6e73202860566f74696e67603a20636f64656320604f284d29602c206050726f706f73616c4f66603a20636f64656320604f284229602c206050726f706f73616c73603a20636f6465632c202020604f285032296029dc202d20616e79206d75746174696f6e7320646f6e65207768696c6520657865637574696e67206070726f706f73616c6020286050316029402d20757020746f2033206576656e74732c23203c2f7765696768743e4c646973617070726f76655f70726f706f73616c04013470726f706f73616c5f6861736824011c543a3a486173680005385901446973617070726f766520612070726f706f73616c2c20636c6f73652c20616e642072656d6f76652069742066726f6d207468652073797374656d2c207265676172646c657373206f66206974732063757272656e741873746174652e00884d7573742062652063616c6c65642062792074686520526f6f74206f726967696e2e002c506172616d65746572733a1d012a206070726f706f73616c5f68617368603a205468652068617368206f66207468652070726f706f73616c20746861742073686f756c6420626520646973617070726f7665642e002823203c7765696768743edc436f6d706c65786974793a204f285029207768657265205020697320746865206e756d626572206f66206d61782070726f706f73616c73284442205765696768743a482a2052656164733a2050726f706f73616c739c2a205772697465733a20566f74696e672c2050726f706f73616c732c2050726f706f73616c4f662c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ef9020c6470616c6c65745f656c656374696f6e735f70687261676d656e1870616c6c65741043616c6c04045400011810766f7465080114766f746573dc01445665633c543a3a4163636f756e7449643e00011476616c7565cc013042616c616e63654f663c543e00005c5901566f746520666f72206120736574206f662063616e6469646174657320666f7220746865207570636f6d696e6720726f756e64206f6620656c656374696f6e2e20546869732063616e2062652063616c6c656420746fe07365742074686520696e697469616c20766f7465732c206f722075706461746520616c7265616479206578697374696e6720766f7465732e005d0155706f6e20696e697469616c20766f74696e672c206076616c75656020756e697473206f66206077686f6027732062616c616e6365206973206c6f636b656420616e642061206465706f73697420616d6f756e742069734d0172657365727665642e20546865206465706f736974206973206261736564206f6e20746865206e756d626572206f6620766f74657320616e642063616e2062652075706461746564206f7665722074696d652e004c5468652060766f746573602073686f756c643a4420202d206e6f7420626520656d7074792e550120202d206265206c657373207468616e20746865206e756d626572206f6620706f737369626c652063616e646964617465732e204e6f7465207468617420616c6c2063757272656e74206d656d6265727320616e6411012020202072756e6e6572732d75702061726520616c736f206175746f6d61746963616c6c792063616e6469646174657320666f7220746865206e65787420726f756e642e004d014966206076616c756560206973206d6f7265207468616e206077686f60277320746f74616c2062616c616e63652c207468656e20746865206d6178696d756d206f66207468652074776f20697320757365642e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e65642e002c232323205761726e696e6700550149742069732074686520726573706f6e736962696c697479206f66207468652063616c6c657220746f202a2a4e4f542a2a20706c61636520616c6c206f662074686569722062616c616e636520696e746f20746865a86c6f636b20616e64206b65657020736f6d6520666f722066757274686572206f7065726174696f6e732e002823203c7765696768743e5101576520617373756d6520746865206d6178696d756d2077656967687420616d6f6e6720616c6c20332063617365733a20766f74655f657175616c2c20766f74655f6d6f726520616e6420766f74655f6c6573732e2c23203c2f7765696768743e3072656d6f76655f766f7465720001146c52656d6f766520606f726967696e60206173206120766f7465722e00b8546869732072656d6f76657320746865206c6f636b20616e642072657475726e7320746865206465706f7369742e00fc546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e656420616e64206265206120766f7465722e407375626d69745f63616e64696461637904013c63616e6469646174655f636f756e74ad01010c75333200023c11015375626d6974206f6e6573656c6620666f722063616e6469646163792e204120666978656420616d6f756e74206f66206465706f736974206973207265636f726465642e005d01416c6c2063616e64696461746573206172652077697065642061742074686520656e64206f6620746865207465726d2e205468657920656974686572206265636f6d652061206d656d6265722f72756e6e65722d75702ccc6f72206c65617665207468652073797374656d207768696c65207468656972206465706f73697420697320736c61736865642e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e65642e002c232323205761726e696e67005d014576656e20696620612063616e64696461746520656e6473207570206265696e672061206d656d6265722c2074686579206d7573742063616c6c205b6043616c6c3a3a72656e6f756e63655f63616e646964616379605d5901746f20676574207468656972206465706f736974206261636b2e204c6f73696e67207468652073706f7420696e20616e20656c656374696f6e2077696c6c20616c77617973206c65616420746f206120736c6173682e002823203c7765696768743e0901546865206e756d626572206f662063757272656e742063616e64696461746573206d7573742062652070726f7669646564206173207769746e65737320646174612e2c23203c2f7765696768743e4872656e6f756e63655f63616e64696461637904012872656e6f756e63696e67fd02012852656e6f756e63696e670003484d0152656e6f756e6365206f6e65277320696e74656e74696f6e20746f20626520612063616e64696461746520666f7220746865206e65787420656c656374696f6e20726f756e642e203320706f74656e7469616c3c6f7574636f6d65732065786973743a0049012d20606f726967696e6020697320612063616e64696461746520616e64206e6f7420656c656374656420696e20616e79207365742e20496e207468697320636173652c20746865206465706f736974206973f02020756e72657365727665642c2072657475726e656420616e64206f726967696e2069732072656d6f76656420617320612063616e6469646174652e61012d20606f726967696e6020697320612063757272656e742072756e6e65722d75702e20496e207468697320636173652c20746865206465706f73697420697320756e72657365727665642c2072657475726e656420616e648c20206f726967696e2069732072656d6f76656420617320612072756e6e65722d75702e55012d20606f726967696e6020697320612063757272656e74206d656d6265722e20496e207468697320636173652c20746865206465706f73697420697320756e726573657276656420616e64206f726967696e2069735501202072656d6f7665642061732061206d656d6265722c20636f6e73657175656e746c79206e6f74206265696e6720612063616e64696461746520666f7220746865206e65787420726f756e6420616e796d6f72652e6101202053696d696c617220746f205b6072656d6f76655f6d656d626572605d2853656c663a3a72656d6f76655f6d656d626572292c206966207265706c6163656d656e742072756e6e657273206578697374732c20746865795901202061726520696d6d6564696174656c7920757365642e20496620746865207072696d652069732072656e6f756e63696e672c207468656e206e6f207072696d652077696c6c20657869737420756e74696c207468653420206e65787420726f756e642e004501546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e65642c20616e642068617665206f6e65206f66207468652061626f766520726f6c65732e002823203c7765696768743ee05468652074797065206f662072656e6f756e63696e67206d7573742062652070726f7669646564206173207769746e65737320646174612e2c23203c2f7765696768743e3472656d6f76655f6d656d62657208010c77686f4d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500013c6861735f7265706c6163656d656e74e80110626f6f6c000438590152656d6f7665206120706172746963756c6172206d656d6265722066726f6d20746865207365742e20546869732069732065666665637469766520696d6d6564696174656c7920616e642074686520626f6e64206f667c746865206f7574676f696e67206d656d62657220697320736c61736865642e005501496620612072756e6e65722d757020697320617661696c61626c652c207468656e2074686520626573742072756e6e65722d75702077696c6c2062652072656d6f76656420616e64207265706c6163657320746865fc6f7574676f696e67206d656d6265722e204f74686572776973652c2061206e65772070687261676d656e20656c656374696f6e20697320737461727465642e00b8546865206469737061746368206f726967696e206f6620746869732063616c6c206d75737420626520726f6f742e0041014e6f74652074686174207468697320646f6573206e6f7420616666656374207468652064657369676e6174656420626c6f636b206e756d626572206f6620746865206e65787420656c656374696f6e2e002823203c7765696768743e5101496620776520686176652061207265706c6163656d656e742c20776520757365206120736d616c6c207765696768742e20456c73652c2073696e63652074686973206973206120726f6f742063616c6c20616e64d077696c6c20676f20696e746f2070687261676d656e2c20776520617373756d652066756c6c20626c6f636b20666f72206e6f772e2c23203c2f7765696768743e50636c65616e5f646566756e63745f766f746572730801286e756d5f766f7465727310010c75333200012c6e756d5f646566756e637410010c7533320005284501436c65616e20616c6c20766f746572732077686f2061726520646566756e63742028692e652e207468657920646f206e6f7420736572766520616e7920707572706f736520617420616c6c292e20546865ac6465706f736974206f66207468652072656d6f76656420766f74657273206172652072657475726e65642e0001015468697320697320616e20726f6f742066756e6374696f6e20746f2062652075736564206f6e6c7920666f7220636c65616e696e67207468652073746174652e00b8546865206469737061746368206f726967696e206f6620746869732063616c6c206d75737420626520726f6f742e002823203c7765696768743e5d0154686520746f74616c206e756d626572206f6620766f7465727320616e642074686f736520746861742061726520646566756e6374206d7573742062652070726f7669646564206173207769746e65737320646174612e2c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632efd02086470616c6c65745f656c656374696f6e735f70687261676d656e2852656e6f756e63696e6700010c184d656d6265720000002052756e6e657255700001002443616e6469646174650400ad01010c7533320002000001030c4470616c6c65745f6d656d626572736869701870616c6c65741043616c6c08045400044900011c286164645f6d656d62657204010c77686f000130543a3a4163636f756e74496400000c784164642061206d656d626572206077686f6020746f20746865207365742e009c4d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a4164644f726967696e602e3472656d6f76655f6d656d62657204010c77686f000130543a3a4163636f756e74496400010c8c52656d6f76652061206d656d626572206077686f602066726f6d20746865207365742e00a84d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a52656d6f76654f726967696e602e2c737761705f6d656d62657208011872656d6f7665000130543a3a4163636f756e74496400010c616464000130543a3a4163636f756e744964000214bc53776170206f7574206f6e65206d656d626572206072656d6f76656020666f7220616e6f746865722060616464602e00a04d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a537761704f726967696e602e000d015072696d65206d656d62657273686970206973202a6e6f742a207061737365642066726f6d206072656d6f76656020746f2060616464602c20696620657874616e742e3472657365745f6d656d6265727304011c6d656d62657273dc01445665633c543a3a4163636f756e7449643e00031055014368616e676520746865206d656d6265727368697020746f2061206e6577207365742c20646973726567617264696e6720746865206578697374696e67206d656d626572736869702e204265206e69636520616e64687061737320606d656d6265727360207072652d736f727465642e00a44d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a52657365744f726967696e602e286368616e67655f6b657904010c6e6577000130543a3a4163636f756e744964000414d453776170206f7574207468652073656e64696e67206d656d62657220666f7220736f6d65206f74686572206b657920606e6577602e00f04d6179206f6e6c792062652063616c6c65642066726f6d20605369676e656460206f726967696e206f6620612063757272656e74206d656d6265722e001d015072696d65206d656d62657273686970206973207061737365642066726f6d20746865206f726967696e206163636f756e7420746f20606e6577602c20696620657874616e742e247365745f7072696d6504010c77686f000130543a3a4163636f756e74496400050cbc53657420746865207072696d65206d656d6265722e204d75737420626520612063757272656e74206d656d6265722e00a44d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a5072696d654f726967696e602e2c636c6561725f7072696d6500060c9452656d6f766520746865207072696d65206d656d626572206966206974206578697374732e00a44d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a5072696d654f726967696e602e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e05030c3c70616c6c65745f74726561737572791870616c6c65741043616c6c08045400044900010c3470726f706f73655f7370656e6408011476616c7565cc013c42616c616e63654f663c542c20493e00012c62656e65666963696172794d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365000024290150757420666f727761726420612073756767657374696f6e20666f72207370656e64696e672e2041206465706f7369742070726f706f7274696f6e616c20746f207468652076616c75653101697320726573657276656420616e6420736c6173686564206966207468652070726f706f73616c2069732072656a65637465642e2049742069732072657475726e6564206f6e6365207468655070726f706f73616c20697320617761726465642e002823203c7765696768743e482d20436f6d706c65786974793a204f283129b02d20446252656164733a206050726f706f73616c436f756e74602c20606f726967696e206163636f756e7460e82d2044625772697465733a206050726f706f73616c436f756e74602c206050726f706f73616c73602c20606f726967696e206163636f756e74602c23203c2f7765696768743e3c72656a6563745f70726f706f73616c04012c70726f706f73616c5f6964ad01013450726f706f73616c496e646578000124f852656a65637420612070726f706f736564207370656e642e20546865206f726967696e616c206465706f7369742077696c6c20626520736c61736865642e00a84d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a52656a6563744f726967696e602e002823203c7765696768743e482d20436f6d706c65786974793a204f283129cc2d20446252656164733a206050726f706f73616c73602c206072656a65637465642070726f706f736572206163636f756e7460d02d2044625772697465733a206050726f706f73616c73602c206072656a65637465642070726f706f736572206163636f756e74602c23203c2f7765696768743e40617070726f76655f70726f706f73616c04012c70726f706f73616c5f6964ad01013450726f706f73616c496e6465780002285901417070726f766520612070726f706f73616c2e2041742061206c617465722074696d652c207468652070726f706f73616c2077696c6c20626520616c6c6f636174656420746f207468652062656e6566696369617279a8616e6420746865206f726967696e616c206465706f7369742077696c6c2062652072657475726e65642e00ac4d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a417070726f76654f726967696e602e002823203c7765696768743e4c2d20436f6d706c65786974793a204f2831292e8c2d20446252656164733a206050726f706f73616c73602c2060417070726f76616c7360582d20446257726974653a2060417070726f76616c73602c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e0903105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e18636c61696d731870616c6c65741043616c6c04045400011414636c61696d08011064657374000130543a3a4163636f756e744964000148657468657265756d5f7369676e61747572650d03013845636473615369676e6174757265000060884d616b65206120636c61696d20746f20636f6c6c65637420796f757220444f54732e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f4e6f6e655f2e0050556e7369676e65642056616c69646174696f6e3a0501412063616c6c20746f20636c61696d206973206465656d65642076616c696420696620746865207369676e61747572652070726f7669646564206d6174636865737c746865206578706563746564207369676e6564206d657373616765206f663a00683e20457468657265756d205369676e6564204d6573736167653a943e2028636f6e666967757265642070726566697820737472696e672928616464726573732900a4616e6420606164647265737360206d6174636865732074686520606465737460206163636f756e742e002c506172616d65746572733ad82d206064657374603a205468652064657374696e6174696f6e206163636f756e7420746f207061796f75742074686520636c61696d2e0d012d2060657468657265756d5f7369676e6174757265603a20546865207369676e6174757265206f6620616e20657468657265756d207369676e6564206d6573736167659c2020206d61746368696e672074686520666f726d6174206465736372696265642061626f76652e00203c7765696768743efc54686520776569676874206f6620746869732063616c6c20697320696e76617269616e74206f7665722074686520696e70757420706172616d65746572732ee057656967687420696e636c75646573206c6f67696320746f2076616c696461746520756e7369676e65642060636c61696d602063616c6c2e0058546f74616c20436f6d706c65786974793a204f283129243c2f7765696768743e286d696e745f636c61696d10010c77686f0901013c457468657265756d4164647265737300011476616c756518013042616c616e63654f663c543e00014076657374696e675f7363686564756c65150301d04f7074696f6e3c2842616c616e63654f663c543e2c2042616c616e63654f663c543e2c20543a3a426c6f636b4e756d626572293e00012473746174656d656e741d0301544f7074696f6e3c53746174656d656e744b696e643e00013c844d696e742061206e657720636c61696d20746f20636f6c6c65637420444f54732e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e002c506172616d65746572733af02d206077686f603a2054686520457468657265756d206164647265737320616c6c6f77656420746f20636f6c6c656374207468697320636c61696d2ecc2d206076616c7565603a20546865206e756d626572206f6620444f547320746861742077696c6c20626520636c61696d65642e09012d206076657374696e675f7363686564756c65603a20416e206f7074696f6e616c2076657374696e67207363686564756c6520666f7220746865736520444f54732e00203c7765696768743efc54686520776569676874206f6620746869732063616c6c20697320696e76617269616e74206f7665722074686520696e70757420706172616d65746572732e1d01576520617373756d6520776f7273742063617365207468617420626f74682076657374696e6720616e642073746174656d656e74206973206265696e6720696e7365727465642e0058546f74616c20436f6d706c65786974793a204f283129243c2f7765696768743e30636c61696d5f6174746573740c011064657374000130543a3a4163636f756e744964000148657468657265756d5f7369676e61747572650d03013845636473615369676e617475726500012473746174656d656e7428011c5665633c75383e000268e44d616b65206120636c61696d20746f20636f6c6c65637420796f757220444f5473206279207369676e696e6720612073746174656d656e742e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f4e6f6e655f2e0050556e7369676e65642056616c69646174696f6e3a2901412063616c6c20746f2060636c61696d5f61747465737460206973206465656d65642076616c696420696620746865207369676e61747572652070726f7669646564206d6174636865737c746865206578706563746564207369676e6564206d657373616765206f663a00683e20457468657265756d205369676e6564204d6573736167653ac03e2028636f6e666967757265642070726566697820737472696e67292861646472657373292873746174656d656e7429004901616e6420606164647265737360206d6174636865732074686520606465737460206163636f756e743b20746865206073746174656d656e7460206d757374206d617463682074686174207768696368206973c06578706563746564206163636f7264696e6720746f20796f757220707572636861736520617272616e67656d656e742e002c506172616d65746572733ad82d206064657374603a205468652064657374696e6174696f6e206163636f756e7420746f207061796f75742074686520636c61696d2e0d012d2060657468657265756d5f7369676e6174757265603a20546865207369676e6174757265206f6620616e20657468657265756d207369676e6564206d6573736167659c2020206d61746368696e672074686520666f726d6174206465736372696265642061626f76652e65012d206073746174656d656e74603a20546865206964656e74697479206f66207468652073746174656d656e74207768696368206973206265696e6720617474657374656420746f20696e20746865207369676e61747572652e00203c7765696768743efc54686520776569676874206f6620746869732063616c6c20697320696e76617269616e74206f7665722074686520696e70757420706172616d65746572732efc57656967687420696e636c75646573206c6f67696320746f2076616c696461746520756e7369676e65642060636c61696d5f617474657374602063616c6c2e0058546f74616c20436f6d706c65786974793a204f283129243c2f7765696768743e1861747465737404012473746174656d656e7428011c5665633c75383e000344f441747465737420746f20612073746174656d656e742c206e656564656420746f2066696e616c697a652074686520636c61696d732070726f636573732e0065015741524e494e473a20496e73656375726520756e6c65737320796f757220636861696e20696e636c75646573206050726576616c69646174654174746573747360206173206120605369676e6564457874656e73696f6e602e0050556e7369676e65642056616c69646174696f6e3a2901412063616c6c20746f20617474657374206973206465656d65642076616c6964206966207468652073656e6465722068617320612060507265636c61696d602072656769737465726564f4616e642070726f76696465732061206073746174656d656e746020776869636820697320657870656374656420666f7220746865206163636f756e742e002c506172616d65746572733a65012d206073746174656d656e74603a20546865206964656e74697479206f66207468652073746174656d656e74207768696368206973206265696e6720617474657374656420746f20696e20746865207369676e61747572652e00203c7765696768743efc54686520776569676874206f6620746869732063616c6c20697320696e76617269616e74206f7665722074686520696e70757420706172616d65746572732ef057656967687420696e636c75646573206c6f67696320746f20646f207072652d76616c69646174696f6e206f6e2060617474657374602063616c6c2e0058546f74616c20436f6d706c65786974793a204f283129243c2f7765696768743e286d6f76655f636c61696d0c010c6f6c640901013c457468657265756d4164647265737300010c6e65770901013c457468657265756d416464726573730001386d617962655f707265636c61696df10201504f7074696f6e3c543a3a4163636f756e7449643e000400042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e0d030c5c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e18636c61696d733845636473615369676e617475726500000400110301205b75383b2036355d00001103000003410000000800150304184f7074696f6e0404540119030108104e6f6e6500000010536f6d6504001903000001000019030000040c181810001d0304184f7074696f6e0404540121030108104e6f6e6500000010536f6d6504002103000001000021030c5c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e18636c61696d733453746174656d656e744b696e640001081c526567756c617200000010536166740001000025030c3870616c6c65745f76657374696e671870616c6c65741043616c6c0404540001141076657374000034b8556e6c6f636b20616e79207665737465642066756e6473206f66207468652073656e646572206163636f756e742e005d01546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652066756e6473207374696c6c646c6f636b656420756e64657220746869732070616c6c65742e00d0456d69747320656974686572206056657374696e67436f6d706c6574656460206f72206056657374696e6755706461746564602e002823203c7765696768743e242d20604f283129602e742d2044625765696768743a20322052656164732c203220577269746573f8202020202d2052656164733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c205b53656e646572204163636f756e745dfc202020202d205772697465733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c205b53656e646572204163636f756e745d2c23203c2f7765696768743e28766573745f6f746865720401187461726765744d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500013cb8556e6c6f636b20616e79207665737465642066756e6473206f662061206074617267657460206163636f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0051012d2060746172676574603a20546865206163636f756e742077686f7365207665737465642066756e64732073686f756c6420626520756e6c6f636b65642e204d75737420686176652066756e6473207374696c6c646c6f636b656420756e64657220746869732070616c6c65742e00d0456d69747320656974686572206056657374696e67436f6d706c6574656460206f72206056657374696e6755706461746564602e002823203c7765696768743e242d20604f283129602e742d2044625765696768743a20332052656164732c203320577269746573f0202020202d2052656164733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e74f4202020202d205772697465733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e742c23203c2f7765696768743e3c7665737465645f7472616e736665720801187461726765744d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001207363686564756c65290301a456657374696e67496e666f3c42616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265723e00024464437265617465206120766573746564207472616e736665722e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e00cc2d2060746172676574603a20546865206163636f756e7420726563656976696e6720746865207665737465642066756e64732ef02d20607363686564756c65603a205468652076657374696e67207363686564756c6520617474616368656420746f20746865207472616e736665722e005c456d697473206056657374696e6743726561746564602e00fc4e4f54453a20546869732077696c6c20756e6c6f636b20616c6c207363686564756c6573207468726f756768207468652063757272656e7420626c6f636b2e002823203c7765696768743e242d20604f283129602e742d2044625765696768743a20332052656164732c2033205772697465733901202020202d2052656164733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e742c205b53656e646572204163636f756e745d3d01202020202d205772697465733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e742c205b53656e646572204163636f756e745d2c23203c2f7765696768743e54666f7263655f7665737465645f7472616e736665720c0118736f757263654d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001187461726765744d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001207363686564756c65290301a456657374696e67496e666f3c42616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265723e00034860466f726365206120766573746564207472616e736665722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e00e82d2060736f75726365603a20546865206163636f756e742077686f73652066756e64732073686f756c64206265207472616e736665727265642e11012d2060746172676574603a20546865206163636f756e7420746861742073686f756c64206265207472616e7366657272656420746865207665737465642066756e64732ef02d20607363686564756c65603a205468652076657374696e67207363686564756c6520617474616368656420746f20746865207472616e736665722e005c456d697473206056657374696e6743726561746564602e00fc4e4f54453a20546869732077696c6c20756e6c6f636b20616c6c207363686564756c6573207468726f756768207468652063757272656e7420626c6f636b2e002823203c7765696768743e242d20604f283129602e742d2044625765696768743a20342052656164732c2034205772697465733101202020202d2052656164733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e742c20536f75726365204163636f756e743501202020202d205772697465733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e742c20536f75726365204163636f756e742c23203c2f7765696768743e3c6d657267655f7363686564756c657308013c7363686564756c65315f696e64657810010c75333200013c7363686564756c65325f696e64657810010c7533320004545d014d657267652074776f2076657374696e67207363686564756c657320746f6765746865722c206372656174696e672061206e65772076657374696e67207363686564756c65207468617420756e6c6f636b73206f7665725501746865206869676865737420706f737369626c6520737461727420616e6420656e6420626c6f636b732e20496620626f7468207363686564756c6573206861766520616c7265616479207374617274656420746865590163757272656e7420626c6f636b2077696c6c206265207573656420617320746865207363686564756c652073746172743b207769746820746865206361766561742074686174206966206f6e65207363686564756c655d0169732066696e6973686564206279207468652063757272656e7420626c6f636b2c20746865206f746865722077696c6c206265207472656174656420617320746865206e6577206d6572676564207363686564756c652c2c756e6d6f6469666965642e00f84e4f54453a20496620607363686564756c65315f696e646578203d3d207363686564756c65325f696e6465786020746869732069732061206e6f2d6f702e41014e4f54453a20546869732077696c6c20756e6c6f636b20616c6c207363686564756c6573207468726f756768207468652063757272656e7420626c6f636b207072696f7220746f206d657267696e672e61014e4f54453a20496620626f7468207363686564756c6573206861766520656e646564206279207468652063757272656e7420626c6f636b2c206e6f206e6577207363686564756c652077696c6c206265206372656174656464616e6420626f74682077696c6c2062652072656d6f7665642e006c4d6572676564207363686564756c6520617474726962757465733a35012d20607374617274696e675f626c6f636b603a20604d4158287363686564756c65312e7374617274696e675f626c6f636b2c207363686564756c6564322e7374617274696e675f626c6f636b2c48202063757272656e745f626c6f636b29602e21012d2060656e64696e675f626c6f636b603a20604d4158287363686564756c65312e656e64696e675f626c6f636b2c207363686564756c65322e656e64696e675f626c6f636b29602e59012d20606c6f636b6564603a20607363686564756c65312e6c6f636b65645f61742863757272656e745f626c6f636b29202b207363686564756c65322e6c6f636b65645f61742863757272656e745f626c6f636b29602e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e00e82d20607363686564756c65315f696e646578603a20696e646578206f6620746865206669727374207363686564756c6520746f206d657267652eec2d20607363686564756c65325f696e646578603a20696e646578206f6620746865207365636f6e64207363686564756c6520746f206d657267652e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e29030c3870616c6c65745f76657374696e673076657374696e675f696e666f2c56657374696e67496e666f081c42616c616e636501182c426c6f636b4e756d6265720110000c01186c6f636b656418011c42616c616e63650001247065725f626c6f636b18011c42616c616e63650001387374617274696e675f626c6f636b10012c426c6f636b4e756d62657200002d030c3870616c6c65745f7574696c6974791870616c6c65741043616c6c04045400010c14626174636804011463616c6c73310301605665633c3c5420617320436f6e6669673e3a3a43616c6c3e00004c7c53656e642061206261746368206f662064697370617463682063616c6c732e00784d61792062652063616c6c65642066726f6d20616e79206f726967696e2e005d012d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f74390120206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e005d014966206f726967696e20697320726f6f74207468656e2063616c6c2061726520646973706174636820776974686f757420636865636b696e67206f726967696e2066696c7465722e20285468697320696e636c75646573c8627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e002823203c7765696768743e01012d20436f6d706c65786974793a204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e2c23203c2f7765696768743e005501546869732077696c6c2072657475726e20604f6b6020696e20616c6c2063697263756d7374616e6365732e20546f2064657465726d696e65207468652073756363657373206f66207468652062617463682c20616e31016576656e74206973206465706f73697465642e20496620612063616c6c206661696c656420616e64207468652062617463682077617320696e7465727275707465642c207468656e207468655501604261746368496e74657272757074656460206576656e74206973206465706f73697465642c20616c6f6e67207769746820746865206e756d626572206f66207375636365737366756c2063616c6c73206d6164654d01616e6420746865206572726f72206f6620746865206661696c65642063616c6c2e20496620616c6c2077657265207375636365737366756c2c207468656e2074686520604261746368436f6d706c65746564604c6576656e74206973206465706f73697465642e3461735f64657269766174697665080114696e6465782501010c75313600011063616c6c09020160426f783c3c5420617320436f6e6669673e3a3a43616c6c3e000134dc53656e6420612063616c6c207468726f75676820616e20696e64657865642070736575646f6e796d206f66207468652073656e6465722e00550146696c7465722066726f6d206f726967696e206172652070617373656420616c6f6e672e205468652063616c6c2077696c6c2062652064697370617463686564207769746820616e206f726967696e207768696368bc757365207468652073616d652066696c74657220617320746865206f726967696e206f6620746869732063616c6c2e0045014e4f54453a20496620796f75206e65656420746f20656e73757265207468617420616e79206163636f756e742d62617365642066696c746572696e67206973206e6f7420686f6e6f7265642028692e652e61016265636175736520796f7520657870656374206070726f78796020746f2068617665206265656e2075736564207072696f7220696e207468652063616c6c20737461636b20616e6420796f7520646f206e6f742077616e7451017468652063616c6c207265737472696374696f6e7320746f206170706c7920746f20616e79207375622d6163636f756e7473292c207468656e20757365206061735f6d756c74695f7468726573686f6c645f31607c696e20746865204d756c74697369672070616c6c657420696e73746561642e00f44e4f54453a205072696f7220746f2076657273696f6e202a31322c2074686973207761732063616c6c6564206061735f6c696d697465645f737562602e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e2462617463685f616c6c04011463616c6c73310301605665633c3c5420617320436f6e6669673e3a3a43616c6c3e000238ec53656e642061206261746368206f662064697370617463682063616c6c7320616e642061746f6d6963616c6c792065786563757465207468656d2e21015468652077686f6c65207472616e73616374696f6e2077696c6c20726f6c6c6261636b20616e64206661696c20696620616e79206f66207468652063616c6c73206661696c65642e00784d61792062652063616c6c65642066726f6d20616e79206f726967696e2e005d012d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f74390120206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e005d014966206f726967696e20697320726f6f74207468656e2063616c6c2061726520646973706174636820776974686f757420636865636b696e67206f726967696e2066696c7465722e20285468697320696e636c75646573c8627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e002823203c7765696768743e01012d20436f6d706c65786974793a204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e2c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e310300000209020035030c3c70616c6c65745f6964656e746974791870616c6c65741043616c6c04045400013c346164645f72656769737472617204011c6163636f756e74000130543a3a4163636f756e7449640000347841646420612072656769737472617220746f207468652073797374656d2e00fc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652060543a3a5265676973747261724f726967696e602e00a82d20606163636f756e74603a20746865206163636f756e74206f6620746865207265676973747261722e0094456d6974732060526567697374726172416464656460206966207375636365737366756c2e002823203c7765696768743e25012d20604f2852296020776865726520605260207265676973747261722d636f756e742028676f7665726e616e63652d626f756e64656420616e6420636f64652d626f756e646564292e982d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28522960292e302d204f6e65206576656e742e2c23203c2f7765696768743e307365745f6964656e74697479040110696e666f390301a4426f783c4964656e74697479496e666f3c543a3a4d61784164646974696f6e616c4669656c64733e3e00014c290153657420616e206163636f756e742773206964656e7469747920696e666f726d6174696f6e20616e6420726573657276652074686520617070726f707269617465206465706f7369742e005501496620746865206163636f756e7420616c726561647920686173206964656e7469747920696e666f726d6174696f6e2c20746865206465706f7369742069732074616b656e2061732070617274207061796d656e7450666f7220746865206e6577206465706f7369742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e008c2d2060696e666f603a20546865206964656e7469747920696e666f726d6174696f6e2e0088456d69747320604964656e7469747953657460206966207375636365737366756c2e002823203c7765696768743e442d20604f2858202b205827202b205229601d0120202d20776865726520605860206164646974696f6e616c2d6669656c642d636f756e7420286465706f7369742d626f756e64656420616e6420636f64652d626f756e64656429e020202d20776865726520605260206a756467656d656e74732d636f756e7420287265676973747261722d636f756e742d626f756e64656429802d204f6e652062616c616e63652072657365727665206f7065726174696f6e2e21012d204f6e652073746f72616765206d75746174696f6e2028636f6465632d7265616420604f285827202b205229602c20636f6465632d777269746520604f2858202b20522960292e302d204f6e65206576656e742e2c23203c2f7765696768743e207365745f7375627304011073756273c10301645665633c28543a3a4163636f756e7449642c2044617461293e0002548c53657420746865207375622d6163636f756e7473206f66207468652073656e6465722e0055015061796d656e743a20416e79206167677265676174652062616c616e63652072657365727665642062792070726576696f757320607365745f73756273602063616c6c732077696c6c2062652072657475726e65642d01616e6420616e20616d6f756e7420605375624163636f756e744465706f736974602077696c6c20626520726573657276656420666f722065616368206974656d20696e206073756273602e006101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d757374206861766520612072656769737465726564246964656e746974792e00b02d206073756273603a20546865206964656e74697479277320286e657729207375622d6163636f756e74732e002823203c7765696768743e302d20604f2850202b20532960e420202d20776865726520605060206f6c642d737562732d636f756e742028686172642d20616e64206465706f7369742d626f756e646564292ed420202d2077686572652060536020737562732d636f756e742028686172642d20616e64206465706f7369742d626f756e646564292e842d204174206d6f7374206f6e652062616c616e6365206f7065726174696f6e732e142d2044423adc20202d206050202b2053602073746f72616765206d75746174696f6e732028636f64656320636f6d706c657869747920604f2831296029bc20202d204f6e652073746f7261676520726561642028636f64656320636f6d706c657869747920604f28502960292ec020202d204f6e652073746f726167652077726974652028636f64656320636f6d706c657869747920604f28532960292ed020202d204f6e652073746f726167652d6578697374732028604964656e746974794f663a3a636f6e7461696e735f6b657960292e2c23203c2f7765696768743e38636c6561725f6964656e746974790003483901436c65617220616e206163636f756e742773206964656e7469747920696e666f20616e6420616c6c207375622d6163636f756e747320616e642072657475726e20616c6c206465706f736974732e00ec5061796d656e743a20416c6c2072657365727665642062616c616e636573206f6e20746865206163636f756e74206172652072657475726e65642e006101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d757374206861766520612072656769737465726564246964656e746974792e0098456d69747320604964656e74697479436c656172656460206966207375636365737366756c2e002823203c7765696768743e402d20604f2852202b2053202b20582960cc20202d20776865726520605260207265676973747261722d636f756e742028676f7665726e616e63652d626f756e646564292ed420202d2077686572652060536020737562732d636f756e742028686172642d20616e64206465706f7369742d626f756e646564292e210120202d20776865726520605860206164646974696f6e616c2d6669656c642d636f756e7420286465706f7369742d626f756e64656420616e6420636f64652d626f756e646564292e882d204f6e652062616c616e63652d756e72657365727665206f7065726174696f6e2ec82d206032602073746f7261676520726561647320616e64206053202b2032602073746f726167652064656c6574696f6e732e302d204f6e65206576656e742e2c23203c2f7765696768743e44726571756573745f6a756467656d656e740801247265675f696e646578ad010138526567697374726172496e64657800011c6d61785f666565cc013042616c616e63654f663c543e00045c94526571756573742061206a756467656d656e742066726f6d2061207265676973747261722e0055015061796d656e743a204174206d6f737420606d61785f666565602077696c6c20626520726573657276656420666f72207061796d656e7420746f2074686520726567697374726172206966206a756467656d656e7418676976656e2e003501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d757374206861766520615072656769737465726564206964656e746974792e001d012d20607265675f696e646578603a2054686520696e646578206f6620746865207265676973747261722077686f7365206a756467656d656e74206973207265717565737465642e55012d20606d61785f666565603a20546865206d6178696d756d206665652074686174206d617920626520706169642e20546869732073686f756c64206a757374206265206175746f2d706f70756c617465642061733a00306060606e6f636f6d70696c65b853656c663a3a7265676973747261727328292e676574287265675f696e646578292e756e7772617028292e6665650c60606000a4456d69747320604a756467656d656e7452657175657374656460206966207375636365737366756c2e002823203c7765696768743e342d20604f2852202b205829602e802d204f6e652062616c616e63652d72657365727665206f7065726174696f6e2eb82d2053746f726167653a2031207265616420604f285229602c2031206d757461746520604f2858202b205229602e302d204f6e65206576656e742e2c23203c2f7765696768743e3863616e63656c5f726571756573740401247265675f696e646578100138526567697374726172496e6465780005446843616e63656c20612070726576696f757320726571756573742e00f85061796d656e743a20412070726576696f75736c79207265736572766564206465706f7369742069732072657475726e6564206f6e20737563636573732e003501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d757374206861766520615072656769737465726564206964656e746974792e0045012d20607265675f696e646578603a2054686520696e646578206f6620746865207265676973747261722077686f7365206a756467656d656e74206973206e6f206c6f6e676572207265717565737465642e00ac456d69747320604a756467656d656e74556e72657175657374656460206966207375636365737366756c2e002823203c7765696768743e342d20604f2852202b205829602e802d204f6e652062616c616e63652d72657365727665206f7065726174696f6e2e882d204f6e652073746f72616765206d75746174696f6e20604f2852202b205829602e2c2d204f6e65206576656e742c23203c2f7765696768743e1c7365745f666565080114696e646578ad010138526567697374726172496e64657800010c666565cc013042616c616e63654f663c543e0006341901536574207468652066656520726571756972656420666f722061206a756467656d656e7420746f206265207265717565737465642066726f6d2061207265676973747261722e005501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74a06f6620746865207265676973747261722077686f736520696e6465782069732060696e646578602e00f42d2060696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f73652066656520697320746f206265207365742e542d2060666565603a20746865206e6577206665652e002823203c7765696768743e242d20604f285229602e782d204f6e652073746f72616765206d75746174696f6e20604f285229602ee42d2042656e63686d61726b3a20372e333135202b2052202a20302e33323920c2b57320286d696e207371756172657320616e616c79736973292c23203c2f7765696768743e387365745f6163636f756e745f6964080114696e646578ad010138526567697374726172496e64657800010c6e6577000130543a3a4163636f756e744964000734bc4368616e676520746865206163636f756e74206173736f63696174656420776974682061207265676973747261722e005501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74a06f6620746865207265676973747261722077686f736520696e6465782069732060696e646578602e00f42d2060696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f73652066656520697320746f206265207365742e702d20606e6577603a20746865206e6577206163636f756e742049442e002823203c7765696768743e242d20604f285229602e782d204f6e652073746f72616765206d75746174696f6e20604f285229602ee02d2042656e63686d61726b3a20382e383233202b2052202a20302e333220c2b57320286d696e207371756172657320616e616c79736973292c23203c2f7765696768743e287365745f6669656c6473080114696e646578ad010138526567697374726172496e6465780001186669656c6473c90301384964656e746974794669656c6473000834a853657420746865206669656c6420696e666f726d6174696f6e20666f722061207265676973747261722e005501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74a06f6620746865207265676973747261722077686f736520696e6465782069732060696e646578602e00f42d2060696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f73652066656520697320746f206265207365742e0d012d20606669656c6473603a20746865206669656c64732074686174207468652072656769737472617220636f6e6365726e73207468656d73656c76657320776974682e002823203c7765696768743e242d20604f285229602e782d204f6e652073746f72616765206d75746174696f6e20604f285229602ee42d2042656e63686d61726b3a20372e343634202b2052202a20302e33323520c2b57320286d696e207371756172657320616e616c79736973292c23203c2f7765696768743e4470726f766964655f6a756467656d656e740c01247265675f696e646578ad010138526567697374726172496e6465780001187461726765744d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001246a756467656d656e74d103015c4a756467656d656e743c42616c616e63654f663c543e3e00094cb850726f766964652061206a756467656d656e7420666f7220616e206163636f756e742773206964656e746974792e005501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74b06f6620746865207265676973747261722077686f736520696e64657820697320607265675f696e646578602e0021012d20607265675f696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f7365206a756467656d656e74206973206265696e67206d6164652e55012d2060746172676574603a20746865206163636f756e742077686f7365206964656e7469747920746865206a756467656d656e742069732075706f6e2e2054686973206d75737420626520616e206163636f756e747420207769746820612072656769737465726564206964656e746974792e49012d20606a756467656d656e74603a20746865206a756467656d656e74206f662074686520726567697374726172206f6620696e64657820607265675f696e646578602061626f75742060746172676574602e0094456d69747320604a756467656d656e74476976656e60206966207375636365737366756c2e002823203c7765696768743e342d20604f2852202b205829602e842d204f6e652062616c616e63652d7472616e73666572206f7065726174696f6e2e942d20557020746f206f6e65206163636f756e742d6c6f6f6b7570206f7065726174696f6e2eb82d2053746f726167653a2031207265616420604f285229602c2031206d757461746520604f2852202b205829602e302d204f6e65206576656e742e2c23203c2f7765696768743e346b696c6c5f6964656e746974790401187461726765744d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365000a4c410152656d6f766520616e206163636f756e742773206964656e7469747920616e64207375622d6163636f756e7420696e666f726d6174696f6e20616e6420736c61736820746865206465706f736974732e0061015061796d656e743a2052657365727665642062616c616e6365732066726f6d20607365745f737562736020616e6420607365745f6964656e74697479602061726520736c617368656420616e642068616e646c6564206279450160536c617368602e20566572696669636174696f6e2072657175657374206465706f7369747320617265206e6f742072657475726e65643b20746865792073686f756c642062652063616e63656c6c6564806d616e75616c6c79207573696e67206063616e63656c5f72657175657374602e00f8546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206d617463682060543a3a466f7263654f726967696e602e0055012d2060746172676574603a20746865206163636f756e742077686f7365206964656e7469747920746865206a756467656d656e742069732075706f6e2e2054686973206d75737420626520616e206163636f756e747420207769746820612072656769737465726564206964656e746974792e0094456d69747320604964656e746974794b696c6c656460206966207375636365737366756c2e002823203c7765696768743e442d20604f2852202b2053202b205829602e802d204f6e652062616c616e63652d72657365727665206f7065726174696f6e2e702d206053202b2032602073746f72616765206d75746174696f6e732e302d204f6e65206576656e742e2c23203c2f7765696768743e1c6164645f73756208010c7375624d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365000110646174614503011044617461000b1cac4164642074686520676976656e206163636f756e7420746f207468652073656e646572277320737562732e005d015061796d656e743a2042616c616e636520726573657276656420627920612070726576696f757320607365745f73756273602063616c6c20666f72206f6e65207375622077696c6c20626520726570617472696174656438746f207468652073656e6465722e006101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652061207265676973746572656458737562206964656e74697479206f662060737562602e2872656e616d655f73756208010c7375624d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365000110646174614503011044617461000c10cc416c74657220746865206173736f636961746564206e616d65206f662074686520676976656e207375622d6163636f756e742e006101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652061207265676973746572656458737562206964656e74697479206f662060737562602e2872656d6f76655f73756204010c7375624d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365000d1cc052656d6f76652074686520676976656e206163636f756e742066726f6d207468652073656e646572277320737562732e005d015061796d656e743a2042616c616e636520726573657276656420627920612070726576696f757320607365745f73756273602063616c6c20666f72206f6e65207375622077696c6c20626520726570617472696174656438746f207468652073656e6465722e006101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652061207265676973746572656458737562206964656e74697479206f662060737562602e20717569745f737562000e288c52656d6f7665207468652073656e6465722061732061207375622d6163636f756e742e005d015061796d656e743a2042616c616e636520726573657276656420627920612070726576696f757320607365745f73756273602063616c6c20666f72206f6e65207375622077696c6c206265207265706174726961746564b4746f207468652073656e64657220282a6e6f742a20746865206f726967696e616c206465706f7369746f72292e006101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d7573742068617665206120726567697374657265643c73757065722d6964656e746974792e0045014e4f54453a20546869732073686f756c64206e6f74206e6f726d616c6c7920626520757365642c206275742069732070726f766964656420696e207468652063617365207468617420746865206e6f6e2d1101636f6e74726f6c6c6572206f6620616e206163636f756e74206973206d616c6963696f75736c7920726567697374657265642061732061207375622d6163636f756e742e04704964656e746974792070616c6c6574206465636c61726174696f6e2e39030c3c70616c6c65745f6964656e74697479147479706573304964656e74697479496e666f04284669656c644c696d697400002401286164646974696f6e616c3d030190426f756e6465645665633c28446174612c2044617461292c204669656c644c696d69743e00011c646973706c617945030110446174610001146c6567616c450301104461746100010c776562450301104461746100011072696f744503011044617461000114656d61696c450301104461746100013c7067705f66696e6765727072696e74bd0301404f7074696f6e3c5b75383b2032305d3e000114696d616765450301104461746100011c74776974746572450301104461746100003d0310346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e646564566563080454014103045300000400b90301185665633c543e0000410300000408450345030045030c3c70616c6c65745f6964656e746974791474797065731044617461000198104e6f6e6500000010526177300400490300000100105261773104004d0300000200105261773204005103000003001052617733040055030000040010526177340400380000050010526177350400590300000600105261773604005d03000007001052617737040061030000080010526177380400f5010000090010526177390400650300000a001452617731300400690300000b0014526177313104006d0300000c001452617731320400710300000d001452617731330400750300000e001452617731340400790300000f0014526177313504007d03000010001452617731360400980000110014526177313704008103000012001452617731380400850300001300145261773139040089030000140014526177323004000d010000150014526177323104008d030000160014526177323204009103000017001452617732330400950300001800145261773234040099030000190014526177323504009d0300001a001452617732360400a10300001b001452617732370400a50300001c001452617732380400a90300001d001452617732390400ad0300001e001452617733300400b10300001f001452617733310400b50300002000145261773332040004000021002c426c616b6554776f323536040004000022001853686132353604000400002300244b656363616b323536040004000024002c5368615468726565323536040004000025000049030000030000000008004d030000030100000008005103000003020000000800550300000303000000080059030000030500000008005d030000030600000008006103000003070000000800650300000309000000080069030000030a00000008006d030000030b000000080071030000030c000000080075030000030d000000080079030000030e00000008007d030000030f00000008008103000003110000000800850300000312000000080089030000031300000008008d030000031500000008009103000003160000000800950300000317000000080099030000031800000008009d03000003190000000800a1030000031a0000000800a5030000031b0000000800a9030000031c0000000800ad030000031d0000000800b1030000031e0000000800b5030000031f0000000800b903000002410300bd0304184f7074696f6e040454010d010108104e6f6e6500000010536f6d6504000d010000010000c103000002c50300c5030000040800450300c9030c3c70616c6c65745f6964656e7469747914747970657320426974466c61677304045401cd030004002001344964656e746974794669656c640000cd030c3c70616c6c65745f6964656e74697479147479706573344964656e746974794669656c640001201c446973706c6179000100144c6567616c0002000c5765620004001052696f7400080014456d61696c0010003850677046696e6765727072696e7400200014496d6167650040001c5477697474657200800000d1030c3c70616c6c65745f6964656e74697479147479706573244a756467656d656e74041c42616c616e63650118011c1c556e6b6e6f776e0000001c46656550616964040018011c42616c616e636500010028526561736f6e61626c65000200244b6e6f776e476f6f64000300244f75744f6644617465000400284c6f775175616c697479000500244572726f6e656f757300060000d5030c3070616c6c65745f70726f78791870616c6c65741043616c6c0404540001281470726f78790c01107265616c000130543a3a4163636f756e744964000140666f7263655f70726f78795f74797065d90301504f7074696f6e3c543a3a50726f7879547970653e00011063616c6c09020160426f783c3c5420617320436f6e6669673e3a3a43616c6c3e00003c4d0144697370617463682074686520676976656e206063616c6c602066726f6d20616e206163636f756e742074686174207468652073656e64657220697320617574686f726973656420666f72207468726f75676830606164645f70726f7879602e00a852656d6f76657320616e7920636f72726573706f6e64696e6720616e6e6f756e63656d656e742873292e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a0d012d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e61012d2060666f7263655f70726f78795f74797065603a2053706563696679207468652065786163742070726f7879207479706520746f206265207573656420616e6420636865636b656420666f7220746869732063616c6c2ed02d206063616c6c603a205468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e002823203c7765696768743efc57656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e2c23203c2f7765696768743e246164645f70726f78790c012064656c6567617465000130543a3a4163636f756e74496400012870726f78795f7479706521010130543a3a50726f78795479706500011464656c6179100138543a3a426c6f636b4e756d6265720001344501526567697374657220612070726f7879206163636f756e7420666f72207468652073656e64657220746861742069732061626c6520746f206d616b652063616c6c73206f6e2069747320626568616c662e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a11012d206070726f7879603a20546865206163636f756e74207468617420746865206063616c6c65726020776f756c64206c696b6520746f206d616b6520612070726f78792efc2d206070726f78795f74797065603a20546865207065726d697373696f6e7320616c6c6f77656420666f7220746869732070726f7879206163636f756e742e4d012d206064656c6179603a2054686520616e6e6f756e63656d656e7420706572696f64207265717569726564206f662074686520696e697469616c2070726f78792e2057696c6c2067656e6572616c6c79206265147a65726f2e002823203c7765696768743efc57656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e2c23203c2f7765696768743e3072656d6f76655f70726f78790c012064656c6567617465000130543a3a4163636f756e74496400012870726f78795f7479706521010130543a3a50726f78795479706500011464656c6179100138543a3a426c6f636b4e756d62657200022ca8556e726567697374657220612070726f7879206163636f756e7420666f72207468652073656e6465722e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a25012d206070726f7879603a20546865206163636f756e74207468617420746865206063616c6c65726020776f756c64206c696b6520746f2072656d6f766520617320612070726f78792e41012d206070726f78795f74797065603a20546865207065726d697373696f6e732063757272656e746c7920656e61626c656420666f72207468652072656d6f7665642070726f7879206163636f756e742e002823203c7765696768743efc57656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e2c23203c2f7765696768743e3872656d6f76655f70726f78696573000328b4556e726567697374657220616c6c2070726f7879206163636f756e747320666f72207468652073656e6465722e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0055015741524e494e473a2054686973206d61792062652063616c6c6564206f6e206163636f756e747320637265617465642062792060616e6f6e796d6f7573602c20686f776576657220696620646f6e652c207468656e590174686520756e726573657276656420666565732077696c6c20626520696e61636365737369626c652e202a2a416c6c2061636365737320746f2074686973206163636f756e742077696c6c206265206c6f73742e2a2a002823203c7765696768743efc57656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e2c23203c2f7765696768743e24616e6f6e796d6f75730c012870726f78795f7479706521010130543a3a50726f78795479706500011464656c6179100138543a3a426c6f636b4e756d626572000114696e6465782501010c75313600045c3901537061776e2061206672657368206e6577206163636f756e7420746861742069732067756172616e7465656420746f206265206f746865727769736520696e61636365737369626c652c20616e64fc696e697469616c697a65206974207769746820612070726f7879206f66206070726f78795f747970656020666f7220606f726967696e602073656e6465722e006c5265717569726573206120605369676e656460206f726967696e2e0051012d206070726f78795f74797065603a205468652074797065206f66207468652070726f78792074686174207468652073656e6465722077696c6c2062652072656769737465726564206173206f766572207468654d016e6577206163636f756e742e20546869732077696c6c20616c6d6f737420616c7761797320626520746865206d6f7374207065726d697373697665206050726f7879547970656020706f737369626c6520746f78616c6c6f7720666f72206d6178696d756d20666c65786962696c6974792e51012d2060696e646578603a204120646973616d626967756174696f6e20696e6465782c20696e206361736520746869732069732063616c6c6564206d756c7469706c652074696d657320696e207468652073616d655d017472616e73616374696f6e2028652e672e207769746820607574696c6974793a3a626174636860292e20556e6c65737320796f75277265207573696e67206062617463686020796f752070726f6261626c79206a7573744077616e7420746f20757365206030602e4d012d206064656c6179603a2054686520616e6e6f756e63656d656e7420706572696f64207265717569726564206f662074686520696e697469616c2070726f78792e2057696c6c2067656e6572616c6c79206265147a65726f2e0051014661696c73207769746820604475706c69636174656020696620746869732068617320616c7265616479206265656e2063616c6c656420696e2074686973207472616e73616374696f6e2c2066726f6d207468659873616d652073656e6465722c2077697468207468652073616d6520706172616d65746572732e00e44661696c732069662074686572652061726520696e73756666696369656e742066756e647320746f2070617920666f72206465706f7369742e002823203c7765696768743efc57656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e2c23203c2f7765696768743e8c544f444f3a204d69676874206265206f76657220636f756e74696e6720312072656164386b696c6c5f616e6f6e796d6f757314011c737061776e6572000130543a3a4163636f756e74496400012870726f78795f7479706521010130543a3a50726f787954797065000114696e6465782501010c753136000118686569676874ad010138543a3a426c6f636b4e756d6265720001246578745f696e646578ad01010c753332000550b452656d6f76657320612070726576696f75736c7920737061776e656420616e6f6e796d6f75732070726f78792e0049015741524e494e473a202a2a416c6c2061636365737320746f2074686973206163636f756e742077696c6c206265206c6f73742e2a2a20416e792066756e64732068656c6420696e2069742077696c6c20626534696e61636365737369626c652e0059015265717569726573206120605369676e656460206f726967696e2c20616e64207468652073656e646572206163636f756e74206d7573742068617665206265656e206372656174656420627920612063616c6c20746fa860616e6f6e796d6f757360207769746820636f72726573706f6e64696e6720706172616d65746572732e004d012d2060737061776e6572603a20546865206163636f756e742074686174206f726967696e616c6c792063616c6c65642060616e6f6e796d6f75736020746f206372656174652074686973206163636f756e742e4d012d2060696e646578603a2054686520646973616d626967756174696f6e20696e646578206f726967696e616c6c792070617373656420746f2060616e6f6e796d6f7573602e2050726f6261626c79206030602e01012d206070726f78795f74797065603a205468652070726f78792074797065206f726967696e616c6c792070617373656420746f2060616e6f6e796d6f7573602e3d012d2060686569676874603a2054686520686569676874206f662074686520636861696e207768656e207468652063616c6c20746f2060616e6f6e796d6f757360207761732070726f6365737365642e49012d20606578745f696e646578603a205468652065787472696e73696320696e64657820696e207768696368207468652063616c6c20746f2060616e6f6e796d6f757360207761732070726f6365737365642e0049014661696c73207769746820604e6f5065726d697373696f6e6020696e2063617365207468652063616c6c6572206973206e6f7420612070726576696f75736c79206372656174656420616e6f6e796d6f7573f06163636f756e742077686f73652060616e6f6e796d6f7573602063616c6c2068617320636f72726573706f6e64696e6720706172616d65746572732e002823203c7765696768743efc57656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e2c23203c2f7765696768743e20616e6e6f756e63650801107265616c000130543a3a4163636f756e74496400012463616c6c5f6861736824013443616c6c486173684f663c543e00065405015075626c697368207468652068617368206f6620612070726f78792d63616c6c20746861742077696c6c206265206d61646520696e20746865206675747572652e005d0154686973206d7573742062652063616c6c656420736f6d65206e756d626572206f6620626c6f636b73206265666f72652074686520636f72726573706f6e64696e67206070726f78796020697320617474656d7074656425016966207468652064656c6179206173736f6369617465642077697468207468652070726f78792072656c6174696f6e736869702069732067726561746572207468616e207a65726f2e0011014e6f206d6f7265207468616e20604d617850656e64696e676020616e6e6f756e63656d656e7473206d6179206265206d61646520617420616e79206f6e652074696d652e000901546869732077696c6c2074616b652061206465706f736974206f662060416e6e6f756e63656d656e744465706f736974466163746f72602061732077656c6c206173190160416e6e6f756e63656d656e744465706f736974426173656020696620746865726520617265206e6f206f746865722070656e64696e6720616e6e6f756e63656d656e74732e002501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420612070726f7879206f6620607265616c602e002c506172616d65746572733a0d012d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e15012d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e002823203c7765696768743e6057656967687420697320612066756e6374696f6e206f663a982d20413a20746865206e756d626572206f6620616e6e6f756e63656d656e7473206d6164652ea02d20503a20746865206e756d626572206f662070726f78696573207468652075736572206861732e2c23203c2f7765696768743e4c72656d6f76655f616e6e6f756e63656d656e740801107265616c000130543a3a4163636f756e74496400012463616c6c5f6861736824013443616c6c486173684f663c543e0007407052656d6f7665206120676976656e20616e6e6f756e63656d656e742e0059014d61792062652063616c6c656420627920612070726f7879206163636f756e7420746f2072656d6f766520612063616c6c20746865792070726576696f75736c7920616e6e6f756e63656420616e642072657475726e30746865206465706f7369742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a0d012d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e15012d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e002823203c7765696768743e6057656967687420697320612066756e6374696f6e206f663a982d20413a20746865206e756d626572206f6620616e6e6f756e63656d656e7473206d6164652ea02d20503a20746865206e756d626572206f662070726f78696573207468652075736572206861732e2c23203c2f7765696768743e4c72656a6563745f616e6e6f756e63656d656e7408012064656c6567617465000130543a3a4163636f756e74496400012463616c6c5f6861736824013443616c6c486173684f663c543e000840b052656d6f76652074686520676976656e20616e6e6f756e63656d656e74206f6620612064656c65676174652e0061014d61792062652063616c6c6564206279206120746172676574202870726f7869656429206163636f756e7420746f2072656d6f766520612063616c6c2074686174206f6e65206f662074686569722064656c6567617465732501286064656c656761746560292068617320616e6e6f756e63656420746865792077616e7420746f20657865637574652e20546865206465706f7369742069732072657475726e65642e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733af42d206064656c6567617465603a20546865206163636f756e7420746861742070726576696f75736c7920616e6e6f756e636564207468652063616c6c2ebc2d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f206265206d6164652e002823203c7765696768743e6057656967687420697320612066756e6374696f6e206f663a982d20413a20746865206e756d626572206f6620616e6e6f756e63656d656e7473206d6164652ea02d20503a20746865206e756d626572206f662070726f78696573207468652075736572206861732e2c23203c2f7765696768743e3c70726f78795f616e6e6f756e63656410012064656c6567617465000130543a3a4163636f756e7449640001107265616c000130543a3a4163636f756e744964000140666f7263655f70726f78795f74797065d90301504f7074696f6e3c543a3a50726f7879547970653e00011063616c6c09020160426f783c3c5420617320436f6e6669673e3a3a43616c6c3e0009444d0144697370617463682074686520676976656e206063616c6c602066726f6d20616e206163636f756e742074686174207468652073656e64657220697320617574686f72697a656420666f72207468726f75676830606164645f70726f7879602e00a852656d6f76657320616e7920636f72726573706f6e64696e6720616e6e6f756e63656d656e742873292e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a0d012d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e61012d2060666f7263655f70726f78795f74797065603a2053706563696679207468652065786163742070726f7879207479706520746f206265207573656420616e6420636865636b656420666f7220746869732063616c6c2ed02d206063616c6c603a205468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e002823203c7765696768743e6057656967687420697320612066756e6374696f6e206f663a982d20413a20746865206e756d626572206f6620616e6e6f756e63656d656e7473206d6164652ea02d20503a20746865206e756d626572206f662070726f78696573207468652075736572206861732e2c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ed90304184f7074696f6e0404540121010108104e6f6e6500000010536f6d65040021010000010000dd030c3c70616c6c65745f6d756c74697369671870616c6c65741043616c6c0404540001105061735f6d756c74695f7468726573686f6c645f310801446f746865725f7369676e61746f72696573dc01445665633c543a3a4163636f756e7449643e00011063616c6c09020160426f783c3c5420617320436f6e6669673e3a3a43616c6c3e0000405101496d6d6564696174656c792064697370617463682061206d756c74692d7369676e61747572652063616c6c207573696e6720612073696e676c6520617070726f76616c2066726f6d207468652063616c6c65722e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003d012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f206172652070617274206f662074686501016d756c74692d7369676e61747572652c2062757420646f206e6f7420706172746963697061746520696e2074686520617070726f76616c2070726f636573732e882d206063616c6c603a205468652063616c6c20746f2062652065786563757465642e00b8526573756c74206973206571756976616c656e7420746f20746865206469737061746368656420726573756c742e002823203c7765696768743e19014f285a202b204329207768657265205a20697320746865206c656e677468206f66207468652063616c6c20616e6420432069747320657865637574696f6e207765696768742e7c2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d442d204442205765696768743a204e6f6e65482d20506c75732043616c6c205765696768742c23203c2f7765696768743e2061735f6d756c74691801247468726573686f6c642501010c7531360001446f746865725f7369676e61746f72696573dc01445665633c543a3a4163636f756e7449643e00013c6d617962655f74696d65706f696e74e10301844f7074696f6e3c54696d65706f696e743c543a3a426c6f636b4e756d6265723e3e00011063616c6c2801284f706171756543616c6c00012873746f72655f63616c6ce80110626f6f6c0001286d61785f7765696768742001185765696768740001b45501526567697374657220617070726f76616c20666f72206120646973706174636820746f206265206d6164652066726f6d20612064657465726d696e697374696320636f6d706f73697465206163636f756e74206966f8617070726f766564206279206120746f74616c206f6620607468726573686f6c64202d203160206f6620606f746865725f7369676e61746f72696573602e00b049662074686572652061726520656e6f7567682c207468656e206469737061746368207468652063616c6c2e002d015061796d656e743a20604465706f73697442617365602077696c6c20626520726573657276656420696620746869732069732074686520666972737420617070726f76616c2c20706c75733d01607468726573686f6c64602074696d657320604465706f736974466163746f72602e2049742069732072657475726e6564206f6e636520746869732064697370617463682068617070656e73206f723469732063616e63656c6c65642e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0055012d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e41012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f766520746869736c64697370617463682e204d6179206e6f7420626520656d7074792e59012d20606d617962655f74696d65706f696e74603a20496620746869732069732074686520666972737420617070726f76616c2c207468656e2074686973206d75737420626520604e6f6e65602e20496620697420697351016e6f742074686520666972737420617070726f76616c2c207468656e206974206d7573742062652060536f6d65602c2077697468207468652074696d65706f696e742028626c6f636b206e756d62657220616e64d47472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c207472616e73616374696f6e2e882d206063616c6c603a205468652063616c6c20746f2062652065786563757465642e001d014e4f54453a20556e6c6573732074686973206973207468652066696e616c20617070726f76616c2c20796f752077696c6c2067656e6572616c6c792077616e7420746f20757365190160617070726f76655f61735f6d756c74696020696e73746561642c2073696e6365206974206f6e6c7920726571756972657320612068617368206f66207468652063616c6c2e005901526573756c74206973206571756976616c656e7420746f20746865206469737061746368656420726573756c7420696620607468726573686f6c64602069732065786163746c79206031602e204f746865727769736555016f6e20737563636573732c20726573756c7420697320604f6b6020616e642074686520726573756c742066726f6d2074686520696e746572696f722063616c6c2c206966206974207761732065786563757465642cdc6d617920626520666f756e6420696e20746865206465706f736974656420604d756c7469736967457865637574656460206576656e742e002823203c7765696768743e502d20604f2853202b205a202b2043616c6c29602ecc2d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e3d012d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f66450120207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2e21012d204f6e652063616c6c20656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285a296020776865726520605a602069732074782d6c656e2ebc2d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602ed42d20557020746f206f6e652062696e6172792073656172636820616e6420696e736572742028604f286c6f6753202b20532960292ef82d20492f4f3a2031207265616420604f285329602c20757020746f2031206d757461746520604f285329602e20557020746f206f6e652072656d6f76652e302d204f6e65206576656e742e6c2d2054686520776569676874206f6620746865206063616c6c602e4d012d2053746f726167653a20696e7365727473206f6e65206974656d2c2076616c75652073697a6520626f756e64656420627920604d61785369676e61746f72696573602c20776974682061206465706f7369741901202074616b656e20666f7220697473206c69666574696d65206f6620604465706f73697442617365202b207468726573686f6c64202a204465706f736974466163746f72602e7c2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d302d204442205765696768743a2101202020202d2052656164733a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d2c2043616c6c7320286966206073746f72655f63616c6c60292501202020202d205772697465733a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d2c2043616c6c7320286966206073746f72655f63616c6c6029482d20506c75732043616c6c205765696768742c23203c2f7765696768743e40617070726f76655f61735f6d756c74691401247468726573686f6c642501010c7531360001446f746865725f7369676e61746f72696573dc01445665633c543a3a4163636f756e7449643e00013c6d617962655f74696d65706f696e74e10301844f7074696f6e3c54696d65706f696e743c543a3a426c6f636b4e756d6265723e3e00012463616c6c5f686173680401205b75383b2033325d0001286d61785f77656967687420011857656967687400028c5501526567697374657220617070726f76616c20666f72206120646973706174636820746f206265206d6164652066726f6d20612064657465726d696e697374696320636f6d706f73697465206163636f756e74206966f8617070726f766564206279206120746f74616c206f6620607468726573686f6c64202d203160206f6620606f746865725f7369676e61746f72696573602e002d015061796d656e743a20604465706f73697442617365602077696c6c20626520726573657276656420696620746869732069732074686520666972737420617070726f76616c2c20706c75733d01607468726573686f6c64602074696d657320604465706f736974466163746f72602e2049742069732072657475726e6564206f6e636520746869732064697370617463682068617070656e73206f723469732063616e63656c6c65642e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0055012d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e41012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f766520746869736c64697370617463682e204d6179206e6f7420626520656d7074792e59012d20606d617962655f74696d65706f696e74603a20496620746869732069732074686520666972737420617070726f76616c2c207468656e2074686973206d75737420626520604e6f6e65602e20496620697420697351016e6f742074686520666972737420617070726f76616c2c207468656e206974206d7573742062652060536f6d65602c2077697468207468652074696d65706f696e742028626c6f636b206e756d62657220616e64d47472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c207472616e73616374696f6e2ecc2d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f2062652065786563757465642e0035014e4f54453a2049662074686973206973207468652066696e616c20617070726f76616c2c20796f752077696c6c2077616e7420746f20757365206061735f6d756c74696020696e73746561642e002823203c7765696768743e242d20604f285329602ecc2d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e3d012d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f66450120207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2ebc2d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602ed42d20557020746f206f6e652062696e6172792073656172636820616e6420696e736572742028604f286c6f6753202b20532960292ef82d20492f4f3a2031207265616420604f285329602c20757020746f2031206d757461746520604f285329602e20557020746f206f6e652072656d6f76652e302d204f6e65206576656e742e4d012d2053746f726167653a20696e7365727473206f6e65206974656d2c2076616c75652073697a6520626f756e64656420627920604d61785369676e61746f72696573602c20776974682061206465706f7369741901202074616b656e20666f7220697473206c69666574696d65206f6620604465706f73697442617365202b207468726573686f6c64202a204465706f736974466163746f72602e882d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d302d204442205765696768743ab8202020202d20526561643a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745dbc202020202d2057726974653a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d2c23203c2f7765696768743e3c63616e63656c5f61735f6d756c74691001247468726573686f6c642501010c7531360001446f746865725f7369676e61746f72696573dc01445665633c543a3a4163636f756e7449643e00012474696d65706f696e742d01016454696d65706f696e743c543a3a426c6f636b4e756d6265723e00012463616c6c5f686173680401205b75383b2033325d000368550143616e63656c2061207072652d6578697374696e672c206f6e2d676f696e67206d756c7469736967207472616e73616374696f6e2e20416e79206465706f7369742072657365727665642070726576696f75736c79c4666f722074686973206f7065726174696f6e2077696c6c20626520756e7265736572766564206f6e20737563636573732e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0055012d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e41012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f766520746869736c64697370617463682e204d6179206e6f7420626520656d7074792e5d012d206074696d65706f696e74603a205468652074696d65706f696e742028626c6f636b206e756d62657220616e64207472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c787472616e73616374696f6e20666f7220746869732064697370617463682ecc2d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f2062652065786563757465642e002823203c7765696768743e242d20604f285329602ecc2d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e3d012d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f66450120207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2ebc2d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602e302d204f6e65206576656e742e842d20492f4f3a2031207265616420604f285329602c206f6e652072656d6f76652e702d2053746f726167653a2072656d6f766573206f6e65206974656d2e882d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d302d204442205765696768743a1501202020202d20526561643a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d2c20526566756e64204163636f756e742c2043616c6c731901202020202d2057726974653a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d2c20526566756e64204163636f756e742c2043616c6c732c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ee10304184f7074696f6e040454012d010108104e6f6e6500000010536f6d6504002d010000010000e5030c3c70616c6c65745f626f756e746965731870616c6c65741043616c6c0404540001243870726f706f73655f626f756e747908011476616c7565cc013042616c616e63654f663c543e00012c6465736372697074696f6e28011c5665633c75383e0000305450726f706f73652061206e657720626f756e74792e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0051015061796d656e743a20605469705265706f72744465706f73697442617365602077696c6c2062652072657365727665642066726f6d20746865206f726967696e206163636f756e742c2061732077656c6c206173510160446174614465706f736974506572427974656020666f722065616368206279746520696e2060726561736f6e602e2049742077696c6c20626520756e72657365727665642075706f6e20617070726f76616c2c646f7220736c6173686564207768656e2072656a65637465642e00f82d206063757261746f72603a205468652063757261746f72206163636f756e742077686f6d2077696c6c206d616e616765207468697320626f756e74792e642d2060666565603a205468652063757261746f72206665652e25012d206076616c7565603a2054686520746f74616c207061796d656e7420616d6f756e74206f66207468697320626f756e74792c2063757261746f722066656520696e636c756465642ec02d20606465736372697074696f6e603a20546865206465736372697074696f6e206f66207468697320626f756e74792e38617070726f76655f626f756e7479040124626f756e74795f6964ad01012c426f756e7479496e6465780001205d01417070726f7665206120626f756e74792070726f706f73616c2e2041742061206c617465722074696d652c2074686520626f756e74792077696c6c2062652066756e64656420616e64206265636f6d6520616374697665a8616e6420746865206f726967696e616c206465706f7369742077696c6c2062652072657475726e65642e00ac4d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a417070726f76654f726967696e602e002823203c7765696768743e1c2d204f2831292e2c23203c2f7765696768743e3c70726f706f73655f63757261746f720c0124626f756e74795f6964ad01012c426f756e7479496e64657800011c63757261746f724d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500010c666565cc013042616c616e63654f663c543e00021c9041737369676e20612063757261746f7220746f20612066756e64656420626f756e74792e00ac4d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a417070726f76654f726967696e602e002823203c7765696768743e1c2d204f2831292e2c23203c2f7765696768743e40756e61737369676e5f63757261746f72040124626f756e74795f6964ad01012c426f756e7479496e6465780003487c556e61737369676e2063757261746f722066726f6d206120626f756e74792e001d01546869732066756e6374696f6e2063616e206f6e6c792062652063616c6c656420627920746865206052656a6563744f726967696e602061207369676e6564206f726967696e2e003d01496620746869732066756e6374696f6e2069732063616c6c656420627920746865206052656a6563744f726967696e602c20776520617373756d652074686174207468652063757261746f7220697331016d616c6963696f7573206f7220696e6163746976652e204173206120726573756c742c2077652077696c6c20736c617368207468652063757261746f72207768656e20706f737369626c652e006101496620746865206f726967696e206973207468652063757261746f722c2077652074616b6520746869732061732061207369676e20746865792061726520756e61626c6520746f20646f207468656972206a6f6220616e645d01746865792077696c6c696e676c7920676976652075702e20576520636f756c6420736c617368207468656d2c2062757420666f72206e6f7720776520616c6c6f77207468656d20746f207265636f76657220746865697235016465706f73697420616e64206578697420776974686f75742069737375652e20285765206d61792077616e7420746f206368616e67652074686973206966206974206973206162757365642e29005d0146696e616c6c792c20746865206f726967696e2063616e20626520616e796f6e6520696620616e64206f6e6c79206966207468652063757261746f722069732022696e616374697665222e205468697320616c6c6f77736101616e796f6e6520696e2074686520636f6d6d756e69747920746f2063616c6c206f7574207468617420612063757261746f72206973206e6f7420646f696e67207468656972206475652064696c6967656e63652c20616e64390177652073686f756c64207069636b2061206e65772063757261746f722e20496e20746869732063617365207468652063757261746f722073686f756c6420616c736f20626520736c61736865642e002823203c7765696768743e1c2d204f2831292e2c23203c2f7765696768743e386163636570745f63757261746f72040124626f756e74795f6964ad01012c426f756e7479496e64657800042094416363657074207468652063757261746f7220726f6c6520666f72206120626f756e74792e290141206465706f7369742077696c6c2062652072657365727665642066726f6d2063757261746f7220616e6420726566756e642075706f6e207375636365737366756c207061796f75742e00904d6179206f6e6c792062652063616c6c65642066726f6d207468652063757261746f722e002823203c7765696768743e1c2d204f2831292e2c23203c2f7765696768743e3061776172645f626f756e7479080124626f756e74795f6964ad01012c426f756e7479496e64657800012c62656e65666963696172794d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500052c5901417761726420626f756e747920746f20612062656e6566696369617279206163636f756e742e205468652062656e65666963696172792077696c6c2062652061626c6520746f20636c61696d207468652066756e647338616674657220612064656c61792e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265207468652063757261746f72206f66207468697320626f756e74792e00882d2060626f756e74795f6964603a20426f756e747920494420746f2061776172642e19012d206062656e6566696369617279603a205468652062656e6566696369617279206163636f756e742077686f6d2077696c6c207265636569766520746865207061796f75742e002823203c7765696768743e1c2d204f2831292e2c23203c2f7765696768743e30636c61696d5f626f756e7479040124626f756e74795f6964ad01012c426f756e7479496e646578000624ec436c61696d20746865207061796f75742066726f6d20616e206177617264656420626f756e7479206166746572207061796f75742064656c61792e002501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265207468652062656e6566696369617279206f66207468697320626f756e74792e00882d2060626f756e74795f6964603a20426f756e747920494420746f20636c61696d2e002823203c7765696768743e1c2d204f2831292e2c23203c2f7765696768743e30636c6f73655f626f756e7479040124626f756e74795f6964ad01012c426f756e7479496e646578000728390143616e63656c20612070726f706f736564206f722061637469766520626f756e74792e20416c6c207468652066756e64732077696c6c2062652073656e7420746f20747265617375727920616e64cc7468652063757261746f72206465706f7369742077696c6c20626520756e726573657276656420696620706f737369626c652e00c84f6e6c792060543a3a52656a6563744f726967696e602069732061626c6520746f2063616e63656c206120626f756e74792e008c2d2060626f756e74795f6964603a20426f756e747920494420746f2063616e63656c2e002823203c7765696768743e1c2d204f2831292e2c23203c2f7765696768743e50657874656e645f626f756e74795f657870697279080124626f756e74795f6964ad01012c426f756e7479496e64657800011872656d61726b28011c5665633c75383e000828ac457874656e6420746865206578706972792074696d65206f6620616e2061637469766520626f756e74792e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265207468652063757261746f72206f66207468697320626f756e74792e008c2d2060626f756e74795f6964603a20426f756e747920494420746f20657874656e642e8c2d206072656d61726b603a206164646974696f6e616c20696e666f726d6174696f6e2e002823203c7765696768743e1c2d204f2831292e2c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ee9030c2c70616c6c65745f746970731870616c6c65741043616c6c040454000118387265706f72745f617765736f6d65080118726561736f6e28011c5665633c75383e00010c77686f000130543a3a4163636f756e74496400004c59015265706f727420736f6d657468696e672060726561736f6e60207468617420646573657276657320612074697020616e6420636c61696d20616e79206576656e7475616c207468652066696e6465722773206665652e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0051015061796d656e743a20605469705265706f72744465706f73697442617365602077696c6c2062652072657365727665642066726f6d20746865206f726967696e206163636f756e742c2061732077656c6c206173bc60446174614465706f736974506572427974656020666f722065616368206279746520696e2060726561736f6e602e005d012d2060726561736f6e603a2054686520726561736f6e20666f722c206f7220746865207468696e6720746861742064657365727665732c20746865207469703b2067656e6572616c6c7920746869732077696c6c20626558202061205554462d382d656e636f6465642055524c2ee82d206077686f603a20546865206163636f756e742077686963682073686f756c6420626520637265646974656420666f7220746865207469702e0074456d69747320604e657754697060206966207375636365737366756c2e002823203c7765696768743ec82d20436f6d706c65786974793a20604f2852296020776865726520605260206c656e677468206f662060726561736f6e602e9020202d20656e636f64696e6720616e642068617368696e67206f662027726561736f6e27702d20446252656164733a2060526561736f6e73602c20605469707360742d2044625772697465733a2060526561736f6e73602c206054697073602c23203c2f7765696768743e2c726574726163745f7469700401106861736824011c543a3a4861736800014c5101526574726163742061207072696f72207469702d7265706f72742066726f6d20607265706f72745f617765736f6d65602c20616e642063616e63656c207468652070726f63657373206f662074697070696e672e00dc4966207375636365737366756c2c20746865206f726967696e616c206465706f7369742077696c6c20626520756e72657365727665642e004d01546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642074686520746970206964656e7469666965642062792060686173686041016d7573742068617665206265656e207265706f7274656420627920746865207369676e696e67206163636f756e74207468726f75676820607265706f72745f617765736f6d65602028616e64206e6f744c7468726f75676820607469705f6e657760292e0061012d206068617368603a20546865206964656e74697479206f6620746865206f70656e2074697020666f722077686963682061207469702076616c7565206973206465636c617265642e205468697320697320666f726d65645d0120206173207468652068617368206f6620746865207475706c65206f6620746865206f726967696e616c207469702060726561736f6e6020616e64207468652062656e6566696369617279206163636f756e742049442e008c456d697473206054697052657472616374656460206966207375636365737366756c2e002823203c7765696768743e502d20436f6d706c65786974793a20604f28312960d820202d20446570656e6473206f6e20746865206c656e677468206f662060543a3a48617368602077686963682069732066697865642e8c2d20446252656164733a206054697073602c20606f726967696e206163636f756e7460bc2d2044625772697465733a2060526561736f6e73602c206054697073602c20606f726967696e206163636f756e74602c23203c2f7765696768743e1c7469705f6e65770c0118726561736f6e28011c5665633c75383e00010c77686f000130543a3a4163636f756e7449640001247469705f76616c7565cc013042616c616e63654f663c543e000258f04769766520612074697020666f7220736f6d657468696e67206e65773b206e6f2066696e6465722773206665652077696c6c2062652074616b656e2e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d7573742062652061706d656d626572206f662074686520605469707065727360207365742e005d012d2060726561736f6e603a2054686520726561736f6e20666f722c206f7220746865207468696e6720746861742064657365727665732c20746865207469703b2067656e6572616c6c7920746869732077696c6c20626558202061205554462d382d656e636f6465642055524c2ee82d206077686f603a20546865206163636f756e742077686963682073686f756c6420626520637265646974656420666f7220746865207469702e4d012d20607469705f76616c7565603a2054686520616d6f756e74206f66207469702074686174207468652073656e64657220776f756c64206c696b6520746f20676976652e20546865206d656469616e20746970d4202076616c7565206f662061637469766520746970706572732077696c6c20626520676976656e20746f20746865206077686f602e0074456d69747320604e657754697060206966207375636365737366756c2e002823203c7765696768743e51012d20436f6d706c65786974793a20604f2852202b2054296020776865726520605260206c656e677468206f662060726561736f6e602c2060546020697320746865206e756d626572206f6620746970706572732e5d0120202d20604f285429603a206465636f64696e6720605469707065726020766563206f66206c656e677468206054602e20605460206973206368617267656420617320757070657220626f756e6420676976656e2062792d012020202060436f6e7461696e734c656e677468426f756e64602e205468652061637475616c20636f737420646570656e6473206f6e2074686520696d706c656d656e746174696f6e206f66442020202060543a3a54697070657273602ee020202d20604f285229603a2068617368696e6720616e6420656e636f64696e67206f6620726561736f6e206f66206c656e677468206052607c2d20446252656164733a206054697070657273602c2060526561736f6e7360742d2044625772697465733a2060526561736f6e73602c206054697073602c23203c2f7765696768743e0c7469700801106861736824011c543a3a486173680001247469705f76616c7565cc013042616c616e63654f663c543e000360b04465636c6172652061207469702076616c756520666f7220616e20616c72656164792d6f70656e207469702e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d7573742062652061706d656d626572206f662074686520605469707065727360207365742e0061012d206068617368603a20546865206964656e74697479206f6620746865206f70656e2074697020666f722077686963682061207469702076616c7565206973206465636c617265642e205468697320697320666f726d65645d0120206173207468652068617368206f6620746865207475706c65206f66207468652068617368206f6620746865206f726967696e616c207469702060726561736f6e6020616e64207468652062656e65666963696172793420206163636f756e742049442e4d012d20607469705f76616c7565603a2054686520616d6f756e74206f66207469702074686174207468652073656e64657220776f756c64206c696b6520746f20676976652e20546865206d656469616e20746970d4202076616c7565206f662061637469766520746970706572732077696c6c20626520676976656e20746f20746865206077686f602e006101456d6974732060546970436c6f73696e676020696620746865207468726573686f6c64206f66207469707065727320686173206265656e207265616368656420616e642074686520636f756e74646f776e20706572696f643068617320737461727465642e002823203c7765696768743e61012d20436f6d706c65786974793a20604f285429602077686572652060546020697320746865206e756d626572206f6620746970706572732e206465636f64696e6720605469707065726020766563206f66206c656e6774682d0120206054602c20696e736572742074697020616e6420636865636b20636c6f73696e672c20605460206973206368617267656420617320757070657220626f756e6420676976656e2062795d01202060436f6e7461696e734c656e677468426f756e64602e205468652061637475616c20636f737420646570656e6473206f6e2074686520696d706c656d656e746174696f6e206f662060543a3a54697070657273602e005d01202041637475616c6c792077656967687420636f756c64206265206c6f77657220617320697420646570656e6473206f6e20686f77206d616e7920746970732061726520696e20604f70656e5469706020627574206974d02020697320776569676874656420617320696620616c6d6f73742066756c6c20692e65206f66206c656e6774682060542d31602e702d20446252656164733a206054697070657273602c20605469707360482d2044625772697465733a206054697073602c23203c2f7765696768743e24636c6f73655f7469700401106861736824011c543a3a486173680004405c436c6f736520616e64207061796f75742061207469702e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e00150154686520746970206964656e74696669656420627920606861736860206d75737420686176652066696e69736865642069747320636f756e74646f776e20706572696f642e0061012d206068617368603a20546865206964656e74697479206f6620746865206f70656e2074697020666f722077686963682061207469702076616c7565206973206465636c617265642e205468697320697320666f726d65645d0120206173207468652068617368206f6620746865207475706c65206f6620746865206f726967696e616c207469702060726561736f6e6020616e64207468652062656e6566696369617279206163636f756e742049442e002823203c7765696768743e61012d20436f6d706c65786974793a20604f285429602077686572652060546020697320746865206e756d626572206f6620746970706572732e206465636f64696e6720605469707065726020766563206f66206c656e677468510120206054602e20605460206973206368617267656420617320757070657220626f756e6420676976656e2062792060436f6e7461696e734c656e677468426f756e64602e205468652061637475616c20636f7374c02020646570656e6473206f6e2074686520696d706c656d656e746174696f6e206f662060543a3a54697070657273602ea82d20446252656164733a206054697073602c206054697070657273602c20607469702066696e64657260d82d2044625772697465733a2060526561736f6e73602c206054697073602c206054697070657273602c20607469702066696e646572602c23203c2f7765696768743e24736c6173685f7469700401106861736824011c543a3a486173680005309452656d6f766520616e6420736c61736820616e20616c72656164792d6f70656e207469702e00a84d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a52656a6563744f726967696e602e00f44173206120726573756c742c207468652066696e64657220697320736c617368656420616e6420746865206465706f7369747320617265206c6f73742e0084456d6974732060546970536c617368656460206966207375636365737366756c2e002823203c7765696768743efc2020605460206973206368617267656420617320757070657220626f756e6420676976656e2062792060436f6e7461696e734c656e677468426f756e64602e010120205468652061637475616c20636f737420646570656e6473206f6e2074686520696d706c656d656e746174696f6e206f662060543a3a54697070657273602e2c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632eed030c9070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173651870616c6c65741043616c6c0404540001103c7375626d69745f756e7369676e65640801307261775f736f6c7574696f6ef103017c426f783c526177536f6c7574696f6e3c536f6c7574696f6e4f663c543e3e3e00011c7769746e657373c5040158536f6c7574696f6e4f72536e617073686f7453697a65000038a45375626d6974206120736f6c7574696f6e20666f722074686520756e7369676e65642070686173652e00c8546865206469737061746368206f726967696e20666f20746869732063616c6c206d757374206265205f5f6e6f6e655f5f2e003d0154686973207375626d697373696f6e20697320636865636b6564206f6e2074686520666c792e204d6f72656f7665722c207468697320756e7369676e656420736f6c7574696f6e206973206f6e6c79550176616c696461746564207768656e207375626d697474656420746f2074686520706f6f6c2066726f6d20746865202a2a6c6f63616c2a2a206e6f64652e204566666563746976656c792c2074686973206d65616e735d0174686174206f6e6c79206163746976652076616c696461746f72732063616e207375626d69742074686973207472616e73616374696f6e207768656e20617574686f72696e67206120626c6f636b202873696d696c617240746f20616e20696e686572656e74292e005901546f2070726576656e7420616e7920696e636f727265637420736f6c7574696f6e2028616e642074687573207761737465642074696d652f776569676874292c2074686973207472616e73616374696f6e2077696c6c4d0170616e69632069662074686520736f6c7574696f6e207375626d6974746564206279207468652076616c696461746f7220697320696e76616c696420696e20616e79207761792c206566666563746976656c799c70757474696e6720746865697220617574686f72696e6720726577617264206174207269736b2e00e04e6f206465706f736974206f7220726577617264206973206173736f63696174656420776974682074686973207375626d697373696f6e2e6c7365745f6d696e696d756d5f756e747275737465645f73636f72650401406d617962655f6e6578745f73636f7265c90401544f7074696f6e3c456c656374696f6e53636f72653e000114b05365742061206e65772076616c756520666f7220604d696e696d756d556e7472757374656453636f7265602e00d84469737061746368206f726967696e206d75737420626520616c69676e656420776974682060543a3a466f7263654f726967696e602e00f05468697320636865636b2063616e206265207475726e6564206f66662062792073657474696e67207468652076616c756520746f20604e6f6e65602e747365745f656d657267656e63795f656c656374696f6e5f726573756c74040120737570706f727473cd040158537570706f7274733c543a3a4163636f756e7449643e0002205901536574206120736f6c7574696f6e20696e207468652071756575652c20746f2062652068616e646564206f757420746f2074686520636c69656e74206f6620746869732070616c6c657420696e20746865206e6578748863616c6c20746f2060456c656374696f6e50726f76696465723a3a656c656374602e004501546869732063616e206f6e6c79206265207365742062792060543a3a466f7263654f726967696e602c20616e64206f6e6c79207768656e207468652070686173652069732060456d657267656e6379602e00610154686520736f6c7574696f6e206973206e6f7420636865636b656420666f7220616e7920666561736962696c69747920616e6420697320617373756d656420746f206265207472757374776f727468792c20617320616e795101666561736962696c69747920636865636b20697473656c662063616e20696e207072696e6369706c652063617573652074686520656c656374696f6e2070726f6365737320746f206661696c202864756520746f686d656d6f72792f77656967687420636f6e73747261696e73292e187375626d69740801307261775f736f6c7574696f6ef103017c426f783c526177536f6c7574696f6e3c536f6c7574696f6e4f663c543e3e3e0001586e756d5f7369676e65645f7375626d697373696f6e7310010c7533320003349c5375626d6974206120736f6c7574696f6e20666f7220746865207369676e65642070686173652e00d0546865206469737061746368206f726967696e20666f20746869732063616c6c206d757374206265205f5f7369676e65645f5f2e005d0154686520736f6c7574696f6e20697320706f74656e7469616c6c79207175657565642c206261736564206f6e2074686520636c61696d65642073636f726520616e642070726f6365737365642061742074686520656e64506f6620746865207369676e65642070686173652e005d0141206465706f73697420697320726573657276656420616e64207265636f7264656420666f722074686520736f6c7574696f6e2e204261736564206f6e20746865206f7574636f6d652c2074686520736f6c7574696f6e15016d696768742062652072657761726465642c20736c61736865642c206f722067657420616c6c206f7220612070617274206f6620746865206465706f736974206261636b2e002823203c7765696768743eb051756575652073697a65206d7573742062652070726f7669646564206173207769746e65737320646174612e2c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ef103089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173652c526177536f6c7574696f6e04045301f503000c0120736f6c7574696f6ef50301045300011473636f7265c1040134456c656374696f6e53636f7265000114726f756e6410010c7533320000f5030840706f6c6b61646f745f72756e74696d65544e706f73436f6d70616374536f6c7574696f6e31360000400118766f74657331f90300000118766f74657332050400000118766f74657333190400000118766f74657334250400000118766f74657335310400000118766f746573363d0400000118766f74657337490400000118766f74657338550400000118766f7465733961040000011c766f74657331306d040000011c766f746573313179040000011c766f746573313285040000011c766f746573313391040000011c766f74657331349d040000011c766f7465733135a9040000011c766f7465733136b504000000f903000002fd0300fd0300000408ad010104000104000006250100050400000209040009040000040cad010d040104000d04000004080104110400110400000615040015040c3473705f61726974686d65746963287065725f7468696e677318506572553136000004002501010c753136000019040000021d04001d040000040cad0121040104002104000003020000000d0400250400000229040029040000040cad012d040104002d04000003030000000d0400310400000235040035040000040cad0139040104003904000003040000000d04003d0400000241040041040000040cad0145040104004504000003050000000d040049040000024d04004d040000040cad0151040104005104000003060000000d0400550400000259040059040000040cad015d040104005d04000003070000000d0400610400000265040065040000040cad0169040104006904000003080000000d04006d0400000271040071040000040cad0175040104007504000003090000000d040079040000027d04007d040000040cad01810401040081040000030a0000000d0400850400000289040089040000040cad018d040104008d040000030b0000000d0400910400000295040095040000040cad01990401040099040000030c0000000d04009d04000002a10400a1040000040cad01a504010400a5040000030d0000000d0400a904000002ad0400ad040000040cad01b104010400b1040000030e0000000d0400b504000002b90400b9040000040cad01bd04010400bd040000030f0000000d0400c104000003030000001800c504089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f706861736558536f6c7574696f6e4f72536e617073686f7453697a650000080118766f74657273ad01010c75333200011c74617267657473ad01010c7533320000c90404184f7074696f6e04045401c1040108104e6f6e6500000010536f6d650400c1040000010000cd04000002d10400d1040000040800d50400d504084473705f6e706f735f656c656374696f6e731c537570706f727404244163636f756e744964010000080114746f74616c18013c457874656e64656442616c616e6365000118766f74657273f401845665633c284163636f756e7449642c20457874656e64656442616c616e6365293e0000d904106c706f6c6b61646f745f72756e74696d655f70617261636861696e7334636f6e66696775726174696f6e1870616c6c65741043616c6c0404540001a4807365745f76616c69646174696f6e5f757067726164655f6672657175656e637904010c6e6577100138543a3a426c6f636b4e756d62657200000494536574207468652076616c69646174696f6e2075706772616465206672657175656e63792e707365745f76616c69646174696f6e5f757067726164655f64656c617904010c6e6577100138543a3a426c6f636b4e756d62657200010484536574207468652076616c69646174696f6e20757067726164652064656c61792e647365745f636f64655f726574656e74696f6e5f706572696f6404010c6e6577100138543a3a426c6f636b4e756d626572000204d05365742074686520616363657074616e636520706572696f6420666f7220616e20696e636c756465642063616e6469646174652e447365745f6d61785f636f64655f73697a6504010c6e657710010c753332000304dc53657420746865206d61782076616c69646174696f6e20636f64652073697a6520666f7220696e636f6d696e672075706772616465732e407365745f6d61785f706f765f73697a6504010c6e657710010c753332000404c453657420746865206d617820504f5620626c6f636b2073697a6520666f7220696e636f6d696e672075706772616465732e587365745f6d61785f686561645f646174615f73697a6504010c6e657710010c7533320005049453657420746865206d6178206865616420646174612073697a6520666f722070617261732e507365745f706172617468726561645f636f72657304010c6e657710010c753332000604b453657420746865206e756d626572206f66207061726174687265616420657865637574696f6e20636f7265732e587365745f706172617468726561645f7265747269657304010c6e657710010c753332000704d853657420746865206e756d626572206f66207265747269657320666f72206120706172746963756c617220706172617468726561642e707365745f67726f75705f726f746174696f6e5f6672657175656e637904010c6e6577100138543a3a426c6f636b4e756d626572000804d0536574207468652070617261636861696e2076616c696461746f722d67726f757020726f746174696f6e206672657175656e6379747365745f636861696e5f617661696c6162696c6974795f706572696f6404010c6e6577100138543a3a426c6f636b4e756d626572000904ac5365742074686520617661696c6162696c69747920706572696f6420666f722070617261636861696e732e787365745f7468726561645f617661696c6162696c6974795f706572696f6404010c6e6577100138543a3a426c6f636b4e756d626572000a04b05365742074686520617661696c6162696c69747920706572696f6420666f722070617261746872656164732e607365745f7363686564756c696e675f6c6f6f6b616865616404010c6e657710010c753332000b04390153657420746865207363686564756c696e67206c6f6f6b61686561642c20696e206578706563746564206e756d626572206f6620626c6f636b73206174207065616b207468726f7567687075742e6c7365745f6d61785f76616c696461746f72735f7065725f636f726504010c6e65777902012c4f7074696f6e3c7533323e000c04ec53657420746865206d6178696d756d206e756d626572206f662076616c696461746f727320746f2061737369676e20746f20616e7920636f72652e487365745f6d61785f76616c696461746f727304010c6e65777902012c4f7074696f6e3c7533323e000d040d0153657420746865206d6178696d756d206e756d626572206f662076616c696461746f727320746f2075736520696e2070617261636861696e20636f6e73656e7375732e487365745f646973707574655f706572696f6404010c6e657710013053657373696f6e496e646578000e040d0153657420746865206469737075746520706572696f642c20696e206e756d626572206f662073657373696f6e7320746f206b65657020666f722064697370757465732eb47365745f646973707574655f706f73745f636f6e636c7573696f6e5f616363657074616e63655f706572696f6404010c6e6577100138543a3a426c6f636b4e756d626572000f04c853657420746865206469737075746520706f737420636f6e636c7573696f6e20616363657074616e636520706572696f642e687365745f646973707574655f6d61785f7370616d5f736c6f747304010c6e657710010c753332001004b453657420746865206d6178696d756d206e756d626572206f662064697370757465207370616d20736c6f74732ea47365745f646973707574655f636f6e636c7573696f6e5f62795f74696d655f6f75745f706572696f6404010c6e6577100138543a3a426c6f636b4e756d626572001104b853657420746865206469737075746520636f6e636c7573696f6e2062792074696d65206f757420706572696f642e447365745f6e6f5f73686f775f736c6f747304010c6e657710010c753332001208f853657420746865206e6f2073686f7720736c6f74732c20696e206e756d626572206f66206e756d626572206f6620636f6e73656e73757320736c6f74732e4c4d757374206265206174206c6561737420312e507365745f6e5f64656c61795f7472616e6368657304010c6e657710010c7533320013049c5365742074686520746f74616c206e756d626572206f662064656c6179207472616e636865732e787365745f7a65726f74685f64656c61795f7472616e6368655f776964746804010c6e657710010c7533320014048c53657420746865207a65726f74682064656c6179207472616e6368652077696474682e507365745f6e65656465645f617070726f76616c7304010c6e657710010c753332001504dc53657420746865206e756d626572206f662076616c696461746f7273206e656564656420746f20617070726f7665206120626c6f636b2e707365745f72656c61795f7672665f6d6f64756c6f5f73616d706c657304010c6e657710010c753332001604590153657420746865206e756d626572206f662073616d706c657320746f20646f206f6620746865206052656c61795652464d6f64756c6f6020617070726f76616c2061737369676e6d656e7420637269746572696f6e2e687365745f6d61785f7570776172645f71756575655f636f756e7404010c6e657710010c7533320017042d015365747320746865206d6178696d756d206974656d7320746861742063616e2070726573656e7420696e206120757077617264206469737061746368207175657565206174206f6e63652e647365745f6d61785f7570776172645f71756575655f73697a6504010c6e657710010c75333200180465015365747320746865206d6178696d756d20746f74616c2073697a65206f66206974656d7320746861742063616e2070726573656e7420696e206120757077617264206469737061746368207175657565206174206f6e63652e747365745f6d61785f646f776e776172645f6d6573736167655f73697a6504010c6e657710010c7533320019049c5365742074686520637269746963616c20646f776e77617264206d6573736167652073697a652e707365745f756d705f736572766963655f746f74616c5f77656967687404010c6e6577200118576569676874001a043901536574732074686520736f6674206c696d697420666f7220746865207068617365206f66206469737061746368696e6720646973706174636861626c6520757077617264206d657373616765732e6c7365745f6d61785f7570776172645f6d6573736167655f73697a6504010c6e657710010c753332001b042d015365747320746865206d6178696d756d2073697a65206f6620616e20757077617264206d65737361676520746861742063616e2062652073656e7420627920612063616e6469646174652ea07365745f6d61785f7570776172645f6d6573736167655f6e756d5f7065725f63616e64696461746504010c6e657710010c753332001c0405015365747320746865206d6178696d756d206e756d626572206f66206d65737361676573207468617420612063616e6469646174652063616e20636f6e7461696e2e647365745f68726d705f6f70656e5f726571756573745f74746c04010c6e657710010c753332001d0435015365747320746865206e756d626572206f662073657373696f6e7320616674657220776869636820616e2048524d50206f70656e206368616e6e656c207265717565737420657870697265732e5c7365745f68726d705f73656e6465725f6465706f73697404010c6e657718011c42616c616e6365001e045101536574732074686520616d6f756e74206f662066756e64732074686174207468652073656e6465722073686f756c642070726f7669646520666f72206f70656e696e6720616e2048524d50206368616e6e656c2e687365745f68726d705f726563697069656e745f6465706f73697404010c6e657718011c42616c616e6365001f086101536574732074686520616d6f756e74206f662066756e647320746861742074686520726563697069656e742073686f756c642070726f7669646520666f7220616363657074696e67206f70656e696e6720616e2048524d50206368616e6e656c2e747365745f68726d705f6368616e6e656c5f6d61785f636170616369747904010c6e657710010c7533320020041d015365747320746865206d6178696d756d206e756d626572206f66206d6573736167657320616c6c6f77656420696e20616e2048524d50206368616e6e656c206174206f6e63652e7c7365745f68726d705f6368616e6e656c5f6d61785f746f74616c5f73697a6504010c6e657710010c75333200210451015365747320746865206d6178696d756d20746f74616c2073697a65206f66206d6573736167657320696e20627974657320616c6c6f77656420696e20616e2048524d50206368616e6e656c206174206f6e63652e9c7365745f68726d705f6d61785f70617261636861696e5f696e626f756e645f6368616e6e656c7304010c6e657710010c75333200220449015365747320746865206d6178696d756d206e756d626572206f6620696e626f756e642048524d50206368616e6e656c7320612070617261636861696e20697320616c6c6f77656420746f206163636570742ea07365745f68726d705f6d61785f706172617468726561645f696e626f756e645f6368616e6e656c7304010c6e657710010c7533320023044d015365747320746865206d6178696d756d206e756d626572206f6620696e626f756e642048524d50206368616e6e656c732061207061726174687265616420697320616c6c6f77656420746f206163636570742e847365745f68726d705f6368616e6e656c5f6d61785f6d6573736167655f73697a6504010c6e657710010c7533320024043d015365747320746865206d6178696d756d2073697a65206f662061206d657373616765207468617420636f756c6420657665722062652070757420696e746f20616e2048524d50206368616e6e656c2ea07365745f68726d705f6d61785f70617261636861696e5f6f7574626f756e645f6368616e6e656c7304010c6e657710010c75333200250445015365747320746865206d6178696d756d206e756d626572206f66206f7574626f756e642048524d50206368616e6e656c7320612070617261636861696e20697320616c6c6f77656420746f206f70656e2ea47365745f68726d705f6d61785f706172617468726561645f6f7574626f756e645f6368616e6e656c7304010c6e657710010c75333200260449015365747320746865206d6178696d756d206e756d626572206f66206f7574626f756e642048524d50206368616e6e656c732061207061726174687265616420697320616c6c6f77656420746f206f70656e2e987365745f68726d705f6d61785f6d6573736167655f6e756d5f7065725f63616e64696461746504010c6e657710010c75333200270435015365747320746865206d6178696d756d206e756d626572206f66206f7574626f756e642048524d50206d657373616765732063616e2062652073656e7420627920612063616e6469646174652e747365745f756d705f6d61785f696e646976696475616c5f77656967687404010c6e657720011857656967687400280431015365747320746865206d6178696d756d20616d6f756e74206f662077656967687420616e7920696e646976696475616c20757077617264206d657373616765206d617920636f6e73756d652e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632edd04106c706f6c6b61646f745f72756e74696d655f70617261636861696e73187368617265641870616c6c65741043616c6c040454000100042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ee104106c706f6c6b61646f745f72756e74696d655f70617261636861696e7324696e636c7573696f6e1870616c6c65741043616c6c040454000100042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ee504106c706f6c6b61646f745f72756e74696d655f70617261636861696e733870617261735f696e686572656e741870616c6c65741043616c6c04045400010414656e74657204011064617461e904018450617261636861696e73496e686572656e74446174613c543a3a4865616465723e0000043101456e7465722074686520706172617320696e686572656e742e20546869732077696c6c2070726f63657373206269746669656c647320616e64206261636b65642063616e646964617465732e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ee9040c4c706f6c6b61646f745f7072696d69746976657308763130496e686572656e7444617461040c484452011d02001001246269746669656c6473ed040190556e636865636b65645369676e6564417661696c6162696c6974794269746669656c64730001446261636b65645f63616e646964617465730905017c5665633c4261636b656443616e6469646174653c4844523a3a486173683e3e0001206469737075746573310501604d756c74694469737075746553746174656d656e74536574000134706172656e745f6865616465721d02010c4844520000ed04000002f10400f104104c706f6c6b61646f745f7072696d697469766573087631187369676e65643c556e636865636b65645369676e6564081c5061796c6f616401f5042c5265616c5061796c6f616401f504000c011c7061796c6f6164f504011c5061796c6f616400013c76616c696461746f725f696e6465780105013856616c696461746f72496e6465780001247369676e61747572650505014856616c696461746f725369676e61747572650000f5040c4c706f6c6b61646f745f7072696d69746976657308763150417661696c6162696c6974794269746669656c6400000400f904017c4269745665633c6269747665633a3a6f726465723a3a4c7362302c2075383e0000f90400000708fd0400fd040c18626974766563146f72646572104c7362300000000001050c4c706f6c6b61646f745f7072696d6974697665730876303856616c696461746f72496e6465780000040010010c75333200000505104c706f6c6b61646f745f7072696d6974697665730876303476616c696461746f725f617070245369676e6174757265000004005d010148737232353531393a3a5369676e6174757265000009050000020d05000d050c4c706f6c6b61646f745f7072696d6974697665730876313c4261636b656443616e6469646174650404480124000c012463616e64696461746511050170436f6d6d697474656443616e646964617465526563656970743c483e00013876616c69646974795f766f746573290501605665633c56616c69646974794174746573746174696f6e3e00014476616c696461746f725f696e6469636573f904017c4269745665633c6269747665633a3a6f726465723a3a4c7362302c2075383e000011050c4c706f6c6b61646f745f7072696d69746976657308763164436f6d6d697474656443616e6469646174655265636569707404044801240008012864657363726970746f724d01015843616e64696461746544657363726970746f723c483e00012c636f6d6d69746d656e74731505015043616e646964617465436f6d6d69746d656e7473000015050c4c706f6c6b61646f745f7072696d6974697665730876315043616e646964617465436f6d6d69746d656e747304044e01100018013c7570776172645f6d65737361676573c50101485665633c5570776172644d6573736167653e00014c686f72697a6f6e74616c5f6d65737361676573190501705665633c4f7574626f756e6448726d704d6573736167653c49643e3e00014c6e65775f76616c69646174696f6e5f636f6465210501584f7074696f6e3c56616c69646174696f6e436f64653e000124686561645f6461746169010120486561644461746100016c70726f6365737365645f646f776e776172645f6d6573736167657310010c75333200013868726d705f77617465726d61726b1001044e000019050000021d05001d050860706f6c6b61646f745f636f72655f7072696d6974697665734c4f7574626f756e6448726d704d6573736167650408496401510100080124726563697069656e745101010849640001106461746128015073705f7374643a3a7665633a3a5665633c75383e0000210504184f7074696f6e0404540125050108104e6f6e6500000010536f6d6504002505000001000025050c48706f6c6b61646f745f70617261636861696e287072696d6974697665733856616c69646174696f6e436f64650000040028011c5665633c75383e000029050000022d05002d050c4c706f6c6b61646f745f7072696d6974697665730876304c56616c69646974794174746573746174696f6e00010820496d706c6963697404000505014856616c696461746f725369676e6174757265000100204578706c6963697404000505014856616c696461746f725369676e617475726500020000310500000235050035050c4c706f6c6b61646f745f7072696d6974697665730876314c4469737075746553746174656d656e7453657400000c013863616e6469646174655f686173683905013443616e6469646174654861736800011c73657373696f6e10013053657373696f6e496e64657800012873746174656d656e74733d0501ec5665633c284469737075746553746174656d656e742c2056616c696461746f72496e6465782c2056616c696461746f725369676e6174757265293e000039050860706f6c6b61646f745f636f72655f7072696d6974697665733443616e64696461746548617368000004002401104861736800003d0500000241050041050000040c4505010505050045050c4c706f6c6b61646f745f7072696d697469766573087631404469737075746553746174656d656e740001081456616c696404004905016456616c69644469737075746553746174656d656e744b696e640000001c496e76616c696404004d05016c496e76616c69644469737075746553746174656d656e744b696e640001000049050c4c706f6c6b61646f745f7072696d6974697665730876316456616c69644469737075746553746174656d656e744b696e64000110204578706c696369740000003c4261636b696e675365636f6e646564040024011048617368000100304261636b696e6756616c696404002401104861736800020040417070726f76616c436865636b696e67000300004d050c4c706f6c6b61646f745f7072696d6974697665730876316c496e76616c69644469737075746553746174656d656e744b696e64000104204578706c69636974000000005105106c706f6c6b61646f745f72756e74696d655f70617261636861696e731470617261731870616c6c65741043616c6c04045400011458666f7263655f7365745f63757272656e745f636f646508011070617261510101185061726149640001206e65775f636f64652505013856616c69646174696f6e436f6465000004f8536574207468652073746f7261676520666f72207468652070617261636861696e2076616c69646174696f6e20636f646520696d6d6564696174656c792e58666f7263655f7365745f63757272656e745f6865616408011070617261510101185061726149640001206e65775f686561646901012048656164446174610001040101536574207468652073746f7261676520666f72207468652063757272656e742070617261636861696e2068656164206461746120696d6d6564696174656c792e6c666f7263655f7363686564756c655f636f64655f757067726164650c011070617261510101185061726149640001206e65775f636f64652505013856616c69646174696f6e436f646500014c72656c61795f706172656e745f6e756d626572100138543a3a426c6f636b4e756d6265720002042d015363686564756c6520616e207570677261646520617320696620697420776173207363686564756c656420696e2074686520676976656e2072656c617920706172656e7420626c6f636b2e4c666f7263655f6e6f74655f6e65775f6865616408011070617261510101185061726149640001206e65775f686561646901012048656164446174610003041d014e6f74652061206e657720626c6f636b206865616420666f7220706172612077697468696e2074686520636f6e74657874206f66207468652063757272656e7420626c6f636b2e48666f7263655f71756575655f616374696f6e040110706172615101011850617261496400040cf850757420612070617261636861696e206469726563746c7920696e746f20746865206e6578742073657373696f6e277320616374696f6e2071756575652ef457652063616e277420717565756520697420616e7920736f6f6e6572207468616e207468697320776974686f757420676f696e6720696e746f2074686538696e697469616c697a65722e2e2e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e5505106c706f6c6b61646f745f72756e74696d655f70617261636861696e732c696e697469616c697a65721870616c6c65741043616c6c04045400010434666f7263655f617070726f766504011475705f746f10012c426c6f636b4e756d62657200000c390149737375652061207369676e616c20746f2074686520636f6e73656e73757320656e67696e6520746f20666f726369626c79206163742061732074686f75676820616c6c2070617261636861696e5101626c6f636b7320696e20616c6c2072656c617920636861696e20626c6f636b7320757020746f20616e6420696e636c7564696e672074686520676976656e206e756d62657220696e207468652063757272656e74a0636861696e206172652076616c696420616e642073686f756c642062652066696e616c697a65642e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e5905106c706f6c6b61646f745f72756e74696d655f70617261636861696e730c646d701870616c6c65741043616c6c040454000100042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e5d05106c706f6c6b61646f745f72756e74696d655f70617261636861696e730c756d701870616c6c65741043616c6c04045400010448736572766963655f6f766572776569676874080114696e64657820013c4f766572776569676874496e6465780001307765696768745f6c696d6974200118576569676874000030ac5365727669636520612073696e676c65206f76657277656967687420757077617264206d6573736167652e00c02d20606f726967696e603a204d75737420706173732060457865637574654f7665727765696768744f726967696e602ee82d2060696e646578603a2054686520696e646578206f6620746865206f766572776569676874206d65737361676520746f20736572766963652e1d012d20607765696768745f6c696d6974603a2054686520616d6f756e74206f66207765696768742074686174206d65737361676520657865637574696f6e206d61792074616b652e001c4572726f72733adc2d2060556e6b6e6f776e4d657373616765496e646578603a204d657373616765206f662060696e6465786020697320756e6b6e6f776e2e2d012d20605765696768744f7665724c696d6974603a204d65737361676520657865637574696f6e206d6179207573652067726561746572207468616e20607765696768745f6c696d6974602e001c4576656e74733a8c2d20604f7665727765696768745365727669636564603a204f6e20737563636573732e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e6105106c706f6c6b61646f745f72756e74696d655f70617261636861696e731068726d701870616c6c65741043616c6c04045400011c5868726d705f696e69745f6f70656e5f6368616e6e656c0c0124726563697069656e745101011850617261496400015470726f706f7365645f6d61785f636170616369747910010c75333200016470726f706f7365645f6d61785f6d6573736167655f73697a6510010c7533320000284d01496e697469617465206f70656e696e672061206368616e6e656c2066726f6d20612070617261636861696e20746f206120676976656e20726563697069656e74207769746820676976656e206368616e6e656c2c706172616d65746572732e0059012d206070726f706f7365645f6d61785f636170616369747960202d2073706563696669657320686f77206d616e79206d657373616765732063616e20626520696e20746865206368616e6e656c206174206f6e63652e2d012d206070726f706f7365645f6d61785f6d6573736167655f73697a6560202d2073706563696669657320746865206d6178696d756d2073697a65206f6620746865206d657373616765732e0011015468657365206e756d62657273206172652061207375626a65637420746f207468652072656c61792d636861696e20636f6e66696775726174696f6e206c696d6974732e005101546865206368616e6e656c2063616e206265206f70656e6564206f6e6c792061667465722074686520726563697069656e7420636f6e6669726d7320697420616e64206f6e6c79206f6e20612073657373696f6e1c6368616e67652e6068726d705f6163636570745f6f70656e5f6368616e6e656c04011873656e6465725101011850617261496400010cf041636365707420612070656e64696e67206f70656e206368616e6e656c20726571756573742066726f6d2074686520676976656e2073656e6465722e00f4546865206368616e6e656c2077696c6c206265206f70656e6564206f6e6c79206f6e20746865206e6578742073657373696f6e20626f756e646172792e4868726d705f636c6f73655f6368616e6e656c0401286368616e6e656c5f69648901013448726d704368616e6e656c49640002105501496e69746961746520756e696c61746572616c20636c6f73696e67206f662061206368616e6e656c2e20546865206f726967696e206d75737420626520656974686572207468652073656e646572206f722074686598726563697069656e7420696e20746865206368616e6e656c206265696e6720636c6f7365642e00c054686520636c6f737572652063616e206f6e6c792068617070656e206f6e20612073657373696f6e206368616e67652e40666f7263655f636c65616e5f68726d7004011070617261510101185061726149640003141901546869732065787472696e7369632074726967676572732074686520636c65616e7570206f6620616c6c207468652048524d502073746f72616765206974656d7320746861742101612070617261206d617920686176652e204e6f726d616c6c7920746869732068617070656e73206f6e6365207065722073657373696f6e2c20627574207468697320616c6c6f77730101796f7520746f20747269676765722074686520636c65616e757020696d6d6564696174656c7920666f7220612073706563696669632070617261636861696e2e00504f726967696e206d75737420626520526f6f742e5c666f7263655f70726f636573735f68726d705f6f70656e000410a4466f7263652070726f636573732048524d50206f70656e206368616e6e656c2072657175657374732e0005014966207468657265206172652070656e64696e672048524d50206f70656e206368616e6e656c2072657175657374732c20796f752063616e207573652074686973cc66756e6374696f6e2070726f6365737320616c6c206f662074686f736520726571756573747320696d6d6564696174656c792e60666f7263655f70726f636573735f68726d705f636c6f7365000510a8466f7263652070726f636573732048524d5020636c6f7365206368616e6e656c2072657175657374732e0009014966207468657265206172652070656e64696e672048524d5020636c6f7365206368616e6e656c2072657175657374732c20796f752063616e207573652074686973cc66756e6374696f6e2070726f6365737320616c6c206f662074686f736520726571756573747320696d6d6564696174656c792e6068726d705f63616e63656c5f6f70656e5f726571756573740401286368616e6e656c5f69648901013448726d704368616e6e656c49640006145d01546869732063616e63656c7320612070656e64696e67206f70656e206368616e6e656c20726571756573742e2049742063616e2062652063616e63656c656420626520656974686572206f66207468652073656e64657219016f722074686520726563697069656e7420666f72207468617420726571756573742e20546865206f726967696e206d75737420626520656974686572206f662074686f73652e0055015468652063616e63656c6c696e672068617070656e7320696d6d6564696174656c792e204974206973206e6f7420706f737369626c6520746f2063616e63656c20746865207265717565737420696620697420697344616c72656164792061636365707465642e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e6505105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e3c70617261735f7265676973747261721870616c6c65741043616c6c0404540001182072656769737465720c010869645101011850617261496400013067656e657369735f6865616469010120486561644461746100013c76616c69646174696f6e5f636f64652505013856616c69646174696f6e436f6465000038f852656769737465722068656164206461746120616e642076616c69646174696f6e20636f646520666f72206120726573657276656420506172612049642e0030232320417267756d656e7473c02d20606f726967696e603a204d7573742062652063616c6c6564206279206120605369676e656460206f726967696e2e2d012d20606964603a2054686520706172612049442e204d757374206265206f776e65642f6d616e616765642062792074686520606f726967696e60207369676e696e67206163636f756e742e01012d206067656e657369735f68656164603a205468652067656e6573697320686561642064617461206f66207468652070617261636861696e2f7468726561642e25012d206076616c69646174696f6e5f636f6465603a2054686520696e697469616c2076616c69646174696f6e20636f6465206f66207468652070617261636861696e2f7468726561642e00402323204465706f736974732f466565739501546865206f726967696e207369676e6564206163636f756e74206d7573742072657365727665206120636f72726573706f6e64696e67206465706f73697420666f722074686520726567697374726174696f6e2e20416e797468696e6720616c7265616479d872657365727665642070726576696f75736c7920666f7220746869732070617261204944206973206163636f756e74656420666f722e00242323204576656e7473d454686520605265676973746572656460206576656e7420697320656d697474656420696e2063617365206f6620737563636573732e38666f7263655f726567697374657214010c77686f000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e00010869645101011850617261496400013067656e657369735f6865616469010120486561644461746100013c76616c69646174696f6e5f636f64652505013856616c69646174696f6e436f6465000118dc466f7263652074686520726567697374726174696f6e206f6620612050617261204964206f6e207468652072656c617920636861696e2e00b8546869732066756e6374696f6e206d7573742062652063616c6c6564206279206120526f6f74206f726967696e2e001901546865206465706f7369742074616b656e2063616e2062652073706563696669656420666f72207468697320726567697374726174696f6e2e20416e79206050617261496460190163616e20626520726567697374657265642c20696e636c7564696e67207375622d3130303020494473207768696368206172652053797374656d2050617261636861696e732e286465726567697374657204010869645101011850617261496400020c050144657265676973746572206120506172612049642c2066726565696e6720616c6c206461746120616e642072657475726e696e6720616e79206465706f7369742e007d015468652063616c6c6572206d75737420626520526f6f742c2074686520607061726160206f776e65722c206f72207468652060706172616020697473656c662e205468652070617261206d757374206265206120706172617468726561642e10737761700801086964510101185061726149640001146f746865725101011850617261496400032cd85377617020612070617261636861696e207769746820616e6f746865722070617261636861696e206f7220706172617468726561642e000101546865206f726967696e206d75737420626520526f6f742c2074686520607061726160206f776e65722c206f72207468652060706172616020697473656c662e00610154686520737761702077696c6c2068617070656e206f6e6c7920696620746865726520697320616c726561647920616e206f70706f7369746520737761702070656e64696e672e204966207468657265206973206e6f742c590174686520737761702077696c6c2062652073746f72656420696e207468652070656e64696e67207377617073206d61702c20726561647920666f722061206c6174657220636f6e6669726d61746f727920737761702e005d01546865206050617261496460732072656d61696e206d617070656420746f207468652073616d652068656164206461746120616e6420636f646520736f2065787465726e616c20636f64652063616e2072656c79206f6e3d01605061726149646020746f2062652061206c6f6e672d7465726d206964656e746966696572206f662061206e6f74696f6e616c202270617261636861696e222e20486f77657665722c20746865697255017363686564756c696e6720696e666f2028692e652e2077686574686572207468657927726520612070617261746872656164206f722070617261636861696e292c2061756374696f6e20696e666f726d6174696f6e94616e64207468652061756374696f6e206465706f736974206172652073776974636865642e44666f7263655f72656d6f76655f6c6f636b04011070617261510101185061726149640004100d0152656d6f76652061206d616e61676572206c6f636b2066726f6d206120706172612e20546869732077696c6c20616c6c6f7720746865206d616e61676572206f662061350170726576696f75736c79206c6f636b6564207061726120746f2064657265676973746572206f7220737761702061207061726120776974686f7574207573696e6720676f7665726e616e63652e009843616e206f6e6c792062652063616c6c65642062792074686520526f6f74206f726967696e2e1c72657365727665000538945265736572766520612050617261204964206f6e207468652072656c617920636861696e2e004d01546869732066756e6374696f6e2077696c6c20726573657276652061206e6577205061726120496420746f206265206f776e65642f6d616e6167656420627920746865206f726967696e206163636f756e742e7d01546865206f726967696e206163636f756e742069732061626c6520746f2072656769737465722068656164206461746120616e642076616c69646174696f6e20636f6465207573696e67206072656769737465726020746f2063726561746581016120706172617468726561642e205573696e672074686520536c6f74732070616c6c65742c206120706172617468726561642063616e207468656e20626520757067726164656420746f2067657420612070617261636861696e20736c6f742e0030232320417267756d656e747379012d20606f726967696e603a204d7573742062652063616c6c6564206279206120605369676e656460206f726967696e2e204265636f6d657320746865206d616e616765722f6f776e6572206f6620746865206e657720706172612049442e00402323204465706f736974732f466565732101546865206f726967696e206d75737420726573657276652061206465706f736974206f662060506172614465706f7369746020666f722074686520726567697374726174696f6e2e00242323204576656e74736d015468652060526573657276656460206576656e7420697320656d697474656420696e2063617365206f6620737563636573732c2077686963682070726f76696465732074686520494420726573657276656420666f72207573652e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e6905105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e14736c6f74731870616c6c65741043616c6c04045400010c2c666f7263655f6c6561736514011070617261510101185061726149640001186c6561736572000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000130706572696f645f626567696e1001404c65617365506572696f644f663c543e000130706572696f645f636f756e741001404c65617365506572696f644f663c543e00001069014a757374206120636f6e6e65637420696e746f2074686520606c656173655f6f7574602063616c6c2c20696e206361736520526f6f742077616e747320746f20666f72636520736f6d65206c6561736520746f2068617070656ee0696e646570656e64656e746c79206f6620616e79206f74686572206f6e2d636861696e206d656368616e69736d20746f207573652069742e009843616e206f6e6c792062652063616c6c65642062792074686520526f6f74206f726967696e2e40636c6561725f616c6c5f6c6561736573040110706172615101011850617261496400010c4d01436c65617220616c6c206c656173657320666f72206120506172612049642c20726566756e64696e6720616e79206465706f73697473206261636b20746f20746865206f726967696e616c206f776e6572732e009843616e206f6e6c792062652063616c6c65642062792074686520526f6f74206f726967696e2e3c747269676765725f6f6e626f617264040110706172615101011850617261496400021c250154727920746f206f6e626f61726420612070617261636861696e2074686174206861732061206c6561736520666f72207468652063757272656e74206c6561736520706572696f642e004501546869732066756e6374696f6e2063616e2062652075736566756c2069662074686572652077617320736f6d6520737461746520697373756520776974682061207061726120746861742073686f756c64390168617665206f6e626f61726465642c206275742077617320756e61626c6520746f2e204173206c6f6e67206173207468657920686176652061206c6561736520706572696f642c2077652063616e6c6c6574207468656d206f6e626f6172642066726f6d20686572652e00cc4f726967696e206d757374206265207369676e65642c206275742063616e2062652063616c6c656420627920616e796f6e652e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e6d05105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e2061756374696f6e731870616c6c65741043616c6c04045400010c2c6e65775f61756374696f6e0801206475726174696f6ead010138543a3a426c6f636b4e756d6265720001486c656173655f706572696f645f696e646578ad0101404c65617365506572696f644f663c543e000014544372656174652061206e65772061756374696f6e2e005101546869732063616e206f6e6c792068617070656e207768656e2074686572652069736e277420616c726561647920616e2061756374696f6e20696e2070726f677265737320616e64206d6179206f6e6c79206265250163616c6c65642062792074686520726f6f74206f726967696e2e20416363657074732074686520606475726174696f6e60206f6620746869732061756374696f6e20616e64207468655901606c656173655f706572696f645f696e64657860206f662074686520696e697469616c206c6561736520706572696f64206f662074686520666f757220746861742061726520746f2062652061756374696f6e65642e0c626964140110706172617105011850617261496400013461756374696f6e5f696e646578ad01013041756374696f6e496e64657800012866697273745f736c6f74ad0101404c65617365506572696f644f663c543e0001246c6173745f736c6f74ad0101404c65617365506572696f644f663c543e000118616d6f756e74cc013042616c616e63654f663c543e00014049014d616b652061206e6577206269642066726f6d20616e206163636f756e742028696e636c7564696e6720612070617261636861696e206163636f756e742920666f72206465706c6f79696e672061206e65772870617261636861696e2e0059014d756c7469706c652073696d756c74616e656f757320626964732066726f6d207468652073616d65206269646465722061726520616c6c6f776564206f6e6c79206173206c6f6e6720617320616c6c206163746976653d0162696473206f7665726c61702065616368206f746865722028692e652e20617265206d757475616c6c79206578636c7573697665292e20426964732063616e6e6f742062652072656461637465642e0055012d20607375626020697320746865207375622d6269646465722049442c20616c6c6f77696e6720666f72206d756c7469706c6520636f6d706574696e67206269647320746f206265206d6164652062792028616e647066756e64656420627929207468652073616d65206163636f756e742e4d012d206061756374696f6e5f696e646578602069732074686520696e646578206f66207468652061756374696f6e20746f20626964206f6e2e2053686f756c64206a757374206265207468652070726573656e746876616c7565206f66206041756374696f6e436f756e746572602e49012d206066697273745f736c6f746020697320746865206669727374206c6561736520706572696f6420696e646578206f66207468652072616e676520746f20626964206f6e2e20546869732069732074686509016162736f6c757465206c6561736520706572696f6420696e6465782076616c75652c206e6f7420616e2061756374696f6e2d7370656369666963206f66667365742e41012d20606c6173745f736c6f746020697320746865206c617374206c6561736520706572696f6420696e646578206f66207468652072616e676520746f20626964206f6e2e20546869732069732074686509016162736f6c757465206c6561736520706572696f6420696e6465782076616c75652c206e6f7420616e2061756374696f6e2d7370656369666963206f66667365742e49012d2060616d6f756e74602069732074686520616d6f756e7420746f2062696420746f2062652068656c64206173206465706f73697420666f72207468652070617261636861696e2073686f756c6420746865c86269642077696e2e205468697320616d6f756e742069732068656c64207468726f7567686f7574207468652072616e67652e3863616e63656c5f61756374696f6e00020c7843616e63656c20616e20696e2d70726f67726573732061756374696f6e2e008843616e206f6e6c792062652063616c6c656420627920526f6f74206f726967696e2e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e71050000065101007505105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e2463726f77646c6f616e1870616c6c65741043616c6c04045400012018637265617465180114696e6465787105011850617261496400010c636170cc013042616c616e63654f663c543e00013066697273745f706572696f64ad0101404c65617365506572696f644f663c543e00012c6c6173745f706572696f64ad0101404c65617365506572696f644f663c543e00010c656e64ad010138543a3a426c6f636b4e756d62657200012076657269666965727905014c4f7074696f6e3c4d756c74695369676e65723e00001069014372656174652061206e65772063726f77646c6f616e696e672063616d706169676e20666f7220612070617261636861696e20736c6f7420776974682074686520676976656e206c6561736520706572696f642072616e67652e005d0154686973206170706c6965732061206c6f636b20746f20796f75722070617261636861696e20636f6e66696775726174696f6e2c20656e737572696e6720746861742069742063616e6e6f74206265206368616e676564646279207468652070617261636861696e206d616e616765722e28636f6e747269627574650c0114696e6465787105011850617261496400011476616c7565cc013042616c616e63654f663c543e0001247369676e6174757265890501584f7074696f6e3c4d756c74695369676e61747572653e0001085101436f6e7472696275746520746f20612063726f77642073616c652e20546869732077696c6c207472616e7366657220736f6d652062616c616e6365206f76657220746f2066756e6420612070617261636861696e5101736c6f742e2049742077696c6c20626520776974686472617761626c65207768656e207468652063726f77646c6f616e2068617320656e64656420616e64207468652066756e64732061726520756e757365642e20776974686472617708010c77686f000130543a3a4163636f756e744964000114696e64657871050118506172614964000244c057697468647261772066756c6c2062616c616e6365206f66206120737065636966696320636f6e7472696275746f722e00c04f726967696e206d757374206265207369676e65642c206275742063616e20636f6d652066726f6d20616e796f6e652e00ad015468652066756e64206d7573742062652065697468657220696e2c206f7220726561647920666f722c207265746972656d656e742e20466f7220612066756e6420746f206265202a696e2a207265746972656d656e742c207468656e20746865207265746972656d656e74f8666c6167206d757374206265207365742e20466f7220612066756e6420746f20626520726561647920666f72207265746972656d656e742c207468656e3a9c2d206974206d757374206e6f7420616c726561647920626520696e207265746972656d656e743b4d012d2074686520616d6f756e74206f66207261697365642066756e6473206d75737420626520626967676572207468616e20746865205f667265655f2062616c616e6365206f6620746865206163636f756e743b342d20616e64206569746865723abc20202d2074686520626c6f636b206e756d626572206d757374206265206174206c656173742060656e64603b206f722d0120202d207468652063757272656e74206c6561736520706572696f64206d7573742062652067726561746572207468616e207468652066756e64277320606c6173745f706572696f64602e006d01496e207468697320636173652c207468652066756e642773207265746972656d656e7420666c61672069732073657420616e64206974732060656e646020697320726573657420746f207468652063757272656e7420626c6f636b1c6e756d6265722e00f02d206077686f603a20546865206163636f756e742077686f736520636f6e747269627574696f6e2073686f756c642062652077697468647261776e2e19012d2060696e646578603a205468652070617261636861696e20746f2077686f73652063726f77646c6f616e2074686520636f6e747269627574696f6e20776173206d6164652e18726566756e64040114696e64657871050118506172614964000314e04175746f6d61746963616c6c7920726566756e6420636f6e7472696275746f7273206f6620616e20656e6465642063726f77646c6f616e2e210144756520746f20776569676874207265737472696374696f6e732c20746869732066756e6374696f6e206d6179206e65656420746f2062652063616c6c6564206d756c7469706c65490174696d657320746f2066756c6c7920726566756e6420616c6c2075736572732e2057652077696c6c20726566756e64206052656d6f76654b6579734c696d69746020757365727320617420612074696d652e00c04f726967696e206d757374206265207369676e65642c206275742063616e20636f6d652066726f6d20616e796f6e652e20646973736f6c7665040114696e64657871050118506172614964000404550152656d6f766520612066756e6420616674657220746865207265746972656d656e7420706572696f642068617320656e64656420616e6420616c6c2066756e64732068617665206265656e2072657475726e65642e1065646974180114696e6465787105011850617261496400010c636170cc013042616c616e63654f663c543e00013066697273745f706572696f64ad0101404c65617365506572696f644f663c543e00012c6c6173745f706572696f64ad0101404c65617365506572696f644f663c543e00010c656e64ad010138543a3a426c6f636b4e756d62657200012076657269666965727905014c4f7074696f6e3c4d756c74695369676e65723e00050cd0456469742074686520636f6e66696775726174696f6e20666f7220616e20696e2d70726f67726573732063726f77646c6f616e2e008843616e206f6e6c792062652063616c6c656420627920526f6f74206f726967696e2e206164645f6d656d6f080114696e646578510101185061726149640001106d656d6f28011c5665633c75383e00060cec41646420616e206f7074696f6e616c206d656d6f20746f20616e206578697374696e672063726f77646c6f616e20636f6e747269627574696f6e2e002d014f726967696e206d757374206265205369676e65642c20616e64207468652075736572206d757374206861766520636f6e747269627574656420746f207468652063726f77646c6f616e2e10706f6b65040114696e6465785101011850617261496400070c74506f6b65207468652066756e6420696e746f20604e657752616973656000dc4f726967696e206d757374206265205369676e65642c20616e64207468652066756e6420686173206e6f6e2d7a65726f2072616973652e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e790504184f7074696f6e040454017d050108104e6f6e6500000010536f6d6504007d0500000100007d05082873705f72756e74696d652c4d756c74695369676e657200010c1c456432353531390400b0013c656432353531393a3a5075626c69630000001c537232353531390400bc013c737232353531393a3a5075626c696300010014456364736104008105013465636473613a3a5075626c69630002000081050c1c73705f636f7265146563647361185075626c696300000400850501205b75383b2033335d00008505000003210000000800890504184f7074696f6e040454018d050108104e6f6e6500000010536f6d6504008d0500000100008d05082873705f72756e74696d65384d756c74695369676e617475726500010c1c456432353531390400ad020148656432353531393a3a5369676e61747572650000001c5372323535313904005d010148737232353531393a3a5369676e617475726500010014456364736104009105014065636473613a3a5369676e61747572650002000091050c1c73705f636f7265146563647361245369676e617475726500000400110301205b75383b2036355d000095050840706f6c6b61646f745f72756e74696d65304f726967696e43616c6c65720001141873797374656d0400990501746672616d655f73797374656d3a3a4f726967696e3c52756e74696d653e0000001c436f756e63696c04009d0501010170616c6c65745f636f6c6c6563746976653a3a4f726967696e3c52756e74696d652c2070616c6c65745f636f6c6c6563746976653a3a496e7374616e6365313e000f0048546563686e6963616c436f6d6d69747465650400a10501010170616c6c65745f636f6c6c6563746976653a3a4f726967696e3c52756e74696d652c2070616c6c65745f636f6c6c6563746976653a3a496e7374616e6365323e0010004050617261636861696e734f726967696e0400a505016470617261636861696e735f6f726967696e3a3a4f726967696e00320010566f69640400a90501110173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a566f696400040000990508306672616d655f73797374656d245261774f726967696e04244163636f756e7449640100010c10526f6f74000000185369676e656404000001244163636f756e744964000100104e6f6e65000200009d05084470616c6c65745f636f6c6c656374697665245261774f726967696e08244163636f756e7449640100044900010c1c4d656d62657273080010012c4d656d626572436f756e74000010012c4d656d626572436f756e74000000184d656d62657204000001244163636f756e744964000100205f5068616e746f6d00020000a105084470616c6c65745f636f6c6c656374697665245261774f726967696e08244163636f756e7449640100044900010c1c4d656d62657273080010012c4d656d626572436f756e74000010012c4d656d626572436f756e74000000184d656d62657204000001244163636f756e744964000100205f5068616e746f6d00020000a505106c706f6c6b61646f745f72756e74696d655f70617261636861696e73186f726967696e1870616c6c6574184f726967696e0001042450617261636861696e04005101011850617261496400000000a905081c73705f636f726510566f696400010000ad05084070616c6c65745f7363686564756c65722052656c656173657300010808563100000008563200010000b1050c4070616c6c65745f7363686564756c65721870616c6c6574144572726f72040454000110404661696c6564546f5363686564756c65000004644661696c656420746f207363686564756c6520612063616c6c204e6f74466f756e640001047c43616e6e6f742066696e6420746865207363686564756c65642063616c6c2e5c546172676574426c6f636b4e756d626572496e50617374000204a4476976656e2074617267657420626c6f636b206e756d62657220697320696e2074686520706173742e4852657363686564756c654e6f4368616e6765000304f052657363686564756c65206661696c6564206265636175736520697420646f6573206e6f74206368616e6765207363686564756c65642074696d652e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909b50510346672616d655f737570706f72741c73746f72616765407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401b905045300000400bd0501185665633c543e0000b9050000040825022000bd05000002b90500c10510346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e6465645665630804540104045300000400c50501185665633c543e0000c5050000020400c90504184f7074696f6e04045401040108104e6f6e6500000010536f6d650400040000010000cd05084473705f636f6e73656e7375735f62616265584261626545706f6368436f6e66696775726174696f6e00000801046335020128287536342c2075363429000134616c6c6f7765645f736c6f747339020130416c6c6f776564536c6f74730000d1050c2c70616c6c65745f626162651870616c6c6574144572726f7204045400010c60496e76616c696445717569766f636174696f6e50726f6f660000043101416e2065717569766f636174696f6e2070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e60496e76616c69644b65794f776e65727368697050726f6f66000104310141206b6579206f776e6572736869702070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e584475706c69636174654f6666656e63655265706f727400020415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909d5050000040c0018e800d9050c3870616c6c65745f696e64696365731870616c6c6574144572726f720404540001142c4e6f7441737369676e65640000048c54686520696e64657820776173206e6f7420616c72656164792061737369676e65642e204e6f744f776e6572000104a454686520696e6465782069732061737369676e656420746f20616e6f74686572206163636f756e742e14496e5573650002047054686520696e64657820776173206e6f7420617661696c61626c652e2c4e6f745472616e73666572000304c854686520736f7572636520616e642064657374696e6174696f6e206163636f756e747320617265206964656e746963616c2e245065726d616e656e74000404d054686520696e646578206973207065726d616e656e7420616e64206d6179206e6f742062652066726565642f6368616e6765642e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909dd0510346672616d655f737570706f72741c73746f72616765407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401e105045300000400e90501185665633c543e0000e105083c70616c6c65745f62616c616e6365732c42616c616e63654c6f636b041c42616c616e63650118000c01086964f50101384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e636500011c726561736f6e73e505011c526561736f6e730000e505083c70616c6c65745f62616c616e6365731c526561736f6e7300010c0c466565000000104d6973630001000c416c6c00020000e905000002e10500ed0510346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e64656456656308045401f105045300000400f50501185665633c543e0000f105083c70616c6c65745f62616c616e6365732c52657365727665446174610844526573657276654964656e74696669657201f5011c42616c616e63650118000801086964f5010144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e63650000f505000002f10500f905083c70616c6c65745f62616c616e6365732052656c65617365730001081856315f305f300000001856325f305f3000010000fd050c3c70616c6c65745f62616c616e6365731870616c6c6574144572726f720804540004490001203856657374696e6742616c616e63650000049856657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c7565544c69717569646974795265737472696374696f6e73000104c44163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c4c496e73756666696369656e7442616c616e63650002047442616c616e636520746f6f206c6f7720746f2073656e642076616c7565484578697374656e7469616c4465706f736974000304e856616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f736974244b656570416c6976650004048c5472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e745c4578697374696e6756657374696e675363686564756c65000504c8412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742c446561644163636f756e740006048842656e6566696369617279206163636f756e74206d757374207072652d65786973743c546f6f4d616e795265736572766573000704ac4e756d626572206f66206e616d656420726573657276657320657863656564204d6178526573657276657304bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a09090901060c3473705f61726974686d657469632c66697865645f706f696e7424466978656455313238000004001801107531323800000506086870616c6c65745f7472616e73616374696f6e5f7061796d656e742052656c6561736573000108245631416e6369656e740000000856320001000009060000020d06000d060c346672616d655f737570706f72741c7765696768747358576569676874546f466565436f656666696369656e74041c42616c616e6365011800100134636f6566665f696e746567657218011c42616c616e6365000128636f6566665f66726163b901011c50657262696c6c0001206e65676174697665e80110626f6f6c0001186465677265650801087538000011060000021506001506084470616c6c65745f617574686f727368697038556e636c65456e7472794974656d0c2c426c6f636b4e756d62657201101048617368012418417574686f72010001083c496e636c7573696f6e486569676874040010012c426c6f636b4e756d62657200000014556e636c650800240110486173680000f10201384f7074696f6e3c417574686f723e0001000019060c4470616c6c65745f617574686f72736869701870616c6c6574144572726f7204045400011c48496e76616c6964556e636c65506172656e740000048854686520756e636c6520706172656e74206e6f7420696e2074686520636861696e2e40556e636c6573416c726561647953657400010480556e636c657320616c72656164792073657420696e2074686520626c6f636b2e34546f6f4d616e79556e636c657300020440546f6f206d616e7920756e636c65732e3047656e65736973556e636c650003045454686520756e636c652069732067656e657369732e30546f6f48696768556e636c650004047c54686520756e636c6520697320746f6f206869676820696e20636861696e2e50556e636c65416c7265616479496e636c756465640005047854686520756e636c6520697320616c726561647920696e636c756465642e204f6c64556e636c65000604b454686520756e636c652069736e277420726563656e7420656e6f75676820746f20626520696e636c756465642e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a0909091d06083870616c6c65745f7374616b696e67345374616b696e674c656467657208244163636f756e74496401001c42616c616e636501180014011473746173680001244163636f756e744964000114746f74616ccc011c42616c616e6365000118616374697665cc011c42616c616e6365000124756e6c6f636b696e67210601645665633c556e6c6f636b4368756e6b3c42616c616e63653e3e00013c636c61696d65645f72657761726473750201345665633c457261496e6465783e000021060000022506002506083870616c6c65745f7374616b696e672c556e6c6f636b4368756e6b041c42616c616e636501180008011476616c7565cc011c42616c616e636500010c657261ad010120457261496e64657800002906083870616c6c65745f7374616b696e672c4e6f6d696e6174696f6e7304244163636f756e7449640100000c011c74617267657473dc01385665633c4163636f756e7449643e0001307375626d69747465645f696e100120457261496e64657800012873757070726573736564e80110626f6f6c00002d06083870616c6c65745f7374616b696e6734416374697665457261496e666f0000080114696e646578100120457261496e6465780001147374617274d501012c4f7074696f6e3c7536343e00003106000004081000003506083870616c6c65745f7374616b696e673c457261526577617264506f696e747304244163636f756e744964010000080114746f74616c10012c526577617264506f696e74000128696e646976696475616c3906018042547265654d61703c4163636f756e7449642c20526577617264506f696e743e00003906042042547265654d617008044b0100045601100004003d060000003d060000024106004106000004080010004506083870616c6c65745f7374616b696e671c466f7263696e67000110284e6f74466f7263696e6700000020466f7263654e657700010024466f7263654e6f6e650002002c466f726365416c776179730003000049060000024d06004d06083870616c6c65745f7374616b696e6738556e6170706c696564536c61736808244163636f756e74496401001c42616c616e636501180014012476616c696461746f720001244163636f756e74496400010c6f776e18011c42616c616e63650001186f7468657273f401645665633c284163636f756e7449642c2042616c616e6365293e0001247265706f7274657273dc01385665633c4163636f756e7449643e0001187061796f757418011c42616c616e63650000510600000408b901180055060c3870616c6c65745f7374616b696e6720736c617368696e6734536c617368696e675370616e7300001001287370616e5f696e6465781001245370616e496e6465780001286c6173745f7374617274100120457261496e6465780001486c6173745f6e6f6e7a65726f5f736c617368100120457261496e6465780001147072696f72750201345665633c457261496e6465783e000059060c3870616c6c65745f7374616b696e6720736c617368696e67285370616e5265636f7264041c42616c616e636501180008011c736c617368656418011c42616c616e6365000120706169645f6f757418011c42616c616e636500005d06083870616c6c65745f7374616b696e672052656c65617365730001203456315f305f30416e6369656e740000001856325f305f300001001856335f305f300002001856345f305f300003001856355f305f300004001856365f305f300005001856375f305f300006001856385f305f30000700006106103870616c6c65745f7374616b696e671870616c6c65741870616c6c6574144572726f7204045400015c344e6f74436f6e74726f6c6c6572000004644e6f74206120636f6e74726f6c6c6572206163636f756e742e204e6f745374617368000104504e6f742061207374617368206163636f756e742e34416c7265616479426f6e64656400020460537461736820697320616c726561647920626f6e6465642e34416c726561647950616972656400030474436f6e74726f6c6c657220697320616c7265616479207061697265642e30456d7074795461726765747300040460546172676574732063616e6e6f7420626520656d7074792e384475706c6963617465496e646578000504404475706c696361746520696e6465782e44496e76616c6964536c617368496e64657800060484536c617368207265636f726420696e646578206f7574206f6620626f756e64732e40496e73756666696369656e74426f6e64000704cc43616e206e6f7420626f6e6420776974682076616c7565206c657373207468616e206d696e696d756d2072657175697265642e304e6f4d6f72654368756e6b730008049043616e206e6f74207363686564756c65206d6f726520756e6c6f636b206368756e6b732e344e6f556e6c6f636b4368756e6b000904a043616e206e6f74207265626f6e6420776974686f757420756e6c6f636b696e67206368756e6b732e3046756e646564546172676574000a04c8417474656d7074696e6720746f2074617267657420612073746173682074686174207374696c6c206861732066756e64732e48496e76616c6964457261546f526577617264000b0458496e76616c69642065726120746f207265776172642e68496e76616c69644e756d6265724f664e6f6d696e6174696f6e73000c0478496e76616c6964206e756d626572206f66206e6f6d696e6174696f6e732e484e6f74536f72746564416e64556e69717565000d04804974656d7320617265206e6f7420736f7274656420616e6420756e697175652e38416c7265616479436c61696d6564000e0409015265776172647320666f72207468697320657261206861766520616c7265616479206265656e20636c61696d656420666f7220746869732076616c696461746f722e54496e636f7272656374486973746f72794465707468000f04c0496e636f72726563742070726576696f757320686973746f727920646570746820696e7075742070726f76696465642e58496e636f7272656374536c617368696e675370616e73001004b0496e636f7272656374206e756d626572206f6620736c617368696e67207370616e732070726f76696465642e2042616453746174650011043901496e7465726e616c20737461746520686173206265636f6d6520736f6d65686f7720636f7272757074656420616e6420746865206f7065726174696f6e2063616e6e6f7420636f6e74696e75652e38546f6f4d616e795461726765747300120494546f6f206d616e79206e6f6d696e6174696f6e207461726765747320737570706c6965642e244261645461726765740013043d0141206e6f6d696e6174696f6e207461726765742077617320737570706c69656420746861742077617320626c6f636b6564206f72206f7468657277697365206e6f7420612076616c696461746f722e4043616e6e6f744368696c6c4f74686572001404550154686520757365722068617320656e6f75676820626f6e6420616e6420746875732063616e6e6f74206265206368696c6c656420666f72636566756c6c7920627920616e2065787465726e616c20706572736f6e2e44546f6f4d616e794e6f6d696e61746f72730015084d0154686572652061726520746f6f206d616e79206e6f6d696e61746f727320696e207468652073797374656d2e20476f7665726e616e6365206e6565647320746f2061646a75737420746865207374616b696e67b473657474696e677320746f206b656570207468696e6773207361666520666f72207468652072756e74696d652e44546f6f4d616e7956616c696461746f72730016084d0154686572652061726520746f6f206d616e792076616c696461746f727320696e207468652073797374656d2e20476f7665726e616e6365206e6565647320746f2061646a75737420746865207374616b696e67b473657474696e677320746f206b656570207468696e6773207361666520666f72207468652072756e74696d652e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a09090965060c2873705f7374616b696e671c6f6666656e6365384f6666656e636544657461696c7308205265706f727465720100204f6666656e64657201c4000801206f6666656e646572c401204f6666656e6465720001247265706f7274657273dc01345665633c5265706f727465723e00006906000004089828006d06000002710600710600000408008502007506000004087906280079060c1c73705f636f72651863727970746f244b65795479706549640000040038011c5b75383b20345d00007d060c3870616c6c65745f73657373696f6e1870616c6c6574144572726f7204045400011430496e76616c696450726f6f6600000460496e76616c6964206f776e6572736869702070726f6f662e5c4e6f4173736f63696174656456616c696461746f7249640001049c4e6f206173736f6369617465642076616c696461746f7220494420666f72206163636f756e742e344475706c6963617465644b65790002046452656769737465726564206475706c6963617465206b65792e184e6f4b657973000304a44e6f206b65797320617265206173736f63696174656420776974682074686973206163636f756e742e244e6f4163636f756e7400040419014b65792073657474696e67206163636f756e74206973206e6f74206c6976652c20736f206974277320696d706f737369626c6520746f206173736f6369617465206b6579732e04744572726f7220666f72207468652073657373696f6e2070616c6c65742e8106083870616c6c65745f6772616e6470612c53746f726564537461746504044e01100110104c6976650000003050656e64696e6750617573650801307363686564756c65645f61741001044e00011464656c61791001044e000100185061757365640002003450656e64696e67526573756d650801307363686564756c65645f61741001044e00011464656c61791001044e000300008506083870616c6c65745f6772616e6470614c53746f72656450656e64696e674368616e676508044e0110144c696d697400001001307363686564756c65645f61741001044e00011464656c61791001044e0001406e6578745f617574686f7269746965738906016c426f756e646564417574686f726974794c6973743c4c696d69743e000118666f72636564790201244f7074696f6e3c4e3e0000890610346672616d655f737570706f72741c73746f72616765407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401a8045300000400a401185665633c543e00008d060c3870616c6c65745f6772616e6470611870616c6c6574144572726f7204045400011c2c50617573654661696c65640000080501417474656d707420746f207369676e616c204752414e445041207061757365207768656e2074686520617574686f72697479207365742069736e2774206c697665a42865697468657220706175736564206f7220616c72656164792070656e64696e67207061757365292e30526573756d654661696c65640001081101417474656d707420746f207369676e616c204752414e44504120726573756d65207768656e2074686520617574686f72697479207365742069736e277420706175736564a028656974686572206c697665206f7220616c72656164792070656e64696e6720726573756d65292e344368616e676550656e64696e67000204e8417474656d707420746f207369676e616c204752414e445041206368616e67652077697468206f6e6520616c72656164792070656e64696e672e1c546f6f536f6f6e000304bc43616e6e6f74207369676e616c20666f72636564206368616e676520736f20736f6f6e206166746572206c6173742e60496e76616c69644b65794f776e65727368697050726f6f66000404310141206b6579206f776e6572736869702070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e60496e76616c696445717569766f636174696f6e50726f6f660005043101416e2065717569766f636174696f6e2070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e584475706c69636174654f6666656e63655265706f727400060415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909910610346672616d655f737570706f72741c73746f72616765407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401b8045300000400950601185665633c543e00009506000002b800990610346672616d655f737570706f727418747261697473106d69736334577261707065724f7061717565040454019d06000800ad010000009d0601045400009d06084070616c6c65745f696d5f6f6e6c696e6564426f756e6465644f70617175654e6574776f726b53746174650c4c506565724964456e636f64696e674c696d697400584d756c746941646472456e636f64696e674c696d697400384164647265737365734c696d6974000008011c706565725f6964a106019c5765616b426f756e6465645665633c75382c20506565724964456e636f64696e674c696d69743e00014865787465726e616c5f616464726573736573a506012d015765616b426f756e6465645665633c5765616b426f756e6465645665633c75382c204d756c746941646472456e636f64696e674c696d69743e2c204164647265737365734c696d69740a3e0000a10610346672616d655f737570706f72741c73746f72616765407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401080453000004002801185665633c543e0000a50610346672616d655f737570706f72741c73746f72616765407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401a106045300000400a90601185665633c543e0000a906000002a10600ad060c4070616c6c65745f696d5f6f6e6c696e651870616c6c6574144572726f7204045400010828496e76616c69644b6579000004604e6f6e206578697374656e74207075626c6963206b65792e4c4475706c696361746564486561727462656174000104544475706c696361746564206865617274626561742e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909b106000002b50600b5060000040c10240000b90600000408dc1800bd06084070616c6c65745f64656d6f637261637938507265696d6167655374617475730c244163636f756e74496401001c42616c616e636501182c426c6f636b4e756d626572011001081c4d697373696e67040010012c426c6f636b4e756d62657200000024417661696c61626c651401106461746128011c5665633c75383e00012070726f76696465720001244163636f756e74496400011c6465706f73697418011c42616c616e636500011473696e636510012c426c6f636b4e756d6265720001186578706972797902014c4f7074696f6e3c426c6f636b4e756d6265723e00010000c1060c4070616c6c65745f64656d6f6372616379147479706573385265666572656e64756d496e666f0c2c426c6f636b4e756d6265720110104861736801241c42616c616e6365011801081c4f6e676f696e670400c50601b05265666572656e64756d5374617475733c426c6f636b4e756d6265722c20486173682c2042616c616e63653e0000002046696e6973686564080120617070726f766564e80110626f6f6c00010c656e6410012c426c6f636b4e756d62657200010000c5060c4070616c6c65745f64656d6f6372616379147479706573405265666572656e64756d5374617475730c2c426c6f636b4e756d6265720110104861736801241c42616c616e636501180014010c656e6410012c426c6f636b4e756d62657200013470726f706f73616c5f68617368240110486173680001247468726573686f6c64e00134566f74655468726573686f6c6400011464656c617910012c426c6f636b4e756d62657200011474616c6c79c906013854616c6c793c42616c616e63653e0000c9060c4070616c6c65745f64656d6f63726163791474797065731454616c6c79041c42616c616e63650118000c01106179657318011c42616c616e63650001106e61797318011c42616c616e636500011c7475726e6f757418011c42616c616e63650000cd060c4070616c6c65745f64656d6f637261637910766f746518566f74696e670c1c42616c616e63650118244163636f756e74496401002c426c6f636b4e756d62657201100108184469726563740c0114766f746573d10601b05665633c285265666572656e64756d496e6465782c204163636f756e74566f74653c42616c616e63653e293e00012c64656c65676174696f6e73d906015044656c65676174696f6e733c42616c616e63653e0001147072696f72dd06017c5072696f724c6f636b3c426c6f636b4e756d6265722c2042616c616e63653e0000002844656c65676174696e6714011c62616c616e636518011c42616c616e63650001187461726765740001244163636f756e744964000128636f6e76696374696f6ee9020128436f6e76696374696f6e00012c64656c65676174696f6e73d906015044656c65676174696f6e733c42616c616e63653e0001147072696f72dd06017c5072696f724c6f636b3c426c6f636b4e756d6265722c2042616c616e63653e00010000d106000002d50600d5060000040810e10200d9060c4070616c6c65745f64656d6f63726163791474797065732c44656c65676174696f6e73041c42616c616e6365011800080114766f74657318011c42616c616e636500011c6361706974616c18011c42616c616e63650000dd060c4070616c6c65745f64656d6f637261637910766f7465245072696f724c6f636b082c426c6f636b4e756d62657201101c42616c616e6365011800080010012c426c6f636b4e756d626572000018011c42616c616e63650000e1060000040824e000e5060000040810dc00e906084070616c6c65745f64656d6f63726163792052656c656173657300010408563100000000ed060c4070616c6c65745f64656d6f63726163791870616c6c6574144572726f720404540001702056616c75654c6f770000043456616c756520746f6f206c6f773c50726f706f73616c4d697373696e670001045c50726f706f73616c20646f6573206e6f742065786973743c416c726561647943616e63656c65640002049443616e6e6f742063616e63656c207468652073616d652070726f706f73616c207477696365444475706c696361746550726f706f73616c0003045450726f706f73616c20616c7265616479206d6164654c50726f706f73616c426c61636b6c69737465640004046850726f706f73616c207374696c6c20626c61636b6c6973746564444e6f7453696d706c654d616a6f72697479000504a84e6578742065787465726e616c2070726f706f73616c206e6f742073696d706c65206d616a6f726974792c496e76616c69644861736800060430496e76616c69642068617368284e6f50726f706f73616c000704504e6f2065787465726e616c2070726f706f73616c34416c72656164795665746f6564000804984964656e74697479206d6179206e6f74207665746f20612070726f706f73616c207477696365444475706c6963617465507265696d61676500090458507265696d61676520616c7265616479206e6f7465642c4e6f74496d6d696e656e74000a04304e6f7420696d6d696e656e7420546f6f4561726c79000b0424546f6f206561726c7920496d6d696e656e74000c0420496d6d696e656e743c507265696d6167654d697373696e67000d0448507265696d616765206e6f7420666f756e64445265666572656e64756d496e76616c6964000e0484566f746520676976656e20666f7220696e76616c6964207265666572656e64756d3c507265696d616765496e76616c6964000f0440496e76616c696420707265696d6167652c4e6f6e6557616974696e67001004504e6f2070726f706f73616c732077616974696e67204e6f74566f746572001104c454686520676976656e206163636f756e7420646964206e6f7420766f7465206f6e20746865207265666572656e64756d2e304e6f5065726d697373696f6e001204c8546865206163746f7220686173206e6f207065726d697373696f6e20746f20636f6e647563742074686520616374696f6e2e44416c726561647944656c65676174696e6700130488546865206163636f756e7420697320616c72656164792064656c65676174696e672e44496e73756666696369656e7446756e6473001404fc546f6f206869676820612062616c616e6365207761732070726f7669646564207468617420746865206163636f756e742063616e6e6f74206166666f72642e344e6f7444656c65676174696e67001504a0546865206163636f756e74206973206e6f742063757272656e746c792064656c65676174696e672e28566f74657345786973740016085501546865206163636f756e742063757272656e746c792068617320766f74657320617474616368656420746f20697420616e6420746865206f7065726174696f6e2063616e6e6f74207375636365656420756e74696ce87468657365206172652072656d6f7665642c20656974686572207468726f7567682060756e766f746560206f722060726561705f766f7465602e44496e7374616e744e6f74416c6c6f776564001704d854686520696e7374616e74207265666572656e64756d206f726967696e2069732063757272656e746c7920646973616c6c6f7765642e204e6f6e73656e73650018049444656c65676174696f6e20746f206f6e6573656c66206d616b6573206e6f2073656e73652e3c57726f6e675570706572426f756e6400190450496e76616c696420757070657220626f756e642e3c4d6178566f74657352656163686564001a04804d6178696d756d206e756d626572206f6620766f74657320726561636865642e40546f6f4d616e7950726f706f73616c73001b04904d6178696d756d206e756d626572206f662070726f706f73616c7320726561636865642e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909f10610346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e6465645665630804540124045300000400a10101185665633c543e0000f506084470616c6c65745f636f6c6c65637469766514566f74657308244163636f756e74496401002c426c6f636b4e756d626572011000140114696e64657810013450726f706f73616c496e6465780001247468726573686f6c6410012c4d656d626572436f756e7400011061796573dc01385665633c4163636f756e7449643e0001106e617973dc01385665633c4163636f756e7449643e00010c656e6410012c426c6f636b4e756d6265720000f9060c4470616c6c65745f636f6c6c6563746976651870616c6c6574144572726f72080454000449000128244e6f744d656d6265720000045c4163636f756e74206973206e6f742061206d656d626572444475706c696361746550726f706f73616c0001047c4475706c69636174652070726f706f73616c73206e6f7420616c6c6f7765643c50726f706f73616c4d697373696e670002044c50726f706f73616c206d7573742065786973742857726f6e67496e646578000304404d69736d61746368656420696e646578344475706c6963617465566f7465000404584475706c696361746520766f74652069676e6f72656448416c7265616479496e697469616c697a6564000504804d656d626572732061726520616c726561647920696e697469616c697a65642120546f6f4561726c79000604010154686520636c6f73652063616c6c20776173206d61646520746f6f206561726c792c206265666f72652074686520656e64206f662074686520766f74696e672e40546f6f4d616e7950726f706f73616c73000704fc54686572652063616e206f6e6c792062652061206d6178696d756d206f6620604d617850726f706f73616c7360206163746976652070726f706f73616c732e4c57726f6e6750726f706f73616c576569676874000804d054686520676976656e2077656967687420626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e4c57726f6e6750726f706f73616c4c656e677468000904d054686520676976656e206c656e67746820626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909fd0610346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e6465645665630804540124045300000400a10101185665633c543e000001070c4470616c6c65745f636f6c6c6563746976651870616c6c6574144572726f72080454000449000128244e6f744d656d6265720000045c4163636f756e74206973206e6f742061206d656d626572444475706c696361746550726f706f73616c0001047c4475706c69636174652070726f706f73616c73206e6f7420616c6c6f7765643c50726f706f73616c4d697373696e670002044c50726f706f73616c206d7573742065786973742857726f6e67496e646578000304404d69736d61746368656420696e646578344475706c6963617465566f7465000404584475706c696361746520766f74652069676e6f72656448416c7265616479496e697469616c697a6564000504804d656d626572732061726520616c726561647920696e697469616c697a65642120546f6f4561726c79000604010154686520636c6f73652063616c6c20776173206d61646520746f6f206561726c792c206265666f72652074686520656e64206f662074686520766f74696e672e40546f6f4d616e7950726f706f73616c73000704fc54686572652063616e206f6e6c792062652061206d6178696d756d206f6620604d617850726f706f73616c7360206163746976652070726f706f73616c732e4c57726f6e6750726f706f73616c576569676874000804d054686520676976656e2077656967687420626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e4c57726f6e6750726f706f73616c4c656e677468000904d054686520676976656e206c656e67746820626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a09090905070000020907000907086470616c6c65745f656c656374696f6e735f70687261676d656e2853656174486f6c64657208244163636f756e74496401001c42616c616e63650118000c010c77686f0001244163636f756e7449640001147374616b6518011c42616c616e636500011c6465706f73697418011c42616c616e636500000d07086470616c6c65745f656c656374696f6e735f70687261676d656e14566f74657208244163636f756e74496401001c42616c616e63650118000c0114766f746573dc01385665633c4163636f756e7449643e0001147374616b6518011c42616c616e636500011c6465706f73697418011c42616c616e6365000011070c6470616c6c65745f656c656374696f6e735f70687261676d656e1870616c6c6574144572726f7204045400014430556e61626c65546f566f7465000004c043616e6e6f7420766f7465207768656e206e6f2063616e64696461746573206f72206d656d626572732065786973742e1c4e6f566f746573000104944d75737420766f746520666f72206174206c65617374206f6e652063616e6469646174652e30546f6f4d616e79566f7465730002048443616e6e6f7420766f7465206d6f7265207468616e2063616e646964617465732e504d6178696d756d566f74657345786365656465640003049843616e6e6f7420766f7465206d6f7265207468616e206d6178696d756d20616c6c6f7765642e284c6f7742616c616e6365000404c443616e6e6f7420766f74652077697468207374616b65206c657373207468616e206d696e696d756d2062616c616e63652e3c556e61626c65546f506179426f6e6400050478566f7465722063616e206e6f742070617920766f74696e6720626f6e642e2c4d7573744265566f746572000604404d757374206265206120766f7465722e285265706f727453656c660007044c43616e6e6f74207265706f72742073656c662e4c4475706c69636174656443616e646964617465000804804475706c6963617465642063616e646964617465207375626d697373696f6e2e304d656d6265725375626d6974000904884d656d6265722063616e6e6f742072652d7375626d69742063616e6469646163792e3852756e6e657255705375626d6974000a048852756e6e65722063616e6e6f742072652d7375626d69742063616e6469646163792e68496e73756666696369656e7443616e64696461746546756e6473000b049443616e64696461746520646f6573206e6f74206861766520656e6f7567682066756e64732e244e6f744d656d626572000c04344e6f742061206d656d6265722e48496e76616c69645769746e65737344617461000d04e05468652070726f766964656420636f756e74206f66206e756d626572206f662063616e6469646174657320697320696e636f72726563742e40496e76616c6964566f7465436f756e74000e04cc5468652070726f766964656420636f756e74206f66206e756d626572206f6620766f74657320697320696e636f72726563742e44496e76616c696452656e6f756e63696e67000f04fc5468652072656e6f756e63696e67206f726967696e2070726573656e74656420612077726f6e67206052656e6f756e63696e676020706172616d657465722e48496e76616c69645265706c6163656d656e74001004fc50726564696374696f6e20726567617264696e67207265706c6163656d656e74206166746572206d656d6265722072656d6f76616c2069732077726f6e672e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a09090915070c4470616c6c65745f6d656d626572736869701870616c6c6574144572726f7208045400044900010834416c72656164794d656d62657200000444416c72656164792061206d656d6265722e244e6f744d656d626572000104344e6f742061206d656d6265722e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a0909091907083c70616c6c65745f74726561737572792050726f706f73616c08244163636f756e74496401001c42616c616e636501180010012070726f706f7365720001244163636f756e74496400011476616c756518011c42616c616e636500012c62656e65666963696172790001244163636f756e744964000110626f6e6418011c42616c616e636500001d0710346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e6465645665630804540110045300000400750201185665633c543e000021070c3473705f61726974686d65746963287065725f7468696e67731c5065726d696c6c0000040010010c7533320000250708346672616d655f737570706f72742050616c6c6574496400000400f501011c5b75383b20385d000029070c3c70616c6c65745f74726561737572791870616c6c6574144572726f7208045400044900010c70496e73756666696369656e7450726f706f7365727342616c616e63650000047850726f706f73657227732062616c616e636520697320746f6f206c6f772e30496e76616c6964496e646578000104904e6f2070726f706f73616c206f7220626f756e7479206174207468617420696e6465782e40546f6f4d616e79417070726f76616c7300020480546f6f206d616e7920617070726f76616c7320696e207468652071756575652e04784572726f7220666f72207468652074726561737572792070616c6c65742e2d07105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e18636c61696d731870616c6c6574144572726f7204045400011860496e76616c6964457468657265756d5369676e61747572650000046c496e76616c696420457468657265756d207369676e61747572652e405369676e65724861734e6f436c61696d00010478457468657265756d206164647265737320686173206e6f20636c61696d2e4053656e6465724861734e6f436c61696d000204b04163636f756e742049442073656e64696e67207472616e73616374696f6e20686173206e6f20636c61696d2e30506f74556e646572666c6f77000308610154686572652773206e6f7420656e6f75676820696e2074686520706f7420746f20706179206f757420736f6d6520756e76657374656420616d6f756e742e2047656e6572616c6c7920696d706c6965732061206c6f676963186572726f722e40496e76616c696453746174656d656e740004049041206e65656465642073746174656d656e7420776173206e6f7420696e636c756465642e4c56657374656442616c616e6365457869737473000504a4546865206163636f756e7420616c7265616479206861732061207665737465642062616c616e63652e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909310710346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e646564566563080454012903045300000400350701185665633c543e000035070000022903003907083870616c6c65745f76657374696e672052656c6561736573000108085630000000085631000100003d070c3870616c6c65745f76657374696e671870616c6c6574144572726f72040454000114284e6f7456657374696e6700000484546865206163636f756e7420676976656e206973206e6f742076657374696e672e5441744d617856657374696e675363686564756c65730001082501546865206163636f756e7420616c72656164792068617320604d617856657374696e675363686564756c65736020636f756e74206f66207363686564756c657320616e642074687573510163616e6e6f742061646420616e6f74686572206f6e652e20436f6e7369646572206d657267696e67206578697374696e67207363686564756c657320696e206f7264657220746f2061646420616e6f746865722e24416d6f756e744c6f770002040501416d6f756e74206265696e67207472616e7366657272656420697320746f6f206c6f7720746f2063726561746520612076657374696e67207363686564756c652e605363686564756c65496e6465784f75744f66426f756e6473000304d0416e20696e64657820776173206f7574206f6620626f756e6473206f66207468652076657374696e67207363686564756c65732e54496e76616c69645363686564756c65506172616d730004040d014661696c656420746f206372656174652061206e6577207363686564756c65206265636175736520736f6d6520706172616d657465722077617320696e76616c69642e04744572726f7220666f72207468652076657374696e672070616c6c65742e41070c3870616c6c65745f7574696c6974791870616c6c6574144572726f7204045400010430546f6f4d616e7943616c6c730000045c546f6f206d616e792063616c6c7320626174636865642e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a09090945070c3c70616c6c65745f6964656e7469747914747970657330526567697374726174696f6e0c1c42616c616e63650118344d61784a756467656d656e7473004c4d61784164646974696f6e616c4669656c647300000c01286a756467656d656e7473490701fc426f756e6465645665633c28526567697374726172496e6465782c204a756467656d656e743c42616c616e63653e292c204d61784a756467656d656e74733e00011c6465706f73697418011c42616c616e6365000110696e666f390301844964656e74697479496e666f3c4d61784164646974696f6e616c4669656c64733e0000490710346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e646564566563080454014d07045300000400510701185665633c543e00004d070000040810d1030051070000024d070055070000040818590700590710346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e6465645665630804540100045300000400dc01185665633c543e00005d0710346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e646564566563080454016107045300000400690701185665633c543e0000610704184f7074696f6e0404540165070108104e6f6e6500000010536f6d6504006507000001000065070c3c70616c6c65745f6964656e7469747914747970657334526567697374726172496e666f081c42616c616e63650118244163636f756e7449640100000c011c6163636f756e740001244163636f756e74496400010c66656518011c42616c616e63650001186669656c6473c90301384964656e746974794669656c6473000069070000026107006d070c3c70616c6c65745f6964656e746974791870616c6c6574144572726f7204045400014048546f6f4d616e795375624163636f756e74730000045c546f6f206d616e7920737562732d6163636f756e74732e204e6f74466f756e64000104504163636f756e742069736e277420666f756e642e204e6f744e616d6564000204504163636f756e742069736e2774206e616d65642e28456d707479496e64657800030430456d70747920696e6465782e284665654368616e6765640004043c466565206973206368616e6765642e284e6f4964656e74697479000504484e6f206964656e7469747920666f756e642e3c537469636b794a756467656d656e7400060444537469636b79206a756467656d656e742e384a756467656d656e74476976656e000704404a756467656d656e7420676976656e2e40496e76616c69644a756467656d656e7400080448496e76616c6964206a756467656d656e742e30496e76616c6964496e6465780009045454686520696e64657820697320696e76616c69642e34496e76616c6964546172676574000a04585468652074617267657420697320696e76616c69642e34546f6f4d616e794669656c6473000b046c546f6f206d616e79206164646974696f6e616c206669656c64732e44546f6f4d616e7952656769737472617273000c04e84d6178696d756d20616d6f756e74206f66207265676973747261727320726561636865642e2043616e6e6f742061646420616e79206d6f72652e38416c7265616479436c61696d6564000d04704163636f756e7420494420697320616c7265616479206e616d65642e184e6f74537562000e047053656e646572206973206e6f742061207375622d6163636f756e742e204e6f744f776e6564000f04885375622d6163636f756e742069736e2774206f776e65642062792073656e6465722e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a09090971070000040875071800750710346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e6465645665630804540179070453000004007d0701185665633c543e00007907083070616c6c65745f70726f78793c50726f7879446566696e6974696f6e0c244163636f756e74496401002450726f7879547970650121012c426c6f636b4e756d6265720110000c012064656c65676174650001244163636f756e74496400012870726f78795f747970652101012450726f78795479706500011464656c617910012c426c6f636b4e756d62657200007d0700000279070081070000040885071800850710346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e6465645665630804540189070453000004008d0701185665633c543e00008907083070616c6c65745f70726f787930416e6e6f756e63656d656e740c244163636f756e7449640100104861736801242c426c6f636b4e756d6265720110000c01107265616c0001244163636f756e74496400012463616c6c5f686173682401104861736800011868656967687410012c426c6f636b4e756d62657200008d0700000289070091070c3070616c6c65745f70726f78791870616c6c6574144572726f720404540001201c546f6f4d616e79000004210154686572652061726520746f6f206d616e792070726f786965732072656769737465726564206f7220746f6f206d616e7920616e6e6f756e63656d656e74732070656e64696e672e204e6f74466f756e640001047450726f787920726567697374726174696f6e206e6f7420666f756e642e204e6f7450726f7879000204cc53656e646572206973206e6f7420612070726f7879206f6620746865206163636f756e7420746f2062652070726f786965642e2c556e70726f787961626c650003042101412063616c6c20776869636820697320696e636f6d70617469626c652077697468207468652070726f7879207479706527732066696c7465722077617320617474656d707465642e244475706c69636174650004046c4163636f756e7420697320616c726561647920612070726f78792e304e6f5065726d697373696f6e000504150143616c6c206d6179206e6f74206265206d6164652062792070726f78792062656361757365206974206d617920657363616c617465206974732070726976696c656765732e2c556e616e6e6f756e636564000604d0416e6e6f756e63656d656e742c206966206d61646520617420616c6c2c20776173206d61646520746f6f20726563656e746c792e2c4e6f53656c6650726f78790007046443616e6e6f74206164642073656c662061732070726f78792e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a0909099507000004080004009907083c70616c6c65745f6d756c7469736967204d756c74697369670c2c426c6f636b4e756d62657201101c42616c616e63650118244163636f756e7449640100001001107768656e2d01015854696d65706f696e743c426c6f636b4e756d6265723e00011c6465706f73697418011c42616c616e63650001246465706f7369746f720001244163636f756e744964000124617070726f76616c73dc01385665633c4163636f756e7449643e00009d070000040c28001800a1070c3c70616c6c65745f6d756c74697369671870616c6c6574144572726f72040454000138404d696e696d756d5468726573686f6c640000047c5468726573686f6c64206d7573742062652032206f7220677265617465722e3c416c7265616479417070726f766564000104ac43616c6c20697320616c726561647920617070726f7665642062792074686973207369676e61746f72792e444e6f417070726f76616c734e65656465640002049c43616c6c20646f65736e2774206e65656420616e7920286d6f72652920617070726f76616c732e44546f6f4665775369676e61746f72696573000304a854686572652061726520746f6f20666577207369676e61746f7269657320696e20746865206c6973742e48546f6f4d616e795369676e61746f72696573000404ac54686572652061726520746f6f206d616e79207369676e61746f7269657320696e20746865206c6973742e545369676e61746f726965734f75744f664f726465720005040d01546865207369676e61746f7269657320776572652070726f7669646564206f7574206f66206f726465723b20746865792073686f756c64206265206f7264657265642e4c53656e646572496e5369676e61746f726965730006040d015468652073656e6465722077617320636f6e7461696e656420696e20746865206f74686572207369676e61746f726965733b2069742073686f756c646e27742062652e204e6f74466f756e64000704dc4d756c7469736967206f7065726174696f6e206e6f7420666f756e64207768656e20617474656d7074696e6720746f2063616e63656c2e204e6f744f776e65720008042d014f6e6c7920746865206163636f756e742074686174206f726967696e616c6c79206372656174656420746865206d756c74697369672069732061626c6520746f2063616e63656c2069742e2c4e6f54696d65706f696e740009041d014e6f2074696d65706f696e742077617320676976656e2c2079657420746865206d756c7469736967206f7065726174696f6e20697320616c726561647920756e6465727761792e3857726f6e6754696d65706f696e74000a042d014120646966666572656e742074696d65706f696e742077617320676976656e20746f20746865206d756c7469736967206f7065726174696f6e207468617420697320756e6465727761792e4c556e657870656374656454696d65706f696e74000b04f4412074696d65706f696e742077617320676976656e2c20796574206e6f206d756c7469736967206f7065726174696f6e20697320756e6465727761792e3c4d6178576569676874546f6f4c6f77000c04d0546865206d6178696d756d2077656967687420696e666f726d6174696f6e2070726f76696465642077617320746f6f206c6f772e34416c726561647953746f726564000d04a0546865206461746120746f2062652073746f72656420697320616c72656164792073746f7265642e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909a507083c70616c6c65745f626f756e7469657318426f756e74790c244163636f756e74496401001c42616c616e636501182c426c6f636b4e756d62657201100018012070726f706f7365720001244163636f756e74496400011476616c756518011c42616c616e636500010c66656518011c42616c616e636500013c63757261746f725f6465706f73697418011c42616c616e6365000110626f6e6418011c42616c616e6365000118737461747573a9070190426f756e74795374617475733c4163636f756e7449642c20426c6f636b4e756d6265723e0000a907083c70616c6c65745f626f756e7469657330426f756e747953746174757308244163636f756e74496401002c426c6f636b4e756d626572011001182050726f706f73656400000020417070726f7665640001001846756e6465640002003c43757261746f7250726f706f73656404011c63757261746f720001244163636f756e7449640003001841637469766508011c63757261746f720001244163636f756e7449640001287570646174655f64756510012c426c6f636b4e756d6265720004003450656e64696e675061796f75740c011c63757261746f720001244163636f756e74496400012c62656e65666963696172790001244163636f756e744964000124756e6c6f636b5f617410012c426c6f636b4e756d62657200050000ad070c3c70616c6c65745f626f756e746965731870616c6c6574144572726f7204045400012470496e73756666696369656e7450726f706f7365727342616c616e63650000047850726f706f73657227732062616c616e636520697320746f6f206c6f772e30496e76616c6964496e646578000104904e6f2070726f706f73616c206f7220626f756e7479206174207468617420696e6465782e30526561736f6e546f6f4269670002048454686520726561736f6e20676976656e206973206a75737420746f6f206269672e40556e65787065637465645374617475730003048054686520626f756e74792073746174757320697320756e65787065637465642e385265717569726543757261746f720004045c5265717569726520626f756e74792063757261746f722e30496e76616c696456616c756500050454496e76616c696420626f756e74792076616c75652e28496e76616c69644665650006044c496e76616c696420626f756e7479206665652e3450656e64696e675061796f75740007086c4120626f756e7479207061796f75742069732070656e64696e672ef8546f2063616e63656c2074686520626f756e74792c20796f75206d75737420756e61737369676e20616e6420736c617368207468652063757261746f722e245072656d6174757265000804450154686520626f756e746965732063616e6e6f7420626520636c61696d65642f636c6f73656420626563617573652069742773207374696c6c20696e2074686520636f756e74646f776e20706572696f642e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909b107082c70616c6c65745f746970731c4f70656e54697010244163636f756e74496401001c42616c616e636501182c426c6f636b4e756d626572011010486173680124001c0118726561736f6e2401104861736800010c77686f0001244163636f756e74496400011866696e6465720001244163636f756e74496400011c6465706f73697418011c42616c616e6365000118636c6f7365737902014c4f7074696f6e3c426c6f636b4e756d6265723e00011074697073f401645665633c284163636f756e7449642c2042616c616e6365293e00012c66696e646572735f666565e80110626f6f6c0000b5070c2c70616c6c65745f746970731870616c6c6574144572726f7204045400011830526561736f6e546f6f4269670000048454686520726561736f6e20676976656e206973206a75737420746f6f206269672e30416c72656164794b6e6f776e00010488546865207469702077617320616c726561647920666f756e642f737461727465642e28556e6b6e6f776e5469700002046054686520746970206861736820697320756e6b6e6f776e2e244e6f7446696e6465720003041d01546865206163636f756e7420617474656d7074696e6720746f20726574726163742074686520746970206973206e6f74207468652066696e646572206f6620746865207469702e245374696c6c4f70656e0004042901546865207469702063616e6e6f7420626520636c61696d65642f636c6f736564206265636175736520746865726520617265206e6f7420656e6f7567682074697070657273207965742e245072656d61747572650005043101546865207469702063616e6e6f7420626520636c61696d65642f636c6f73656420626563617573652069742773207374696c6c20696e2074686520636f756e74646f776e20706572696f642e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909b907089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173651450686173650408426e011001100c4f6666000000185369676e656400010020556e7369676e65640400bd07012828626f6f6c2c20426e2900020024456d657267656e637900030000bd0700000408e81000c107089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f7068617365345265616479536f6c7574696f6e0404410100000c0120737570706f727473cd04012c537570706f7274733c413e00011473636f7265c1040134456c656374696f6e53636f726500011c636f6d707574653d01013c456c656374696f6e436f6d707574650000c507089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f706861736534526f756e64536e617073686f74040441010000080118766f74657273c90701705665633c28412c20566f74655765696768742c205665633c413e293e00011c74617267657473dc01185665633c413e0000c907000002cd0700cd070000040c0020dc00d10710346672616d655f737570706f72741c73746f7261676544626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b01c10404560110045300000400d507013842547265654d61703c4b2c20563e0000d507042042547265654d617008044b01c10404560110000400d907000000d907000002dd0700dd0700000408c1041000e1070c9070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f7068617365187369676e6564405369676e65645375626d697373696f6e0c244163636f756e74496401001c42616c616e6365011820536f6c7574696f6e01f5030010010c77686f0001244163636f756e74496400011c6465706f73697418011c42616c616e63650001307261775f736f6c7574696f6ef1030154526177536f6c7574696f6e3c536f6c7574696f6e3e00011872657761726418011c42616c616e63650000e5070c9070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173651870616c6c6574144572726f7204045400012c6850726544697370617463684561726c795375626d697373696f6e000004645375626d697373696f6e2077617320746f6f206561726c792e6c507265446973706174636857726f6e6757696e6e6572436f756e740001048857726f6e67206e756d626572206f662077696e6e6572732070726573656e7465642e6450726544697370617463685765616b5375626d697373696f6e000204905375626d697373696f6e2077617320746f6f207765616b2c2073636f72652d776973652e3c5369676e6564517565756546756c6c0003044901546865207175657565207761732066756c6c2c20616e642074686520736f6c7574696f6e20776173206e6f7420626574746572207468616e20616e79206f6620746865206578697374696e67206f6e65732e585369676e656443616e6e6f745061794465706f73697400040494546865206f726967696e206661696c656420746f2070617920746865206465706f7369742e505369676e6564496e76616c69645769746e657373000504a05769746e657373206461746120746f20646973706174636861626c6520697320696e76616c69642e4c5369676e6564546f6f4d756368576569676874000604b8546865207369676e6564207375626d697373696f6e20636f6e73756d657320746f6f206d756368207765696768743c4f637743616c6c57726f6e67457261000704984f4357207375626d697474656420736f6c7574696f6e20666f722077726f6e6720726f756e645c4d697373696e67536e617073686f744d65746164617461000804a8536e617073686f74206d657461646174612073686f756c6420657869737420627574206469646e27742e58496e76616c69645375626d697373696f6e496e646578000904d06053656c663a3a696e736572745f7375626d697373696f6e602072657475726e656420616e20696e76616c696420696e6465782e3843616c6c4e6f74416c6c6f776564000a04985468652063616c6c206973206e6f7420616c6c6f776564206174207468697320706f696e742e040d014572726f72206f66207468652070616c6c657420746861742063616e2062652072657475726e656420696e20726573706f6e736520746f20646973706174636865732ee9070c6c706f6c6b61646f745f72756e74696d655f70617261636861696e7334636f6e66696775726174696f6e44486f7374436f6e66696775726174696f6e042c426c6f636b4e756d626572011000a001346d61785f636f64655f73697a6510010c7533320001486d61785f686561645f646174615f73697a6510010c7533320001586d61785f7570776172645f71756575655f636f756e7410010c7533320001546d61785f7570776172645f71756575655f73697a6510010c75333200015c6d61785f7570776172645f6d6573736167655f73697a6510010c7533320001906d61785f7570776172645f6d6573736167655f6e756d5f7065725f63616e64696461746510010c75333200018868726d705f6d61785f6d6573736167655f6e756d5f7065725f63616e64696461746510010c75333200017076616c69646174696f6e5f757067726164655f6672657175656e637910012c426c6f636b4e756d62657200016076616c69646174696f6e5f757067726164655f64656c617910012c426c6f636b4e756d6265720001306d61785f706f765f73697a6510010c7533320001646d61785f646f776e776172645f6d6573736167655f73697a6510010c753332000160756d705f736572766963655f746f74616c5f77656967687420011857656967687400019068726d705f6d61785f70617261636861696e5f6f7574626f756e645f6368616e6e656c7310010c75333200019468726d705f6d61785f706172617468726561645f6f7574626f756e645f6368616e6e656c7310010c75333200014c68726d705f73656e6465725f6465706f73697418011c42616c616e636500015868726d705f726563697069656e745f6465706f73697418011c42616c616e636500016468726d705f6368616e6e656c5f6d61785f636170616369747910010c75333200016c68726d705f6368616e6e656c5f6d61785f746f74616c5f73697a6510010c75333200018c68726d705f6d61785f70617261636861696e5f696e626f756e645f6368616e6e656c7310010c75333200019068726d705f6d61785f706172617468726561645f696e626f756e645f6368616e6e656c7310010c75333200017468726d705f6368616e6e656c5f6d61785f6d6573736167655f73697a6510010c753332000154636f64655f726574656e74696f6e5f706572696f6410012c426c6f636b4e756d626572000140706172617468726561645f636f72657310010c753332000148706172617468726561645f7265747269657310010c75333200016067726f75705f726f746174696f6e5f6672657175656e637910012c426c6f636b4e756d626572000164636861696e5f617661696c6162696c6974795f706572696f6410012c426c6f636b4e756d6265720001687468726561645f617661696c6162696c6974795f706572696f6410012c426c6f636b4e756d6265720001507363686564756c696e675f6c6f6f6b616865616410010c75333200015c6d61785f76616c696461746f72735f7065725f636f72657902012c4f7074696f6e3c7533323e0001386d61785f76616c696461746f72737902012c4f7074696f6e3c7533323e000138646973707574655f706572696f6410013053657373696f6e496e6465780001a4646973707574655f706f73745f636f6e636c7573696f6e5f616363657074616e63655f706572696f6410012c426c6f636b4e756d626572000158646973707574655f6d61785f7370616d5f736c6f747310010c753332000194646973707574655f636f6e636c7573696f6e5f62795f74696d655f6f75745f706572696f6410012c426c6f636b4e756d6265720001346e6f5f73686f775f736c6f747310010c7533320001406e5f64656c61795f7472616e6368657310010c7533320001687a65726f74685f64656c61795f7472616e6368655f776964746810010c7533320001406e65656465645f617070726f76616c7310010c75333200016072656c61795f7672665f6d6f64756c6f5f73616d706c657310010c753332000164756d705f6d61785f696e646976696475616c5f7765696768742001185765696768740000ed07106c706f6c6b61646f745f72756e74696d655f70617261636861696e7334636f6e66696775726174696f6e1870616c6c6574144572726f720404540001043c496e76616c69644e657756616c7565000004dc546865206e65772076616c756520666f72206120636f6e66696775726174696f6e20706172616d6574657220697320696e76616c69642e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909f107000002010500f507000002890200f9070c6c706f6c6b61646f745f72756e74696d655f70617261636861696e7324696e636c7573696f6e68417661696c6162696c6974794269746669656c645265636f726404044e0110000801206269746669656c64f5040150417661696c6162696c6974794269746669656c640001307375626d69747465645f61741001044e0000fd070c6c706f6c6b61646f745f72756e74696d655f70617261636861696e7324696e636c7573696f6e7043616e64696461746550656e64696e67417661696c6162696c6974790804480124044e011000200110636f72656d010124436f7265496e646578000110686173683905013443616e6469646174654861736800012864657363726970746f724d01015843616e64696461746544657363726970746f723c483e000148617661696c6162696c6974795f766f746573f90401604269745665633c4269744f726465724c7362302c2075383e00011c6261636b657273f90401604269745665633c4269744f726465724c7362302c2075383e00014c72656c61795f706172656e745f6e756d6265721001044e0001406261636b65645f696e5f6e756d6265721001044e0001346261636b696e675f67726f75707101012847726f7570496e64657800000108106c706f6c6b61646f745f72756e74696d655f70617261636861696e7324696e636c7573696f6e1870616c6c6574144572726f720404540001644457726f6e674269746669656c6453697a65000004a8417661696c6162696c697479206269746669656c642068617320756e65787065637465642073697a652e704269746669656c644475706c69636174654f72556e6f7264657265640001044d014d756c7469706c65206269746669656c6473207375626d69747465642062792073616d652076616c696461746f72206f722076616c696461746f7273206f7574206f66206f7264657220627920696e6465782e6456616c696461746f72496e6465784f75744f66426f756e64730002047856616c696461746f7220696e646578206f7574206f6620626f756e64732e60496e76616c69644269746669656c645369676e617475726500030444496e76616c6964207369676e617475726550556e7363686564756c656443616e646964617465000404ac43616e646964617465207375626d6974746564206275742070617261206e6f74207363686564756c65642e8043616e6469646174655363686564756c65644265666f72655061726146726565000504310143616e646964617465207363686564756c656420646573706974652070656e64696e672063616e64696461746520616c7265616479206578697374696e6720666f722074686520706172612e3457726f6e67436f6c6c61746f72000604ac43616e64696461746520696e636c756465642077697468207468652077726f6e6720636f6c6c61746f722e4c5363686564756c65644f75744f664f72646572000704745363686564756c656420636f726573206f7574206f66206f726465722e404865616444617461546f6f4c61726765000804a448656164206461746120657863656564732074686520636f6e66696775726564206d6178696d756d2e505072656d6174757265436f64655570677261646500090464436f64652075706772616465207072656d61747572656c792e3c4e6577436f6465546f6f4c61726765000a04604f757470757420636f646520697320746f6f206c617267656c43616e6469646174654e6f74496e506172656e74436f6e74657874000b048043616e646964617465206e6f7420696e20706172656e7420636f6e746578742e5c556e6f63637570696564426974496e4269746669656c64000c042101546865206269746669656c6420636f6e7461696e732061206269742072656c6174696e6720746f20616e20756e61737369676e656420617661696c6162696c69747920636f72652e44496e76616c696447726f7570496e646578000d049c496e76616c69642067726f757020696e64657820696e20636f72652061737369676e6d656e742e4c496e73756666696369656e744261636b696e67000e0490496e73756666696369656e7420286e6f6e2d6d616a6f7269747929206261636b696e672e38496e76616c69644261636b696e67000f04e4496e76616c69642028626164207369676e61747572652c20756e6b6e6f776e2076616c696461746f722c206574632e29206261636b696e672e444e6f74436f6c6c61746f725369676e656400100468436f6c6c61746f7220646964206e6f74207369676e20506f562e6856616c69646174696f6e44617461486173684d69736d61746368001104c45468652076616c69646174696f6e2064617461206861736820646f6573206e6f74206d617463682065787065637465642e34496e7465726e616c4572726f720012040501496e7465726e616c206572726f72206f6e6c792072657475726e6564207768656e20636f6d70696c6564207769746820646562756720617373657274696f6e732e80496e636f7272656374446f776e776172644d65737361676548616e646c696e67001304d854686520646f776e77617264206d657373616765207175657565206973206e6f742070726f63657373656420636f72726563746c792e54496e76616c69645570776172644d657373616765730014041d014174206c65617374206f6e6520757077617264206d6573736167652073656e7420646f6573206e6f7420706173732074686520616363657074616e63652063726974657269612e6048726d7057617465726d61726b4d697368616e646c696e6700150411015468652063616e646964617465206469646e277420666f6c6c6f77207468652072756c6573206f662048524d502077617465726d61726b20616476616e63656d656e742e4c496e76616c69644f7574626f756e6448726d70001604d45468652048524d50206d657373616765732073656e74206279207468652063616e646964617465206973206e6f742076616c69642e64496e76616c696456616c69646174696f6e436f646548617368001704dc5468652076616c69646174696f6e20636f64652068617368206f66207468652063616e646964617465206973206e6f742076616c69642e4050617261486561644d69736d6174636800180899015468652060706172615f6865616460206861736820696e207468652063616e6469646174652064657363726970746f7220646f65736e2774206d61746368207468652068617368206f66207468652061637475616c2070617261206865616420696e2074686530636f6d6d69746d656e74732e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a0909090508106c706f6c6b61646f745f72756e74696d655f70617261636861696e733870617261735f696e686572656e741870616c6c6574144572726f7204045400010c64546f6f4d616e79496e636c7573696f6e496e686572656e7473000004cc496e636c7573696f6e20696e686572656e742063616c6c6564206d6f7265207468616e206f6e63652070657220626c6f636b2e4c496e76616c6964506172656e7448656164657200010855015468652068617368206f6620746865207375626d697474656420706172656e742068656164657220646f65736e277420636f72726573706f6e6420746f2074686520736176656420626c6f636b2068617368206f662c74686520706172656e742e6443616e646964617465436f6e636c75646564496e76616c6964000204b844697370757465642063616e64696461746520746861742077617320636f6e636c7564656420696e76616c69642e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a0909090908000002f107000d080c6c706f6c6b61646f745f72756e74696d655f70617261636861696e73247363686564756c65725050617261746872656164436c61696d517565756500000801147175657565110801545665633c517565756564506172617468726561643e0001406e6578745f636f72655f6f666673657410010c7533320000110800000215080015080c6c706f6c6b61646f745f72756e74696d655f70617261636861696e73247363686564756c657240517565756564506172617468726561640000080114636c61696d1908013c50617261746872656164456e74727900012c636f72655f6f666673657410010c753332000019080c4c706f6c6b61646f745f7072696d6974697665730876313c50617261746872656164456e7472790000080114636c61696d1d08013c50617261746872656164436c61696d00011c7265747269657310010c75333200001d080c4c706f6c6b61646f745f7072696d6974697665730876313c50617261746872656164436c61696d00000800510101084964000055010128436f6c6c61746f72496400002108000002250800250804184f7074696f6e0404540129080108104e6f6e6500000010536f6d6504002908000001000029080c4c706f6c6b61646f745f7072696d69746976657308763130436f72654f63637570696564000108285061726174687265616404001908013c50617261746872656164456e7472790000002450617261636861696e000100002d08000002510100310800000235080035080c6c706f6c6b61646f745f72756e74696d655f70617261636861696e73247363686564756c657238436f726541737369676e6d656e740000100110636f72656d010124436f7265496e64657800011c706172615f6964510101185061726149640001106b696e643908013841737369676e6d656e744b696e6400012467726f75705f6964787101012847726f7570496e646578000039080c6c706f6c6b61646f745f72756e74696d655f70617261636861696e73247363686564756c65723841737369676e6d656e744b696e640001082450617261636861696e0000002850617261746872656164080055010128436f6c6c61746f724964000010010c753332000100003d080c6c706f6c6b61646f745f72756e74696d655f70617261636861696e7314706172617334506172614c6966656379636c6500011c284f6e626f617264696e6700000028506172617468726561640001002450617261636861696e0002004c557067726164696e675061726174687265616400030050446f776e67726164696e6750617261636861696e000400544f6666626f617264696e6750617261746872656164000500504f6666626f617264696e6750617261636861696e000600004108000004085101100045080c6c706f6c6b61646f745f72756e74696d655f70617261636861696e73147061726173405061726150617374436f64654d65746104044e011000080134757067726164655f74696d6573490801605665633c5265706c6163656d656e7454696d65733c4e3e3e00012c6c6173745f7072756e6564790201244f7074696f6e3c4e3e000049080000024d08004d080c6c706f6c6b61646f745f72756e74696d655f70617261636861696e73147061726173405265706c6163656d656e7454696d657304044e01100008012c65787065637465645f61741001044e0001306163746976617465645f61741001044e0000510800000241080055080c4c706f6c6b61646f745f7072696d6974697665730876313855706772616465476f41686561640001081441626f72740000001c476f41686561640001000059080c4c706f6c6b61646f745f7072696d69746976657308763148557067726164655265737472696374696f6e0001041c50726573656e74000000005d080c6c706f6c6b61646f745f72756e74696d655f70617261636861696e731470617261733c5061726147656e657369734172677300000c013067656e657369735f6865616469010120486561644461746100013c76616c69646174696f6e5f636f64652505013856616c69646174696f6e436f646500012470617261636861696ee80110626f6f6c00006108106c706f6c6b61646f745f72756e74696d655f70617261636861696e731470617261731870616c6c6574144572726f72040454000114344e6f74526567697374657265640000049450617261206973206e6f74207265676973746572656420696e206f75722073797374656d2e3443616e6e6f744f6e626f6172640001041501506172612063616e6e6f74206265206f6e626f6172646564206265636175736520697420697320616c726561647920747261636b6564206279206f75722073797374656d2e3843616e6e6f744f6666626f6172640002049c506172612063616e6e6f74206265206f6666626f617264656420617420746869732074696d652e3443616e6e6f74557067726164650003049c506172612063616e6e6f7420626520757067726164656420746f20612070617261636861696e2e3c43616e6e6f74446f776e6772616465000404a8506172612063616e6e6f7420626520646f776e67726164656420746f206120706172617468726561642e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909650800000269080069080c6c706f6c6b61646f745f72756e74696d655f70617261636861696e732c696e697469616c697a657254427566666572656453657373696f6e4368616e676500000c012876616c696461746f7273f50701405665633c56616c696461746f7249643e000118717565756564f50701405665633c56616c696461746f7249643e00013473657373696f6e5f696e64657810013053657373696f6e496e64657800006d0800000271080071080860706f6c6b61646f745f636f72655f7072696d69746976657358496e626f756e64446f776e776172644d657373616765042c426c6f636b4e756d62657201100008011c73656e745f617410012c426c6f636b4e756d62657200010c6d736728013c446f776e776172644d6573736167650000750800000408510128007908106c706f6c6b61646f745f72756e74696d655f70617261636861696e730c756d701870616c6c6574144572726f720404540001084c556e6b6e6f776e4d657373616765496e6465780000048c546865206d65737361676520696e64657820676976656e20697320756e6b6e6f776e2e3c5765696768744f7665724c696d6974000104310154686520616d6f756e74206f662077656967687420676976656e20697320706f737369626c79206e6f7420656e6f75676820666f7220657865637574696e6720746865206d6573736167652e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a0909097d080c6c706f6c6b61646f745f72756e74696d655f70617261636861696e731068726d705848726d704f70656e4368616e6e656c526571756573740000180124636f6e6669726d6564e80110626f6f6c0001105f61676510013053657373696f6e496e64657800013873656e6465725f6465706f73697418011c42616c616e63650001406d61785f6d6573736167655f73697a6510010c7533320001306d61785f636170616369747910010c7533320001386d61785f746f74616c5f73697a6510010c7533320000810800000289010085080c6c706f6c6b61646f745f72756e74696d655f70617261636861696e731068726d702c48726d704368616e6e656c00002001306d61785f636170616369747910010c7533320001386d61785f746f74616c5f73697a6510010c7533320001406d61785f6d6573736167655f73697a6510010c7533320001246d73675f636f756e7410010c753332000128746f74616c5f73697a6510010c7533320001206d71635f68656164890801304f7074696f6e3c486173683e00013873656e6465725f6465706f73697418011c42616c616e6365000144726563697069656e745f6465706f73697418011c42616c616e63650000890804184f7074696f6e04045401240108104e6f6e6500000010536f6d6504002400000100008d0800000291080091080860706f6c6b61646f745f636f72655f7072696d69746976657348496e626f756e6448726d704d657373616765042c426c6f636b4e756d62657201100008011c73656e745f617410012c426c6f636b4e756d6265720001106461746128015073705f7374643a3a7665633a3a5665633c75383e00009508000002990800990800000408102d08009d08106c706f6c6b61646f745f72756e74696d655f70617261636861696e731068726d701870616c6c6574144572726f72040454000148544f70656e48726d704368616e6e656c546f53656c66000004c45468652073656e64657220747269656420746f206f70656e2061206368616e6e656c20746f207468656d73656c7665732e7c4f70656e48726d704368616e6e656c496e76616c6964526563697069656e740001048854686520726563697069656e74206973206e6f7420612076616c696420706172612e6c4f70656e48726d704368616e6e656c5a65726f43617061636974790002047c54686520726571756573746564206361706163697479206973207a65726f2e8c4f70656e48726d704368616e6e656c4361706163697479457863656564734c696d6974000304c05468652072657175657374656420636170616369747920657863656564732074686520676c6f62616c206c696d69742e784f70656e48726d704368616e6e656c5a65726f4d65737361676553697a65000404a054686520726571756573746564206d6178696d756d206d6573736167652073697a6520697320302e984f70656e48726d704368616e6e656c4d65737361676553697a65457863656564734c696d69740005042901546865206f70656e20726571756573742072657175657374656420746865206d6573736167652073697a65207468617420657863656564732074686520676c6f62616c206c696d69742e704f70656e48726d704368616e6e656c416c726561647945786973747300060468546865206368616e6e656c20616c7265616479206578697374737c4f70656e48726d704368616e6e656c416c7265616479526571756573746564000704d0546865726520697320616c72656164792061207265717565737420746f206f70656e207468652073616d65206368616e6e656c2e704f70656e48726d704368616e6e656c4c696d697445786365656465640008041d015468652073656e64657220616c72656164792068617320746865206d6178696d756d206e756d626572206f6620616c6c6f776564206f7574626f756e64206368616e6e656c732e7041636365707448726d704368616e6e656c446f65736e744578697374000904e0546865206368616e6e656c2066726f6d207468652073656e64657220746f20746865206f726967696e20646f65736e27742065786973742e8441636365707448726d704368616e6e656c416c7265616479436f6e6669726d6564000a0484546865206368616e6e656c20697320616c726561647920636f6e6669726d65642e7841636365707448726d704368616e6e656c4c696d69744578636565646564000b04250154686520726563697069656e7420616c72656164792068617320746865206d6178696d756d206e756d626572206f6620616c6c6f77656420696e626f756e64206368616e6e656c732e70436c6f736548726d704368616e6e656c556e617574686f72697a6564000c045501546865206f726967696e20747269657320746f20636c6f73652061206368616e6e656c207768657265206974206973206e656974686572207468652073656e646572206e6f722074686520726563697069656e742e6c436c6f736548726d704368616e6e656c446f65736e744578697374000d049c546865206368616e6e656c20746f20626520636c6f73656420646f65736e27742065786973742e7c436c6f736548726d704368616e6e656c416c7265616479556e646572776179000e04bc546865206368616e6e656c20636c6f7365207265717565737420697320616c7265616479207265717565737465642e8443616e63656c48726d704f70656e4368616e6e656c556e617574686f72697a6564000f045d0143616e63656c696e6720697320726571756573746564206279206e656974686572207468652073656e646572206e6f7220726563697069656e74206f6620746865206f70656e206368616e6e656c20726571756573742e684f70656e48726d704368616e6e656c446f65736e7445786973740010047c546865206f70656e207265717565737420646f65736e27742065786973742e7c4f70656e48726d704368616e6e656c416c7265616479436f6e6669726d65640011042d0143616e6e6f742063616e63656c20616e2048524d50206f70656e206368616e6e656c2072657175657374206265636175736520697420697320616c726561647920636f6e6669726d65642e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909a1080000028d0200a5080c4c706f6c6b61646f745f7072696d6974697665730876312c53657373696f6e496e666f000028012876616c696461746f7273f50701405665633c56616c696461746f7249643e000138646973636f766572795f6b657973a90801645665633c417574686f72697479446973636f7665727949643e00013c61737369676e6d656e745f6b657973a10801445665633c41737369676e6d656e7449643e00014076616c696461746f725f67726f757073090801605665633c5665633c56616c696461746f72496e6465783e3e00011c6e5f636f72657310010c7533320001687a65726f74685f64656c61795f7472616e6368655f776964746810010c75333200016072656c61795f7672665f6d6f64756c6f5f73616d706c657310010c7533320001406e5f64656c61795f7472616e6368657310010c7533320001346e6f5f73686f775f736c6f747310010c7533320001406e65656465645f617070726f76616c7310010c7533320000a908000002910200ad080c5c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e3c70617261735f7265676973747261722050617261496e666f081c4163636f756e7401001c42616c616e63650118000c011c6d616e6167657200011c4163636f756e7400011c6465706f73697418011c42616c616e63650001186c6f636b6564e80110626f6f6c0000b108105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e3c70617261735f7265676973747261721870616c6c6574144572726f72040454000130344e6f745265676973746572656400000464546865204944206973206e6f7420726567697374657265642e44416c7265616479526567697374657265640001047454686520494420697320616c726561647920726567697374657265642e204e6f744f776e65720002049c5468652063616c6c6572206973206e6f7420746865206f776e6572206f6620746869732049642e30436f6465546f6f4c617267650003045c496e76616c6964207061726120636f64652073697a652e404865616444617461546f6f4c6172676500040470496e76616c69642070617261206865616420646174612073697a652e304e6f7450617261636861696e0005046050617261206973206e6f7420612050617261636861696e2e344e6f74506172617468726561640006046450617261206973206e6f74206120506172617468726561642e4043616e6e6f74446572656769737465720007045843616e6e6f74206465726567697374657220706172613c43616e6e6f74446f776e6772616465000804d043616e6e6f74207363686564756c6520646f776e6772616465206f662070617261636861696e20746f20706172617468726561643443616e6e6f7455706772616465000904c843616e6e6f74207363686564756c652075706772616465206f66207061726174687265616420746f2070617261636861696e28506172614c6f636b6564000a04790150617261206973206c6f636b65642066726f6d206d616e6970756c6174696f6e20627920746865206d616e616765722e204d757374207573652070617261636861696e206f722072656c617920636861696e20676f7665726e616e63652e2c4e6f745265736572766564000b04d054686520494420676976656e20666f7220726567697374726174696f6e20686173206e6f74206265656e2072657365727665642e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909b508000002b90800b90804184f7074696f6e04045401f80108104e6f6e6500000010536f6d650400f80000010000bd08105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e14736c6f74731870616c6c6574144572726f7204045400010844506172614e6f744f6e626f617264696e670000048c5468652070617261636861696e204944206973206e6f74206f6e626f617264696e672e284c656173654572726f720001048854686572652077617320616e206572726f72207769746820746865206c656173652e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909c1080000040800510100c50800000324000000c90800c90804184f7074696f6e04045401cd080108104e6f6e6500000010536f6d650400cd080000010000cd080000040c0051011800d108105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e2061756374696f6e731870616c6c6574144572726f7204045400011c4441756374696f6e496e50726f677265737300000490546869732061756374696f6e20697320616c726561647920696e2070726f67726573732e444c65617365506572696f64496e5061737400010480546865206c6561736520706572696f6420697320696e2074686520706173742e44506172614e6f74526567697374657265640002045850617261206973206e6f742072656769737465726564444e6f7443757272656e7441756374696f6e000304584e6f7420612063757272656e742061756374696f6e2e284e6f7441756374696f6e0004043c4e6f7420616e2061756374696f6e2e3041756374696f6e456e6465640005046841756374696f6e2068617320616c726561647920656e6465642e40416c72656164794c65617365644f7574000604d8546865207061726120697320616c7265616479206c6561736564206f757420666f722070617274206f6620746869732072616e67652e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909d5080c5c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e2463726f77646c6f616e2046756e64496e666f10244163636f756e74496401001c42616c616e636501182c426c6f636b4e756d62657201102c4c65617365506572696f640110002801246465706f7369746f720001244163636f756e74496400012076657269666965727905014c4f7074696f6e3c4d756c74695369676e65723e00011c6465706f73697418011c42616c616e636500011872616973656418011c42616c616e636500010c656e6410012c426c6f636b4e756d62657200010c63617018011c42616c616e63650001446c6173745f636f6e747269627574696f6ed90801744c617374436f6e747269627574696f6e3c426c6f636b4e756d6265723e00013066697273745f706572696f6410012c4c65617365506572696f6400012c6c6173745f706572696f6410012c4c65617365506572696f64000128747269655f696e64657810012454726965496e6465780000d9080c5c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e2463726f77646c6f616e404c617374436f6e747269627574696f6e042c426c6f636b4e756d6265720110010c144e6576657200000024507265456e64696e67040010010c75333200010018456e64696e67040010012c426c6f636b4e756d62657200020000dd08105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e2463726f77646c6f616e1870616c6c6574144572726f7204045400015c444669727374506572696f64496e50617374000004f45468652063757272656e74206c6561736520706572696f64206973206d6f7265207468616e20746865206669727374206c6561736520706572696f642e644669727374506572696f64546f6f466172496e4675747572650001041101546865206669727374206c6561736520706572696f64206e6565647320746f206174206c65617374206265206c657373207468616e203320606d61785f76616c7565602e6c4c617374506572696f644265666f72654669727374506572696f64000204e84c617374206c6561736520706572696f64206d7573742062652067726561746572207468616e206669727374206c6561736520706572696f642e604c617374506572696f64546f6f466172496e4675747572650003042d01546865206c617374206c6561736520706572696f642063616e6e6f74206265206d6f7265207468616e203320706572696f64732061667465722074686520666972737420706572696f642e3c43616e6e6f74456e64496e5061737400040445015468652063616d706169676e20656e6473206265666f7265207468652063757272656e7420626c6f636b206e756d6265722e2054686520656e64206d75737420626520696e20746865206675747572652e44456e64546f6f466172496e467574757265000504c054686520656e64206461746520666f7220746869732063726f77646c6f616e206973206e6f742073656e7369626c652e204f766572666c6f770006045854686572652077617320616e206f766572666c6f772e50436f6e747269627574696f6e546f6f536d616c6c000704e854686520636f6e747269627574696f6e207761732062656c6f7720746865206d696e696d756d2c20604d696e436f6e747269627574696f6e602e34496e76616c69645061726149640008044c496e76616c69642066756e6420696e6465782e2c436170457863656564656400090490436f6e747269627574696f6e7320657863656564206d6178696d756d20616d6f756e742e58436f6e747269627574696f6e506572696f644f766572000a04a854686520636f6e747269627574696f6e20706572696f642068617320616c726561647920656e6465642e34496e76616c69644f726967696e000b048c546865206f726967696e206f6620746869732063616c6c20697320696e76616c69642e304e6f7450617261636861696e000c04c8546869732063726f77646c6f616e20646f6573206e6f7420636f72726573706f6e6420746f20612070617261636861696e2e2c4c65617365416374697665000d041501546869732070617261636861696e206c65617365206973207374696c6c2061637469766520616e64207265746972656d656e742063616e6e6f742079657420626567696e2e404269644f724c65617365416374697665000e043101546869732070617261636861696e277320626964206f72206c65617365206973207374696c6c2061637469766520616e642077697468647261772063616e6e6f742079657420626567696e2e3046756e644e6f74456e646564000f04805468652063726f77646c6f616e20686173206e6f742079657420656e6465642e3c4e6f436f6e747269627574696f6e73001004d0546865726520617265206e6f20636f6e747269627574696f6e732073746f72656420696e20746869732063726f77646c6f616e2e484e6f745265616479546f446973736f6c766500110475015468652063726f77646c6f616e206973206e6f7420726561647920746f20646973736f6c76652e20506f74656e7469616c6c79207374696c6c20686173206120736c6f74206f7220696e207265746972656d656e7420706572696f642e40496e76616c69645369676e617475726500120448496e76616c6964207369676e61747572652e304d656d6f546f6f4c617267650013047c5468652070726f7669646564206d656d6f20697320746f6f206c617267652e44416c7265616479496e4e65775261697365001404845468652066756e6420697320616c726561647920696e20604e65775261697365604856726644656c6179496e50726f6772657373001504b44e6f20636f6e747269627574696f6e7320616c6c6f77656420647572696e6720746865205652462064656c6179344e6f4c65617365506572696f640016042d0141206c6561736520706572696f6420686173206e6f742073746172746564207965742c2064756520746f20616e206f666673657420696e20746865207374617274696e6720626c6f636b2e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909e108102873705f72756e74696d651c67656e657269634c756e636865636b65645f65787472696e73696348556e636865636b656445787472696e736963101c41646472657373014d021043616c6c010902245369676e6174757265018d0514457874726101e50800040028000000e50800000420e908ed08f108f508fd0801090509090900e90810306672616d655f73797374656d28657874656e73696f6e7348636865636b5f737065635f76657273696f6e40436865636b5370656356657273696f6e04045400000000ed0810306672616d655f73797374656d28657874656e73696f6e7340636865636b5f74785f76657273696f6e38436865636b547856657273696f6e04045400000000f10810306672616d655f73797374656d28657874656e73696f6e7334636865636b5f67656e6573697330436865636b47656e6573697304045400000000f50810306672616d655f73797374656d28657874656e73696f6e733c636865636b5f6d6f7274616c69747938436865636b4d6f7274616c69747904045400000400f908010c4572610000f908102873705f72756e74696d651c67656e657269630c6572610c4572610001010420496d6d6f7274616c0000001c4d6f7274616c31040008000001001c4d6f7274616c32040008000002001c4d6f7274616c33040008000003001c4d6f7274616c34040008000004001c4d6f7274616c35040008000005001c4d6f7274616c36040008000006001c4d6f7274616c37040008000007001c4d6f7274616c38040008000008001c4d6f7274616c3904000800000900204d6f7274616c313004000800000a00204d6f7274616c313104000800000b00204d6f7274616c313204000800000c00204d6f7274616c313304000800000d00204d6f7274616c313404000800000e00204d6f7274616c313504000800000f00204d6f7274616c313604000800001000204d6f7274616c313704000800001100204d6f7274616c313804000800001200204d6f7274616c313904000800001300204d6f7274616c323004000800001400204d6f7274616c323104000800001500204d6f7274616c323204000800001600204d6f7274616c323304000800001700204d6f7274616c323404000800001800204d6f7274616c323504000800001900204d6f7274616c323604000800001a00204d6f7274616c323704000800001b00204d6f7274616c323804000800001c00204d6f7274616c323904000800001d00204d6f7274616c333004000800001e00204d6f7274616c333104000800001f00204d6f7274616c333204000800002000204d6f7274616c333304000800002100204d6f7274616c333404000800002200204d6f7274616c333504000800002300204d6f7274616c333604000800002400204d6f7274616c333704000800002500204d6f7274616c333804000800002600204d6f7274616c333904000800002700204d6f7274616c343004000800002800204d6f7274616c343104000800002900204d6f7274616c343204000800002a00204d6f7274616c343304000800002b00204d6f7274616c343404000800002c00204d6f7274616c343504000800002d00204d6f7274616c343604000800002e00204d6f7274616c343704000800002f00204d6f7274616c343804000800003000204d6f7274616c343904000800003100204d6f7274616c353004000800003200204d6f7274616c353104000800003300204d6f7274616c353204000800003400204d6f7274616c353304000800003500204d6f7274616c353404000800003600204d6f7274616c353504000800003700204d6f7274616c353604000800003800204d6f7274616c353704000800003900204d6f7274616c353804000800003a00204d6f7274616c353904000800003b00204d6f7274616c363004000800003c00204d6f7274616c363104000800003d00204d6f7274616c363204000800003e00204d6f7274616c363304000800003f00204d6f7274616c363404000800004000204d6f7274616c363504000800004100204d6f7274616c363604000800004200204d6f7274616c363704000800004300204d6f7274616c363804000800004400204d6f7274616c363904000800004500204d6f7274616c373004000800004600204d6f7274616c373104000800004700204d6f7274616c373204000800004800204d6f7274616c373304000800004900204d6f7274616c373404000800004a00204d6f7274616c373504000800004b00204d6f7274616c373604000800004c00204d6f7274616c373704000800004d00204d6f7274616c373804000800004e00204d6f7274616c373904000800004f00204d6f7274616c383004000800005000204d6f7274616c383104000800005100204d6f7274616c383204000800005200204d6f7274616c383304000800005300204d6f7274616c383404000800005400204d6f7274616c383504000800005500204d6f7274616c383604000800005600204d6f7274616c383704000800005700204d6f7274616c383804000800005800204d6f7274616c383904000800005900204d6f7274616c393004000800005a00204d6f7274616c393104000800005b00204d6f7274616c393204000800005c00204d6f7274616c393304000800005d00204d6f7274616c393404000800005e00204d6f7274616c393504000800005f00204d6f7274616c393604000800006000204d6f7274616c393704000800006100204d6f7274616c393804000800006200204d6f7274616c393904000800006300244d6f7274616c31303004000800006400244d6f7274616c31303104000800006500244d6f7274616c31303204000800006600244d6f7274616c31303304000800006700244d6f7274616c31303404000800006800244d6f7274616c31303504000800006900244d6f7274616c31303604000800006a00244d6f7274616c31303704000800006b00244d6f7274616c31303804000800006c00244d6f7274616c31303904000800006d00244d6f7274616c31313004000800006e00244d6f7274616c31313104000800006f00244d6f7274616c31313204000800007000244d6f7274616c31313304000800007100244d6f7274616c31313404000800007200244d6f7274616c31313504000800007300244d6f7274616c31313604000800007400244d6f7274616c31313704000800007500244d6f7274616c31313804000800007600244d6f7274616c31313904000800007700244d6f7274616c31323004000800007800244d6f7274616c31323104000800007900244d6f7274616c31323204000800007a00244d6f7274616c31323304000800007b00244d6f7274616c31323404000800007c00244d6f7274616c31323504000800007d00244d6f7274616c31323604000800007e00244d6f7274616c31323704000800007f00244d6f7274616c31323804000800008000244d6f7274616c31323904000800008100244d6f7274616c31333004000800008200244d6f7274616c31333104000800008300244d6f7274616c31333204000800008400244d6f7274616c31333304000800008500244d6f7274616c31333404000800008600244d6f7274616c31333504000800008700244d6f7274616c31333604000800008800244d6f7274616c31333704000800008900244d6f7274616c31333804000800008a00244d6f7274616c31333904000800008b00244d6f7274616c31343004000800008c00244d6f7274616c31343104000800008d00244d6f7274616c31343204000800008e00244d6f7274616c31343304000800008f00244d6f7274616c31343404000800009000244d6f7274616c31343504000800009100244d6f7274616c31343604000800009200244d6f7274616c31343704000800009300244d6f7274616c31343804000800009400244d6f7274616c31343904000800009500244d6f7274616c31353004000800009600244d6f7274616c31353104000800009700244d6f7274616c31353204000800009800244d6f7274616c31353304000800009900244d6f7274616c31353404000800009a00244d6f7274616c31353504000800009b00244d6f7274616c31353604000800009c00244d6f7274616c31353704000800009d00244d6f7274616c31353804000800009e00244d6f7274616c31353904000800009f00244d6f7274616c3136300400080000a000244d6f7274616c3136310400080000a100244d6f7274616c3136320400080000a200244d6f7274616c3136330400080000a300244d6f7274616c3136340400080000a400244d6f7274616c3136350400080000a500244d6f7274616c3136360400080000a600244d6f7274616c3136370400080000a700244d6f7274616c3136380400080000a800244d6f7274616c3136390400080000a900244d6f7274616c3137300400080000aa00244d6f7274616c3137310400080000ab00244d6f7274616c3137320400080000ac00244d6f7274616c3137330400080000ad00244d6f7274616c3137340400080000ae00244d6f7274616c3137350400080000af00244d6f7274616c3137360400080000b000244d6f7274616c3137370400080000b100244d6f7274616c3137380400080000b200244d6f7274616c3137390400080000b300244d6f7274616c3138300400080000b400244d6f7274616c3138310400080000b500244d6f7274616c3138320400080000b600244d6f7274616c3138330400080000b700244d6f7274616c3138340400080000b800244d6f7274616c3138350400080000b900244d6f7274616c3138360400080000ba00244d6f7274616c3138370400080000bb00244d6f7274616c3138380400080000bc00244d6f7274616c3138390400080000bd00244d6f7274616c3139300400080000be00244d6f7274616c3139310400080000bf00244d6f7274616c3139320400080000c000244d6f7274616c3139330400080000c100244d6f7274616c3139340400080000c200244d6f7274616c3139350400080000c300244d6f7274616c3139360400080000c400244d6f7274616c3139370400080000c500244d6f7274616c3139380400080000c600244d6f7274616c3139390400080000c700244d6f7274616c3230300400080000c800244d6f7274616c3230310400080000c900244d6f7274616c3230320400080000ca00244d6f7274616c3230330400080000cb00244d6f7274616c3230340400080000cc00244d6f7274616c3230350400080000cd00244d6f7274616c3230360400080000ce00244d6f7274616c3230370400080000cf00244d6f7274616c3230380400080000d000244d6f7274616c3230390400080000d100244d6f7274616c3231300400080000d200244d6f7274616c3231310400080000d300244d6f7274616c3231320400080000d400244d6f7274616c3231330400080000d500244d6f7274616c3231340400080000d600244d6f7274616c3231350400080000d700244d6f7274616c3231360400080000d800244d6f7274616c3231370400080000d900244d6f7274616c3231380400080000da00244d6f7274616c3231390400080000db00244d6f7274616c3232300400080000dc00244d6f7274616c3232310400080000dd00244d6f7274616c3232320400080000de00244d6f7274616c3232330400080000df00244d6f7274616c3232340400080000e000244d6f7274616c3232350400080000e100244d6f7274616c3232360400080000e200244d6f7274616c3232370400080000e300244d6f7274616c3232380400080000e400244d6f7274616c3232390400080000e500244d6f7274616c3233300400080000e600244d6f7274616c3233310400080000e700244d6f7274616c3233320400080000e800244d6f7274616c3233330400080000e900244d6f7274616c3233340400080000ea00244d6f7274616c3233350400080000eb00244d6f7274616c3233360400080000ec00244d6f7274616c3233370400080000ed00244d6f7274616c3233380400080000ee00244d6f7274616c3233390400080000ef00244d6f7274616c3234300400080000f000244d6f7274616c3234310400080000f100244d6f7274616c3234320400080000f200244d6f7274616c3234330400080000f300244d6f7274616c3234340400080000f400244d6f7274616c3234350400080000f500244d6f7274616c3234360400080000f600244d6f7274616c3234370400080000f700244d6f7274616c3234380400080000f800244d6f7274616c3234390400080000f900244d6f7274616c3235300400080000fa00244d6f7274616c3235310400080000fb00244d6f7274616c3235320400080000fc00244d6f7274616c3235330400080000fd00244d6f7274616c3235340400080000fe00244d6f7274616c3235350400080000ff0000fd0810306672616d655f73797374656d28657874656e73696f6e732c636865636b5f6e6f6e636528436865636b4e6f6e636504045400000400ad010120543a3a496e6465780000010910306672616d655f73797374656d28657874656e73696f6e7330636865636b5f7765696768742c436865636b576569676874040454000000000509086870616c6c65745f7472616e73616374696f6e5f7061796d656e74604368617267655472616e73616374696f6e5061796d656e7404045400000400cc013042616c616e63654f663c543e000009090c5c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e18636c61696d734850726576616c696461746541747465737473040454000000000d090840706f6c6b61646f745f72756e74696d651c52756e74696d6500000000b81853797374656d011853797374656d401c4163636f756e7401010402000c4101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e74000010040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e2c426c6f636b57656967687401001c600000000000000000000000000000000000000000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e000010040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b486173680101040510248000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101040510280400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d6265720100101000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801002480000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e1844696765737401002c040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e7473010048040010a0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e005901204e4f54453a20546869732073746f72616765206974656d206973206578706c696369746c7920756e626f756e6465642073696e6365206974206973206e6576657220696e74656e64656420746f2062652072656164642066726f6d2077697468696e207468652072756e74696d652e284576656e74436f756e74010010100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f706963730101040224a5010400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e004d01205468652076616c756520686173207468652074797065206028543a3a426c6f636b4e756d6265722c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000a90104000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e740100e80400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e740100e80400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e506861736500009d01040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e01b50101541830426c6f636b57656967687473c901850100f2052a0100000000204aa9d1010000405973070000000001c0766c8f58010000010098f73e5d010000010000000000000000405973070000000001c0febef9cc0100000100204aa9d1010000010088526a74000000405973070000000000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e677468d9013000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e74101060090000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e204462576569676874e1014040787d010000000000e1f505000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6ee501490320706f6c6b61646f743c7061726974792d706f6c6b61646f7400000000962300000000000038df6acb689907609b0300000037e397fc7c91f5e40100000040fe3ad401f8959a05000000d2bc9897eed08f1503000000f78b278be53f454c02000000af2c0297a23e6d3d0100000049eaaf1b548a0cb00100000091d5df18b0d2cf5801000000ed99c5acb25eedf503000000cbca25e39f14238702000000687ad44ad37f03c201000000ab3c0572291feb8b01000000bc9d89904f5b923f0100000037c8bb1350a9a2a801000000080000000484204765742074686520636861696e27732063757272656e742076657273696f6e2e2853533538507265666978250108000014a8205468652064657369676e61746564205353383520707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e01f90100245363686564756c657201245363686564756c65720c184167656e64610101040510fd010400044d01204974656d7320746f2062652065786563757465642c20696e64657865642062792074686520626c6f636b206e756d626572207468617420746865792073686f756c64206265206578656375746564206f6e2e184c6f6f6b75700001040528740400040101204c6f6f6b75702066726f6d206964656e7469747920746f2074686520626c6f636b206e756d62657220616e6420696e646578206f6620746865207461736b2e3853746f7261676556657273696f6e0100ad0504000c7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e0098204e6577206e6574776f726b732073746172742077697468206c6173742076657273696f6e2e010d02017008344d6178696d756d576569676874202000806e877401000008450120546865206d6178696d756d207765696768742074686174206d6179206265207363686564756c65642070657220626c6f636b20666f7220616e7920646973706174636861626c6573206f66206c657373a4207072696f72697479207468616e20607363686564756c653a3a484152445f444541444c494e45602e504d61785363686564756c6564506572426c6f636b101032000000081d0120546865206d6178696d756d206e756d626572206f66207363686564756c65642063616c6c7320696e2074686520717565756520666f7220612073696e676c6520626c6f636b2edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e01b105011042616265011042616265402845706f6368496e64657801002020000000000000000004542043757272656e742065706f636820696e6465782e2c417574686f7269746965730100b5050400046c2043757272656e742065706f636820617574686f7269746965732e2c47656e65736973536c6f740100290220000000000000000008f82054686520736c6f74206174207768696368207468652066697273742065706f63682061637475616c6c7920737461727465642e205468697320697320309020756e74696c2074686520666972737420626c6f636b206f662074686520636861696e2e2c43757272656e74536c6f740100290220000000000000000004542043757272656e7420736c6f74206e756d6265722e2852616e646f6d6e65737301000480000000000000000000000000000000000000000000000000000000000000000028b8205468652065706f63682072616e646f6d6e65737320666f7220746865202a63757272656e742a2065706f63682e002c20232053656375726974790005012054686973204d555354204e4f54206265207573656420666f722067616d626c696e672c2061732069742063616e20626520696e666c75656e6365642062792061f8206d616c6963696f75732076616c696461746f7220696e207468652073686f7274207465726d2e204974204d4159206265207573656420696e206d616e7915012063727970746f677261706869632070726f746f636f6c732c20686f77657665722c20736f206c6f6e67206173206f6e652072656d656d6265727320746861742074686973150120286c696b652065766572797468696e6720656c7365206f6e2d636861696e29206974206973207075626c69632e20466f72206578616d706c652c2069742063616e206265050120757365642077686572652061206e756d626572206973206e656564656420746861742063616e6e6f742068617665206265656e2063686f73656e20627920616e0d01206164766572736172792c20666f7220707572706f7365732073756368206173207075626c69632d636f696e207a65726f2d6b6e6f776c656467652070726f6f66732e6050656e64696e6745706f6368436f6e6669674368616e67650000310204000461012050656e64696e672065706f636820636f6e66696775726174696f6e206368616e676520746861742077696c6c206265206170706c696564207768656e20746865206e6578742065706f636820697320656e61637465642e384e65787452616e646f6d6e657373010004800000000000000000000000000000000000000000000000000000000000000000045c204e6578742065706f63682072616e646f6d6e6573732e3c4e657874417574686f7269746965730100b50504000460204e6578742065706f636820617574686f7269746965732e305365676d656e74496e6465780100101000000000247c2052616e646f6d6e65737320756e64657220636f6e737472756374696f6e2e00f4205765206d616b6520612074726164656f6666206265747765656e2073746f7261676520616363657373657320616e64206c697374206c656e6774682e01012057652073746f72652074686520756e6465722d636f6e737472756374696f6e2072616e646f6d6e65737320696e207365676d656e7473206f6620757020746f942060554e4445525f434f4e535452554354494f4e5f5345474d454e545f4c454e475448602e00ec204f6e63652061207365676d656e7420726561636865732074686973206c656e6774682c20776520626567696e20746865206e657874206f6e652e090120576520726573657420616c6c207365676d656e747320616e642072657475726e20746f206030602061742074686520626567696e6e696e67206f662065766572791c2065706f63682e44556e646572436f6e737472756374696f6e0101040510c10504000415012054574f582d4e4f54453a20605365676d656e74496e6465786020697320616e20696e6372656173696e6720696e74656765722c20736f2074686973206973206f6b61792e2c496e697469616c697a65640000c90504000801012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e292077686963682069732060536f6d65601d01206966207065722d626c6f636b20696e697469616c697a6174696f6e2068617320616c7265616479206265656e2063616c6c656420666f722063757272656e7420626c6f636b2e4c417574686f7256726652616e646f6d6e6573730100c90504001015012054686973206669656c642073686f756c6420616c7761797320626520706f70756c6174656420647572696e6720626c6f636b2070726f63657373696e6720756e6c6573731901207365636f6e6461727920706c61696e20736c6f74732061726520656e61626c65642028776869636820646f6e277420636f6e7461696e206120565246206f7574707574292e0051012049742069732073657420696e20606f6e5f696e697469616c697a65602c206265666f72652069742077696c6c20636f6e7461696e207468652076616c75652066726f6d20746865206c61737420626c6f636b2e2845706f63685374617274010074200000000000000000145d012054686520626c6f636b206e756d62657273207768656e20746865206c61737420616e642063757272656e742065706f6368206861766520737461727465642c20726573706563746976656c7920604e2d316020616e641420604e602e4901204e4f54453a20576520747261636b207468697320697320696e206f7264657220746f20616e6e6f746174652074686520626c6f636b206e756d626572207768656e206120676976656e20706f6f6c206f66590120656e74726f7079207761732066697865642028692e652e20697420776173206b6e6f776e20746f20636861696e206f6273657276657273292e2053696e63652065706f6368732061726520646566696e656420696e590120736c6f74732c207768696368206d617920626520736b69707065642c2074686520626c6f636b206e756d62657273206d6179206e6f74206c696e6520757020776974682074686520736c6f74206e756d626572732e204c6174656e657373010010100000000014d820486f77206c617465207468652063757272656e7420626c6f636b20697320636f6d706172656420746f2069747320706172656e742e001501205468697320656e74727920697320706f70756c617465642061732070617274206f6620626c6f636b20657865637574696f6e20616e6420697320636c65616e65642075701101206f6e20626c6f636b2066696e616c697a6174696f6e2e205175657279696e6720746869732073746f7261676520656e747279206f757473696465206f6620626c6f636bb020657865637574696f6e20636f6e746578742073686f756c6420616c77617973207969656c64207a65726f2e2c45706f6368436f6e6669670000cd0504000861012054686520636f6e66696775726174696f6e20666f72207468652063757272656e742065706f63682e2053686f756c64206e6576657220626520604e6f6e656020617320697420697320696e697469616c697a656420696e242067656e657369732e3c4e65787445706f6368436f6e6669670000cd050400082d012054686520636f6e66696775726174696f6e20666f7220746865206e6578742065706f63682c20604e6f6e65602069662074686520636f6e6669672077696c6c206e6f74206368616e6765e82028796f752063616e2066616c6c6261636b20746f206045706f6368436f6e6669676020696e737465616420696e20746861742063617365292e011502000c3445706f63684475726174696f6e202060090000000000000cec2054686520616d6f756e74206f662074696d652c20696e20736c6f74732c207468617420656163682065706f63682073686f756c64206c6173742e1901204e4f54453a2043757272656e746c79206974206973206e6f7420706f737369626c6520746f206368616e6765207468652065706f6368206475726174696f6e20616674657221012074686520636861696e2068617320737461727465642e20417474656d7074696e6720746f20646f20736f2077696c6c20627269636b20626c6f636b2070726f64756374696f6e2e444578706563746564426c6f636b54696d652020701700000000000014050120546865206578706563746564206176657261676520626c6f636b2074696d6520617420776869636820424142452073686f756c64206265206372656174696e67110120626c6f636b732e2053696e636520424142452069732070726f626162696c6973746963206974206973206e6f74207472697669616c20746f20666967757265206f75740501207768617420746865206578706563746564206176657261676520626c6f636b2074696d652073686f756c64206265206261736564206f6e2074686520736c6f740901206475726174696f6e20616e642074686520736563757269747920706172616d657465722060636020287768657265206031202d20636020726570726573656e7473a0207468652070726f626162696c697479206f66206120736c6f74206265696e6720656d707479292e384d6178417574686f7269746965731010a08601000488204d6178206e756d626572206f6620617574686f72697469657320616c6c6f77656401d105022454696d657374616d70012454696d657374616d70080c4e6f7701002020000000000000000004902043757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e244469645570646174650100e8040004b420446964207468652074696d657374616d7020676574207570646174656420696e207468697320626c6f636b3f013d020004344d696e696d756d506572696f642020b80b000000000000104d0120546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e204265776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a5d0120706572696f6420746861742074686520626c6f636b2070726f64756374696f6e206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c5d012067656e6572616c6c7920776f726b2077697468207468697320746f2064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20652e672e20466f7220417572612c2069742077696c6c206265a020646f75626c65207468697320706572696f64206f6e2064656661756c742073657474696e67732e00031c496e6469636573011c496e646963657304204163636f756e74730001040210d5050400048820546865206c6f6f6b75702066726f6d20696e64657820746f206163636f756e742e0145020184041c4465706f736974184000e8764817000000000000000000000004ac20546865206465706f736974206e656564656420666f7220726573657276696e6720616e20696e6465782e01d905042042616c616e636573012042616c616e6365731434546f74616c49737375616e6365010018400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e1c4163636f756e740101040200140101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c6c205468652062616c616e6365206f6620616e206163636f756e742e004101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b730101040200dd05040008b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e2052657365727665730101040200ed05040004a4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e3853746f7261676556657273696f6e0100f90504000c7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e00a020546869732069732073657420746f2076322e302e3020666f72206e6577206e6574776f726b732e01490201880c484578697374656e7469616c4465706f736974184000e40b5402000000000000000000000004d420546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d61784c6f636b7310103200000008f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e2c4d61785265736572766573101032000000040d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e01fd0505485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c6965720100010640000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e0100050604000000000c485472616e73616374696f6e42797465466565184040420f00000000000000000000000000040d01205468652066656520746f206265207061696420666f72206d616b696e672061207472616e73616374696f6e3b20746865207065722d6279746520706f7274696f6e2e604f7065726174696f6e616c4665654d756c7469706c696572080405545901204120666565206d756c6974706c69657220666f7220604f7065726174696f6e616c602065787472696e7369637320746f20636f6d7075746520227669727475616c207469702220746f20626f6f73742074686569722c20607072696f7269747960004d0120546869732076616c7565206973206d756c7469706c656420627920746865206066696e616c5f6665656020746f206f627461696e206120227669727475616c20746970222074686174206973206c61746572f420616464656420746f20612074697020636f6d706f6e656e7420696e20726567756c617220607072696f72697479602063616c63756c6174696f6e732e4d01204974206d65616e732074686174206120604e6f726d616c60207472616e73616374696f6e2063616e2066726f6e742d72756e20612073696d696c61726c792d73697a656420604f7065726174696f6e616c6041012065787472696e736963202877697468206e6f20746970292c20627920696e636c7564696e672061207469702076616c75652067726561746572207468616e20746865207669727475616c207469702e003c20606060727573742c69676e6f726540202f2f20466f7220604e6f726d616c608c206c6574207072696f72697479203d207072696f726974795f63616c6328746970293b0054202f2f20466f7220604f7065726174696f6e616c601101206c6574207669727475616c5f746970203d2028696e636c7573696f6e5f666565202b2074697029202a204f7065726174696f6e616c4665654d756c7469706c6965723bc4206c6574207072696f72697479203d207072696f726974795f63616c6328746970202b207669727475616c5f746970293b1020606060005101204e6f746520746861742073696e636520776520757365206066696e616c5f6665656020746865206d756c7469706c696572206170706c69657320616c736f20746f2074686520726567756c61722060746970605d012073656e74207769746820746865207472616e73616374696f6e2e20536f2c206e6f74206f6e6c7920646f657320746865207472616e73616374696f6e206765742061207072696f726974792062756d702062617365646101206f6e207468652060696e636c7573696f6e5f666565602c2062757420776520616c736f20616d706c6966792074686520696d70616374206f662074697073206170706c69656420746f20604f7065726174696f6e616c6038207472616e73616374696f6e732e2c576569676874546f46656509065c040000000000000000000000000000000000b4c4040001040d012054686520706f6c796e6f6d69616c2074686174206973206170706c69656420696e206f7264657220746f20646572697665206665652066726f6d207765696768742e002028417574686f72736869700128417574686f72736869700c18556e636c6573010011060400041c20556e636c657318417574686f720000000400046420417574686f72206f662063757272656e7420626c6f636b2e30446964536574556e636c65730100e8040004bc205768657468657220756e636c6573207765726520616c72656164792073657420696e207468697320626c6f636b2e015502000440556e636c6547656e65726174696f6e731010000000000ccc20546865206e756d626572206f6620626c6f636b73206261636b2077652073686f756c642061636365707420756e636c65732ee42054686973206d65616e7320746861742077652077696c6c206465616c207769746820756e636c652d706172656e7473207468617420617265942060556e636c6547656e65726174696f6e73202b203160206265666f726520606e6f77602e011906061c5374616b696e67011c5374616b696e679430486973746f7279446570746801001010540000001c8c204e756d626572206f66206572617320746f206b65657020696e20686973746f72792e00390120496e666f726d6174696f6e206973206b65707420666f72206572617320696e20605b63757272656e745f657261202d20686973746f72795f64657074683b2063757272656e745f6572615d602e006101204d757374206265206d6f7265207468616e20746865206e756d626572206f6620657261732064656c617965642062792073657373696f6e206f74686572776973652e20492e652e2061637469766520657261206d757374390120616c7761797320626520696e20686973746f72792e20492e652e20606163746976655f657261203e2063757272656e745f657261202d20686973746f72795f646570746860206d757374206265302067756172616e746565642e3856616c696461746f72436f756e74010010100000000004a82054686520696465616c206e756d626572206f66207374616b696e67207061727469636970616e74732e544d696e696d756d56616c696461746f72436f756e740100101000000000044101204d696e696d756d206e756d626572206f66207374616b696e67207061727469636970616e7473206265666f726520656d657267656e637920636f6e646974696f6e732061726520696d706f7365642e34496e76756c6e657261626c65730100dc04000c590120416e792076616c696461746f72732074686174206d6179206e6576657220626520736c6173686564206f7220666f726369626c79206b69636b65642e20497427732061205665632073696e636520746865792772654d01206561737920746f20696e697469616c697a6520616e642074686520706572666f726d616e636520686974206973206d696e696d616c2028776520657870656374206e6f206d6f7265207468616e20666f7572ac20696e76756c6e657261626c65732920616e64207265737472696374656420746f20746573746e6574732e18426f6e6465640001040500000400040101204d61702066726f6d20616c6c206c6f636b65642022737461736822206163636f756e747320746f2074686520636f6e74726f6c6c6572206163636f756e742e404d696e4e6f6d696e61746f72426f6e64010018400000000000000000000000000000000004210120546865206d696e696d756d2061637469766520626f6e6420746f206265636f6d6520616e64206d61696e7461696e2074686520726f6c65206f662061206e6f6d696e61746f722e404d696e56616c696461746f72426f6e64010018400000000000000000000000000000000004210120546865206d696e696d756d2061637469766520626f6e6420746f206265636f6d6520616e64206d61696e7461696e2074686520726f6c65206f6620612076616c696461746f722e184c656467657200010402001d060400044501204d61702066726f6d20616c6c2028756e6c6f636b6564292022636f6e74726f6c6c657222206163636f756e747320746f2074686520696e666f20726567617264696e6720746865207374616b696e672e14506179656501010405006102040004e42057686572652074686520726577617264207061796d656e742073686f756c64206265206d6164652e204b657965642062792073746173682e2856616c696461746f7273010104050065020800000c450120546865206d61702066726f6d202877616e6e616265292076616c696461746f72207374617368206b657920746f2074686520707265666572656e636573206f6620746861742076616c696461746f722e004901205768656e207570646174696e6720746869732073746f72616765206974656d2c20796f75206d75737420616c736f20757064617465207468652060436f756e746572466f7256616c696461746f7273602e50436f756e746572466f7256616c696461746f72730100101000000000042101204120747261636b657220746f206b65657020636f756e74206f6620746865206e756d626572206f66206974656d7320696e20746865206056616c696461746f727360206d61702e484d617856616c696461746f7273436f756e7400001004000c310120546865206d6178696d756d2076616c696461746f7220636f756e74206265666f72652077652073746f7020616c6c6f77696e67206e65772076616c696461746f727320746f206a6f696e2e00d0205768656e20746869732076616c7565206973206e6f74207365742c206e6f206c696d6974732061726520656e666f726365642e284e6f6d696e61746f72730001040500290604000c650120546865206d61702066726f6d206e6f6d696e61746f72207374617368206b657920746f2074686520736574206f66207374617368206b657973206f6620616c6c2076616c696461746f727320746f206e6f6d696e6174652e004901205768656e207570646174696e6720746869732073746f72616765206974656d2c20796f75206d75737420616c736f20757064617465207468652060436f756e746572466f724e6f6d696e61746f7273602e50436f756e746572466f724e6f6d696e61746f72730100101000000000042101204120747261636b657220746f206b65657020636f756e74206f6620746865206e756d626572206f66206974656d7320696e2074686520604e6f6d696e61746f727360206d61702e484d61784e6f6d696e61746f7273436f756e7400001004000c310120546865206d6178696d756d206e6f6d696e61746f7220636f756e74206265666f72652077652073746f7020616c6c6f77696e67206e65772076616c696461746f727320746f206a6f696e2e00d0205768656e20746869732076616c7565206973206e6f74207365742c206e6f206c696d6974732061726520656e666f726365642e2843757272656e744572610000100400105c205468652063757272656e742065726120696e6465782e006501205468697320697320746865206c617465737420706c616e6e6564206572612c20646570656e64696e67206f6e20686f77207468652053657373696f6e2070616c6c657420717565756573207468652076616c696461746f7280207365742c206974206d6967687420626520616374697665206f72206e6f742e2441637469766545726100002d06040010d820546865206163746976652065726120696e666f726d6174696f6e2c20697420686f6c647320696e64657820616e642073746172742e0059012054686520616374697665206572612069732074686520657261206265696e672063757272656e746c792072657761726465642e2056616c696461746f7220736574206f66207468697320657261206d757374206265ac20657175616c20746f205b6053657373696f6e496e746572666163653a3a76616c696461746f7273605d2e5445726173537461727453657373696f6e496e6465780001040510100400103101205468652073657373696f6e20696e646578206174207768696368207468652065726120737461727420666f7220746865206c6173742060484953544f52595f44455054486020657261732e006101204e6f74653a205468697320747261636b7320746865207374617274696e672073657373696f6e2028692e652e2073657373696f6e20696e646578207768656e20657261207374617274206265696e672061637469766529f020666f7220746865206572617320696e20605b43757272656e74457261202d20484953544f52595f44455054482c2043757272656e744572615d602e2c457261735374616b65727301010805053106c80c0000001878204578706f73757265206f662076616c696461746f72206174206572612e0061012054686973206973206b65796564206669727374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00a82049732069742072656d6f7665642061667465722060484953544f52595f44455054486020657261732e4101204966207374616b657273206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e20656d707479206578706f737572652069732072657475726e65642e48457261735374616b657273436c697070656401010805053106c80c0000002c9820436c6970706564204578706f73757265206f662076616c696461746f72206174206572612e00590120546869732069732073696d696c617220746f205b60457261735374616b657273605d20627574206e756d626572206f66206e6f6d696e61746f7273206578706f736564206973207265647563656420746f20746865dc2060543a3a4d61784e6f6d696e61746f72526577617264656450657256616c696461746f72602062696767657374207374616b6572732e1d0120284e6f74653a20746865206669656c642060746f74616c6020616e6420606f776e60206f6620746865206578706f737572652072656d61696e7320756e6368616e676564292ef42054686973206973207573656420746f206c696d69742074686520692f6f20636f737420666f7220746865206e6f6d696e61746f72207061796f75742e005d012054686973206973206b657965642066697374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00a82049732069742072656d6f7665642061667465722060484953544f52595f44455054486020657261732e4101204966207374616b657273206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e20656d707479206578706f737572652069732072657475726e65642e484572617356616c696461746f7250726566730101080505310665020800001411012053696d696c617220746f2060457261735374616b657273602c207468697320686f6c64732074686520707265666572656e636573206f662076616c696461746f72732e0061012054686973206973206b65796564206669727374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00a82049732069742072656d6f7665642061667465722060484953544f52595f44455054486020657261732e4c4572617356616c696461746f7252657761726400010405101804000c09012054686520746f74616c2076616c696461746f7220657261207061796f757420666f7220746865206c6173742060484953544f52595f44455054486020657261732e0021012045726173207468617420686176656e27742066696e697368656420796574206f7220686173206265656e2072656d6f76656420646f65736e27742068617665207265776172642e4045726173526577617264506f696e74730101040510350614000000000008ac205265776172647320666f7220746865206c6173742060484953544f52595f44455054486020657261732e250120496620726577617264206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e2030207265776172642069732072657475726e65642e3845726173546f74616c5374616b65010104051018400000000000000000000000000000000008ec2054686520746f74616c20616d6f756e74207374616b656420666f7220746865206c6173742060484953544f52595f44455054486020657261732e1d0120496620746f74616c206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e2030207374616b652069732072657475726e65642e20466f7263654572610100450604000454204d6f6465206f662065726120666f7263696e672e4c536c6173685265776172644672616374696f6e0100b90110000000000cf8205468652070657263656e74616765206f662074686520736c617368207468617420697320646973747269627574656420746f207265706f72746572732e00e4205468652072657374206f662074686520736c61736865642076616c75652069732068616e646c6564206279207468652060536c617368602e4c43616e63656c6564536c6173685061796f757401001840000000000000000000000000000000000815012054686520616d6f756e74206f662063757272656e637920676976656e20746f207265706f7274657273206f66206120736c617368206576656e7420776869636820776173ec2063616e63656c65642062792065787472616f7264696e6172792063697263756d7374616e6365732028652e672e20676f7665726e616e6365292e40556e6170706c696564536c617368657301010405104906040004c420416c6c20756e6170706c69656420736c61736865732074686174206172652071756575656420666f72206c617465722e28426f6e646564457261730100a50104001025012041206d617070696e672066726f6d207374696c6c2d626f6e646564206572617320746f207468652066697273742073657373696f6e20696e646578206f662074686174206572612e00c8204d75737420636f6e7461696e7320696e666f726d6174696f6e20666f72206572617320666f72207468652072616e67653abc20605b6163746976655f657261202d20626f756e64696e675f6475726174696f6e3b206163746976655f6572615d604c56616c696461746f72536c617368496e457261000108050531065106040008450120416c6c20736c617368696e67206576656e7473206f6e2076616c696461746f72732c206d61707065642062792065726120746f20746865206869676865737420736c6173682070726f706f7274696f6e7020616e6420736c6173682076616c7565206f6620746865206572612e4c4e6f6d696e61746f72536c617368496e4572610001080505310618040004610120416c6c20736c617368696e67206576656e7473206f6e206e6f6d696e61746f72732c206d61707065642062792065726120746f20746865206869676865737420736c6173682076616c7565206f6620746865206572612e34536c617368696e675370616e73000104050055060400048c20536c617368696e67207370616e7320666f72207374617368206163636f756e74732e245370616e536c6173680101040541065906800000000000000000000000000000000000000000000000000000000000000000083d01205265636f72647320696e666f726d6174696f6e2061626f757420746865206d6178696d756d20736c617368206f6620612073746173682077697468696e206120736c617368696e67207370616e2cb82061732077656c6c20617320686f77206d7563682072657761726420686173206265656e2070616964206f75742e584561726c69657374556e6170706c696564536c617368000010040004fc20546865206561726c696573742065726120666f72207768696368207765206861766520612070656e64696e672c20756e6170706c69656420736c6173682e5443757272656e74506c616e6e656453657373696f6e01001010000000000ce820546865206c61737420706c616e6e65642073657373696f6e207363686564756c6564206279207468652073657373696f6e2070616c6c65742e0071012054686973206973206261736963616c6c7920696e2073796e632077697468207468652063616c6c20746f205b6070616c6c65745f73657373696f6e3a3a53657373696f6e4d616e616765723a3a6e65775f73657373696f6e605d2e3853746f7261676556657273696f6e01005d06040710cc2054727565206966206e6574776f726b20686173206265656e20757067726164656420746f20746869732076657273696f6e2e7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e00a020546869732069732073657420746f2076372e302e3020666f72206e6577206e6574776f726b732e384368696c6c5468726573686f6c640000710204000c510120546865207468726573686f6c6420666f72207768656e2075736572732063616e2073746172742063616c6c696e6720606368696c6c5f6f746865726020666f72206f746865722076616c696461746f7273202f5901206e6f6d696e61746f72732e20546865207468726573686f6c6420697320636f6d706172656420746f207468652061637475616c206e756d626572206f662076616c696461746f7273202f206e6f6d696e61746f72732901202860436f756e74466f722a602920696e207468652073797374656d20636f6d706172656420746f2074686520636f6e66696775726564206d61782028604d61782a436f756e7460292e015d020190143853657373696f6e735065724572611010060000000470204e756d626572206f662073657373696f6e7320706572206572612e3c426f6e64696e674475726174696f6e10101c00000004e4204e756d626572206f6620657261732074686174207374616b65642066756e6473206d7573742072656d61696e20626f6e64656420666f722e48536c61736844656665724475726174696f6e10101b000000100101204e756d626572206f662065726173207468617420736c6173686573206172652064656665727265642062792c20616674657220636f6d7075746174696f6e2e000d0120546869732073686f756c64206265206c657373207468616e2074686520626f6e64696e67206475726174696f6e2e2053657420746f203020696620736c617368657315012073686f756c64206265206170706c69656420696d6d6564696174656c792c20776974686f7574206f70706f7274756e69747920666f7220696e74657276656e74696f6e2e804d61784e6f6d696e61746f72526577617264656450657256616c696461746f7210100001000010f820546865206d6178696d756d206e756d626572206f66206e6f6d696e61746f727320726577617264656420666f7220656163682076616c696461746f722e00510120466f7220656163682076616c696461746f72206f6e6c79207468652060244d61784e6f6d696e61746f72526577617264656450657256616c696461746f72602062696767657374207374616b6572732063616e390120636c61696d207468656972207265776172642e2054686973207573656420746f206c696d69742074686520692f6f20636f737420666f7220746865206e6f6d696e61746f72207061796f75742e384d61784e6f6d696e6174696f6e731010100000000001610607204f6666656e63657301204f6666656e6365730c1c5265706f72747300010405246506040004490120546865207072696d61727920737472756374757265207468617420686f6c647320616c6c206f6666656e6365207265636f726473206b65796564206279207265706f7274206964656e746966696572732e58436f6e63757272656e745265706f727473496e64657801010805056906a1010400042901204120766563746f72206f66207265706f727473206f66207468652073616d65206b696e6420746861742068617070656e6564206174207468652073616d652074696d6520736c6f742e485265706f72747342794b696e64496e646578010104059828040018110120456e756d65726174657320616c6c207265706f727473206f662061206b696e6420616c6f6e672077697468207468652074696d6520746865792068617070656e65642e00bc20416c6c207265706f7274732061726520736f72746564206279207468652074696d65206f66206f6666656e63652e004901204e6f74652074686174207468652061637475616c2074797065206f662074686973206d617070696e6720697320605665633c75383e602c207468697320697320626563617573652076616c756573206f66690120646966666572656e7420747970657320617265206e6f7420737570706f7274656420617420746865206d6f6d656e7420736f2077652061726520646f696e6720746865206d616e75616c2073657269616c697a6174696f6e2e00019400000828486973746f726963616c0000000000211c53657373696f6e011c53657373696f6e1c2856616c696461746f72730100dc0400047c205468652063757272656e7420736574206f662076616c696461746f72732e3043757272656e74496e646578010010100000000004782043757272656e7420696e646578206f66207468652073657373696f6e2e345175657565644368616e6765640100e8040008390120547275652069662074686520756e6465726c79696e672065636f6e6f6d6963206964656e746974696573206f7220776569676874696e6720626568696e64207468652076616c696461746f7273a420686173206368616e67656420696e20746865207175657565642076616c696461746f72207365742e285175657565644b65797301006d060400083d012054686520717565756564206b65797320666f7220746865206e6578742073657373696f6e2e205768656e20746865206e6578742073657373696f6e20626567696e732c207468657365206b657973e02077696c6c206265207573656420746f2064657465726d696e65207468652076616c696461746f7227732073657373696f6e206b6579732e4844697361626c656456616c696461746f72730100750204000c8020496e6469636573206f662064697361626c65642076616c696461746f72732e003501205468652073657420697320636c6561726564207768656e20606f6e5f73657373696f6e5f656e64696e67602072657475726e732061206e657720736574206f66206964656e7469746965732e204e6578744b657973000104050085020400049c20546865206e6578742073657373696f6e206b65797320666f7220612076616c696461746f722e204b65794f776e657200010405750600040004090120546865206f776e6572206f662061206b65792e20546865206b65792069732074686520604b657954797065496460202b2074686520656e636f646564206b65792e018102019c00017d06091c4772616e647061011c4772616e647061181453746174650100810604000490205374617465206f66207468652063757272656e7420617574686f72697479207365742e3450656e64696e674368616e676500008506040004c42050656e64696e67206368616e67653a20287369676e616c65642061742c207363686564756c6564206368616e6765292e284e657874466f72636564000010040004bc206e65787420626c6f636b206e756d6265722077686572652077652063616e20666f7263652061206368616e67652e1c5374616c6c65640000740400049020607472756560206966207765206172652063757272656e746c79207374616c6c65642e3043757272656e745365744964010020200000000000000000085d0120546865206e756d626572206f66206368616e6765732028626f746820696e207465726d73206f66206b65797320616e6420756e6465726c79696e672065636f6e6f6d696320726573706f6e736962696c697469657329c420696e20746865202273657422206f66204772616e6470612076616c696461746f72732066726f6d2067656e657369732e30536574496453657373696f6e00010405201004001059012041206d617070696e672066726f6d206772616e6470612073657420494420746f2074686520696e646578206f6620746865202a6d6f737420726563656e742a2073657373696f6e20666f722077686963682069747368206d656d62657273207765726520726573706f6e7369626c652e00b82054574f582d4e4f54453a2060536574496460206973206e6f7420756e646572207573657220636f6e74726f6c2e01950201a004384d6178417574686f7269746965731010a0860100045c204d617820417574686f72697469657320696e20757365018d060b20496d4f6e6c696e650120496d4f6e6c696e651038486561727462656174416674657201001010000000002c1d012054686520626c6f636b206e756d6265722061667465722077686963682069742773206f6b20746f2073656e64206865617274626561747320696e207468652063757272656e74242073657373696f6e2e0025012041742074686520626567696e6e696e67206f6620656163682073657373696f6e20776520736574207468697320746f20612076616c756520746861742073686f756c642066616c6c350120726f7567686c7920696e20746865206d6964646c65206f66207468652073657373696f6e206475726174696f6e2e20546865206964656120697320746f206669727374207761697420666f721901207468652076616c696461746f727320746f2070726f64756365206120626c6f636b20696e207468652063757272656e742073657373696f6e2c20736f207468617420746865a820686561727462656174206c61746572206f6e2077696c6c206e6f74206265206e65636573736172792e00390120546869732076616c75652077696c6c206f6e6c79206265207573656420617320612066616c6c6261636b206966207765206661696c20746f2067657420612070726f7065722073657373696f6e2d012070726f677265737320657374696d6174652066726f6d20604e65787453657373696f6e526f746174696f6e602c2061732074686f736520657374696d617465732073686f756c642062650101206d6f7265206163637572617465207468656e207468652076616c75652077652063616c63756c61746520666f7220604865617274626561744166746572602e104b65797301009106040004d0205468652063757272656e7420736574206f66206b6579732074686174206d61792069737375652061206865617274626561742e4852656365697665644865617274626561747300010805057499060400083d0120466f7220656163682073657373696f6e20696e6465782c207765206b6565702061206d617070696e67206f66202753657373696f6e496e6465786020616e64206041757468496e6465786020746fb02060577261707065724f70617175653c426f756e6465644f70617175654e6574776f726b53746174653e602e38417574686f726564426c6f636b730101080505310610100000000008150120466f7220656163682073657373696f6e20696e6465782c207765206b6565702061206d617070696e67206f66206056616c696461746f7249643c543e6020746f20746865c8206e756d626572206f6620626c6f636b7320617574686f7265642062792074686520676976656e20617574686f726974792e01c10201b40440556e7369676e65645072696f726974792020ffffffffffffffff10f0204120636f6e66696775726174696f6e20666f722062617365207072696f72697479206f6620756e7369676e6564207472616e73616374696f6e732e0015012054686973206973206578706f73656420736f20746861742069742063616e2062652074756e656420666f7220706172746963756c61722072756e74696d652c207768656eb4206d756c7469706c652070616c6c6574732073656e6420756e7369676e6564207472616e73616374696f6e732e01ad060c48417574686f72697479446973636f7665727900000000000d2444656d6f6372616379012444656d6f6372616379383c5075626c696350726f70436f756e74010010100000000004f420546865206e756d626572206f6620287075626c6963292070726f706f73616c7320746861742068617665206265656e206d61646520736f206661722e2c5075626c696350726f70730100b106040004210120546865207075626c69632070726f706f73616c732e20556e736f727465642e20546865207365636f6e64206974656d206973207468652070726f706f73616c277320686173682e244465706f7369744f660001040510b90604000c842054686f73652077686f2068617665206c6f636b65642061206465706f7369742e00d82054574f582d4e4f54453a20536166652c20617320696e6372656173696e6720696e7465676572206b6579732061726520736166652e24507265696d616765730001040624bd060400086101204d6170206f662068617368657320746f207468652070726f706f73616c20707265696d6167652c20616c6f6e6720776974682077686f207265676973746572656420697420616e64207468656972206465706f7369742ee42054686520626c6f636b206e756d6265722069732074686520626c6f636b20617420776869636820697420776173206465706f73697465642e3c5265666572656e64756d436f756e74010010100000000004310120546865206e6578742066726565207265666572656e64756d20696e6465782c20616b6120746865206e756d626572206f66207265666572656e6461207374617274656420736f206661722e344c6f77657374556e62616b6564010010100000000008250120546865206c6f77657374207265666572656e64756d20696e64657820726570726573656e74696e6720616e20756e62616b6564207265666572656e64756d2e20457175616c20746fdc20605265666572656e64756d436f756e74602069662074686572652069736e2774206120756e62616b6564207265666572656e64756d2e405265666572656e64756d496e666f4f660001040510c10604000cb420496e666f726d6174696f6e20636f6e6365726e696e6720616e7920676976656e207265666572656e64756d2e0009012054574f582d4e4f54453a205341464520617320696e646578657320617265206e6f7420756e64657220616e2061747461636b6572e280997320636f6e74726f6c2e20566f74696e674f660101040500cd06d8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000105d0120416c6c20766f74657320666f72206120706172746963756c617220766f7465722e2057652073746f7265207468652062616c616e636520666f7220746865206e756d626572206f6620766f74657320746861742077655d012068617665207265636f726465642e20546865207365636f6e64206974656d2069732074686520746f74616c20616d6f756e74206f662064656c65676174696f6e732c20746861742077696c6c2062652061646465642e00e82054574f582d4e4f54453a205341464520617320604163636f756e7449646073206172652063727970746f2068617368657320616e797761792e144c6f636b730001040500100400105d01204163636f756e747320666f7220776869636820746865726520617265206c6f636b7320696e20616374696f6e207768696368206d61792062652072656d6f76656420617420736f6d6520706f696e7420696e207468655101206675747572652e205468652076616c75652069732074686520626c6f636b206e756d62657220617420776869636820746865206c6f636b206578706972657320616e64206d61792062652072656d6f7665642e00c02054574f582d4e4f54453a204f4b20e2809520604163636f756e7449646020697320612073656375726520686173682e544c6173745461626c656457617345787465726e616c0100e80400085901205472756520696620746865206c617374207265666572656e64756d207461626c656420776173207375626d69747465642065787465726e616c6c792e2046616c7365206966206974207761732061207075626c6963282070726f706f73616c2e304e65787445787465726e616c0000e106040010590120546865207265666572656e64756d20746f206265207461626c6564207768656e6576657220697420776f756c642062652076616c696420746f207461626c6520616e2065787465726e616c2070726f706f73616c2e550120546869732068617070656e73207768656e2061207265666572656e64756d206e6565647320746f206265207461626c656420616e64206f6e65206f662074776f20636f6e646974696f6e7320617265206d65743aa4202d20604c6173745461626c656457617345787465726e616c60206973206066616c7365603b206f7268202d20605075626c696350726f70736020697320656d7074792e24426c61636b6c6973740001040624e50604000851012041207265636f7264206f662077686f207665746f656420776861742e204d6170732070726f706f73616c206861736820746f206120706f737369626c65206578697374656e7420626c6f636b206e756d626572e82028756e74696c207768656e206974206d6179206e6f742062652072657375626d69747465642920616e642077686f207665746f65642069742e3443616e63656c6c6174696f6e730101040624e80400042901205265636f7264206f6620616c6c2070726f706f73616c7320746861742068617665206265656e207375626a65637420746f20656d657267656e63792063616e63656c6c6174696f6e2e3853746f7261676556657273696f6e0000e90604000c7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e0098204e6577206e6574776f726b732073746172742077697468206c6173742076657273696f6e2e01dd0201d82c3c456e6163746d656e74506572696f6410100027060014e82054686520706572696f64206265747765656e20612070726f706f73616c206265696e6720617070726f76656420616e6420656e61637465642e0031012049742073686f756c642067656e6572616c6c792062652061206c6974746c65206d6f7265207468616e2074686520756e7374616b6520706572696f6420746f20656e737572652074686174510120766f74696e67207374616b657273206861766520616e206f70706f7274756e69747920746f2072656d6f7665207468656d73656c7665732066726f6d207468652073797374656d20696e207468652063617365b4207768657265207468657920617265206f6e20746865206c6f73696e672073696465206f66206120766f74652e304c61756e6368506572696f6410100027060004e420486f77206f6674656e2028696e20626c6f636b7329206e6577207075626c6963207265666572656e646120617265206c61756e636865642e30566f74696e67506572696f6410100027060004b820486f77206f6674656e2028696e20626c6f636b732920746f20636865636b20666f72206e657720766f7465732e44566f74654c6f636b696e67506572696f64101000270600109020546865206d696e696d756d20706572696f64206f6620766f7465206c6f636b696e672e0065012049742073686f756c64206265206e6f2073686f72746572207468616e20656e6163746d656e7420706572696f6420746f20656e73757265207468617420696e207468652063617365206f6620616e20617070726f76616c2c49012074686f7365207375636365737366756c20766f7465727320617265206c6f636b656420696e746f2074686520636f6e73657175656e636573207468617420746865697220766f74657320656e7461696c2e384d696e696d756d4465706f73697418400010a5d4e8000000000000000000000004350120546865206d696e696d756d20616d6f756e7420746f20626520757365642061732061206465706f73697420666f722061207075626c6963207265666572656e64756d2070726f706f73616c2e38496e7374616e74416c6c6f776564e804010c550120496e64696361746f7220666f72207768657468657220616e20656d657267656e6379206f726967696e206973206576656e20616c6c6f77656420746f2068617070656e2e20536f6d6520636861696e73206d617961012077616e7420746f207365742074686973207065726d616e656e746c7920746f206066616c7365602c206f7468657273206d61792077616e7420746f20636f6e646974696f6e206974206f6e207468696e67732073756368a020617320616e207570677261646520686176696e672068617070656e656420726563656e746c792e5446617374547261636b566f74696e67506572696f6410100807000004ec204d696e696d756d20766f74696e6720706572696f6420616c6c6f77656420666f72206120666173742d747261636b207265666572656e64756d2e34436f6f6c6f6666506572696f641010c089010004610120506572696f6420696e20626c6f636b7320776865726520616e2065787465726e616c2070726f706f73616c206d6179206e6f742062652072652d7375626d6974746564206166746572206265696e67207665746f65642e4c507265696d616765427974654465706f736974184000e1f5050000000000000000000000000429012054686520616d6f756e74206f662062616c616e63652074686174206d757374206265206465706f7369746564207065722062797465206f6620707265696d6167652073746f7265642e204d6178566f74657310106400000010b020546865206d6178696d756d206e756d626572206f6620766f74657320666f7220616e206163636f756e742e00d420416c736f207573656420746f20636f6d70757465207765696768742c20616e206f7665726c79206269672076616c75652063616e1501206c65616420746f2065787472696e7369632077697468207665727920626967207765696768743a20736565206064656c65676174656020666f7220696e7374616e63652e304d617850726f706f73616c73101064000000040d0120546865206d6178696d756d206e756d626572206f66207075626c69632070726f706f73616c7320746861742063616e20657869737420617420616e792074696d652e01ed060e1c436f756e63696c011c436f756e63696c182450726f706f73616c730100f106040004902054686520686173686573206f6620746865206163746976652070726f706f73616c732e2850726f706f73616c4f6600010406240902040004cc2041637475616c2070726f706f73616c20666f72206120676976656e20686173682c20696620697427732063757272656e742e18566f74696e670001040624f506040004b420566f746573206f6e206120676976656e2070726f706f73616c2c206966206974206973206f6e676f696e672e3450726f706f73616c436f756e74010010100000000004482050726f706f73616c7320736f206661722e1c4d656d626572730100dc0400043901205468652063757272656e74206d656d62657273206f662074686520636f6c6c6563746976652e20546869732069732073746f72656420736f7274656420286a7573742062792076616c7565292e145072696d65000000040004650120546865207072696d65206d656d62657220746861742068656c70732064657465726d696e65207468652064656661756c7420766f7465206265686176696f7220696e2063617365206f6620616273656e746174696f6e732e01ed0201e40001f9060f48546563686e6963616c436f6d6d69747465650148546563686e6963616c436f6d6d6974746565182450726f706f73616c730100fd06040004902054686520686173686573206f6620746865206163746976652070726f706f73616c732e2850726f706f73616c4f6600010406240902040004cc2041637475616c2070726f706f73616c20666f72206120676976656e20686173682c20696620697427732063757272656e742e18566f74696e670001040624f506040004b420566f746573206f6e206120676976656e2070726f706f73616c2c206966206974206973206f6e676f696e672e3450726f706f73616c436f756e74010010100000000004482050726f706f73616c7320736f206661722e1c4d656d626572730100dc0400043901205468652063757272656e74206d656d62657273206f662074686520636f6c6c6563746976652e20546869732069732073746f72656420736f7274656420286a7573742062792076616c7565292e145072696d65000000040004650120546865207072696d65206d656d62657220746861742068656c70732064657465726d696e65207468652064656661756c7420766f7465206265686176696f7220696e2063617365206f6620616273656e746174696f6e732e01f50201ec00010107104050687261676d656e456c656374696f6e014050687261676d656e456c656374696f6e141c4d656d626572730100050704000c74205468652063757272656e7420656c6563746564206d656d626572732e00b820496e76617269616e743a20416c7761797320736f72746564206261736564206f6e206163636f756e742069642e2452756e6e65727355700100050704001084205468652063757272656e742072657365727665642072756e6e6572732d75702e00590120496e76617269616e743a20416c7761797320736f72746564206261736564206f6e2072616e6b2028776f72736520746f2062657374292e2055706f6e2072656d6f76616c206f662061206d656d6265722c20746865bc206c6173742028692e652e205f626573745f292072756e6e65722d75702077696c6c206265207265706c616365642e2843616e646964617465730100f40400185901205468652070726573656e742063616e646964617465206c6973742e20412063757272656e74206d656d626572206f722072756e6e65722d75702063616e206e6576657220656e746572207468697320766563746f72d020616e6420697320616c7761797320696d706c696369746c7920617373756d656420746f20626520612063616e6469646174652e007c205365636f6e6420656c656d656e7420697320746865206465706f7369742e00b820496e76617269616e743a20416c7761797320736f72746564206261736564206f6e206163636f756e742069642e38456c656374696f6e526f756e647301001010000000000441012054686520746f74616c206e756d626572206f6620766f746520726f756e6473207468617420686176652068617070656e65642c206578636c7564696e6720746865207570636f6d696e67206f6e652e18566f74696e6701010405000d07840000000000000000000000000000000000000000000000000000000000000000000cb820566f74657320616e64206c6f636b6564207374616b65206f66206120706172746963756c617220766f7465722e00c42054574f582d4e4f54453a205341464520617320604163636f756e7449646020697320612063727970746f20686173682e01f90201f01c2050616c6c65744964f50120706872656c65637404d0204964656e74696669657220666f722074686520656c656374696f6e732d70687261676d656e2070616c6c65742773206c6f636b3443616e646964616379426f6e6418400010a5d4e8000000000000000000000004050120486f77206d7563682073686f756c64206265206c6f636b656420757020696e206f7264657220746f207375626d6974206f6e6527732063616e6469646163792e38566f74696e67426f6e64426173651840007013b72e000000000000000000000010942042617365206465706f736974206173736f636961746564207769746820766f74696e672e00550120546869732073686f756c642062652073656e7369626c79206869676820746f2065636f6e6f6d6963616c6c7920656e73757265207468652070616c6c65742063616e6e6f742062652061747461636b656420627994206372656174696e67206120676967616e746963206e756d626572206f6620766f7465732e40566f74696e67426f6e64466163746f72184000d012130000000000000000000000000411012054686520616d6f756e74206f6620626f6e642074686174206e65656420746f206265206c6f636b656420666f72206561636820766f746520283332206279746573292e38446573697265644d656d6265727310100d0000000470204e756d626572206f66206d656d6265727320746f20656c6563742e404465736972656452756e6e65727355701010140000000478204e756d626572206f662072756e6e6572735f757020746f206b6565702e305465726d4475726174696f6e1010c08901000c510120486f77206c6f6e6720656163682073656174206973206b6570742e205468697320646566696e657320746865206e65787420626c6f636b206e756d62657220617420776869636820616e20656c656374696f6e5d0120726f756e642077696c6c2068617070656e2e2049662073657420746f207a65726f2c206e6f20656c656374696f6e732061726520657665722074726967676572656420616e6420746865206d6f64756c652077696c6c5020626520696e2070617373697665206d6f64652e011107114c546563686e6963616c4d656d62657273686970014c546563686e6963616c4d656d62657273686970081c4d656d626572730100dc040004c8205468652063757272656e74206d656d626572736869702c2073746f72656420617320616e206f726465726564205665632e145072696d65000000040004a4205468652063757272656e74207072696d65206d656d6265722c206966206f6e65206578697374732e01010301fc0001150712205472656173757279012054726561737572790c3450726f706f73616c436f756e74010010100000000004a4204e756d626572206f662070726f706f73616c7320746861742068617665206265656e206d6164652e2450726f706f73616c73000104051019070400047c2050726f706f73616c7320746861742068617665206265656e206d6164652e24417070726f76616c7301001d07040004f82050726f706f73616c20696e646963657320746861742068617665206265656e20617070726f76656420627574206e6f742079657420617761726465642e010503010101183050726f706f73616c426f6e6421071050c30000085501204672616374696f6e206f6620612070726f706f73616c27732076616c756520746861742073686f756c6420626520626f6e64656420696e206f7264657220746f20706c616365207468652070726f706f73616c2e110120416e2061636365707465642070726f706f73616c2067657473207468657365206261636b2e20412072656a65637465642070726f706f73616c20646f6573206e6f742e4c50726f706f73616c426f6e644d696e696d756d18400010a5d4e80000000000000000000000044901204d696e696d756d20616d6f756e74206f662066756e647320746861742073686f756c6420626520706c6163656420696e2061206465706f73697420666f72206d616b696e6720612070726f706f73616c2e2c5370656e64506572696f64101000460500048820506572696f64206265747765656e2073756363657373697665207370656e64732e104275726e210710102700000411012050657263656e74616765206f662073706172652066756e64732028696620616e7929207468617420617265206275726e7420706572207370656e6420706572696f642e2050616c6c6574496425072070792f74727372790419012054686520747265617375727927732070616c6c65742069642c207573656420666f72206465726976696e672069747320736f7665726569676e206163636f756e742049442e304d6178417070726f76616c7310106400000004150120546865206d6178696d756d206e756d626572206f6620617070726f76616c7320746861742063616e207761697420696e20746865207370656e64696e672071756575652e0129071318436c61696d730118436c61696d731418436c61696d730001040609011804000014546f74616c0100184000000000000000000000000000000000001c56657374696e670001040609011903040010782056657374696e67207363686564756c6520666f72206120636c61696d2e0d012046697273742062616c616e63652069732074686520746f74616c20616d6f756e7420746861742073686f756c642062652068656c6420666f722076657374696e672ee4205365636f6e642062616c616e636520697320686f77206d7563682073686f756c6420626520756e6c6f636b65642070657220626c6f636b2ecc2054686520626c6f636b206e756d626572206973207768656e207468652076657374696e672073686f756c642073746172742e1c5369676e696e670001040609012103040004c0205468652073746174656d656e74206b696e642074686174206d757374206265207369676e65642c20696620616e792e24507265636c61696d73000104060009010400042d01205072652d636c61696d656420457468657265756d206163636f756e74732c20627920746865204163636f756e74204944207468617420746865792061726520636c61696d656420746f2e010903010501041850726566697828888450617920444f547320746f2074686520506f6c6b61646f74206163636f756e743a00012d07181c56657374696e67011c56657374696e67081c56657374696e6700010402003107040004d820496e666f726d6174696f6e20726567617264696e67207468652076657374696e67206f66206120676976656e206163636f756e742e3853746f7261676556657273696f6e0100390704000c7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e003101204e6577206e6574776f726b732073746172742077697468206c61746573742076657273696f6e2c2061732064657465726d696e6564206279207468652067656e65736973206275696c642e01250301110108444d696e5665737465645472616e73666572184000e40b5402000000000000000000000004e820546865206d696e696d756d20616d6f756e74207472616e7366657272656420746f2063616c6c20607665737465645f7472616e73666572602e4c4d617856657374696e675363686564756c657310101c00000000013d07191c5574696c69747900012d03011501044c626174636865645f63616c6c735f6c696d697410100dd2000004a820546865206c696d6974206f6e20746865206e756d626572206f6620626174636865642063616c6c732e0141071a204964656e7469747901204964656e7469747910284964656e746974794f660001040500450704000c210120496e666f726d6174696f6e20746861742069732070657274696e656e7420746f206964656e746966792074686520656e7469747920626568696e6420616e206163636f756e742e00c02054574f582d4e4f54453a204f4b20e2809520604163636f756e7449646020697320612073656375726520686173682e1c53757065724f660001040200c5030400086101205468652073757065722d6964656e74697479206f6620616e20616c7465726e6174697665202273756222206964656e7469747920746f676574686572207769746820697473206e616d652c2077697468696e2074686174510120636f6e746578742e20496620746865206163636f756e74206973206e6f7420736f6d65206f74686572206163636f756e742773207375622d6964656e746974792c207468656e206a75737420604e6f6e65602e18537562734f660101040500550744000000000000000000000000000000000014b820416c7465726e6174697665202273756222206964656e746974696573206f662074686973206163636f756e742e001d0120546865206669727374206974656d20697320746865206465706f7369742c20746865207365636f6e64206973206120766563746f72206f6620746865206163636f756e74732e00c02054574f582d4e4f54453a204f4b20e2809520604163636f756e7449646020697320612073656375726520686173682e285265676973747261727301005d070400104d012054686520736574206f6620726567697374726172732e204e6f7420657870656374656420746f206765742076657279206269672061732063616e206f6e6c79206265206164646564207468726f7567682061a8207370656369616c206f726967696e20286c696b656c79206120636f756e63696c206d6f74696f6e292e0029012054686520696e64657820696e746f20746869732063616e206265206361737420746f2060526567697374726172496e6465786020746f2067657420612076616c69642076616c75652e013503011901183042617369634465706f7369741840007db52a2f000000000000000000000004d42054686520616d6f756e742068656c64206f6e206465706f73697420666f7220612072656769737465726564206964656e74697479304669656c644465706f736974184000cd5627000000000000000000000000042d012054686520616d6f756e742068656c64206f6e206465706f73697420706572206164646974696f6e616c206669656c6420666f7220612072656769737465726564206964656e746974792e445375624163636f756e744465706f736974184080f884b02e00000000000000000000000c65012054686520616d6f756e742068656c64206f6e206465706f73697420666f7220612072656769737465726564207375626163636f756e742e20546869732073686f756c64206163636f756e7420666f7220746865206661637465012074686174206f6e652073746f72616765206974656d27732076616c75652077696c6c20696e637265617365206279207468652073697a65206f6620616e206163636f756e742049442c20616e642074686572652077696c6c350120626520616e6f746865722074726965206974656d2077686f73652076616c7565206973207468652073697a65206f6620616e206163636f756e7420494420706c75732033322062797465732e384d61785375624163636f756e7473101064000000040d0120546865206d6178696d756d206e756d626572206f66207375622d6163636f756e747320616c6c6f77656420706572206964656e746966696564206163636f756e742e4c4d61784164646974696f6e616c4669656c6473101064000000086501204d6178696d756d206e756d626572206f66206164646974696f6e616c206669656c64732074686174206d61792062652073746f72656420696e20616e2049442e204e656564656420746f20626f756e642074686520492f4fe020726571756972656420746f2061636365737320616e206964656e746974792c206275742063616e2062652070726574747920686967682e344d617852656769737472617273101014000000085101204d61786d696d756d206e756d626572206f66207265676973747261727320616c6c6f77656420696e207468652073797374656d2e204e656564656420746f20626f756e642074686520636f6d706c65786974797c206f662c20652e672e2c207570646174696e67206a756467656d656e74732e016d071c1450726f7879011450726f7879081c50726f78696573010104050071074400000000000000000000000000000000000845012054686520736574206f66206163636f756e742070726f786965732e204d61707320746865206163636f756e74207768696368206861732064656c65676174656420746f20746865206163636f756e7473210120776869636820617265206265696e672064656c65676174656420746f2c20746f67657468657220776974682074686520616d6f756e742068656c64206f6e206465706f7369742e34416e6e6f756e63656d656e74730101040500810744000000000000000000000000000000000004ac2054686520616e6e6f756e63656d656e7473206d616465206279207468652070726f787920286b6579292e01d503011d01184050726f78794465706f7369744261736518400084b2952e000000000000000000000010110120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e6720612070726f78792e00010120546869732069732068656c6420666f7220616e206164646974696f6e616c2073746f72616765206974656d2077686f73652076616c75652073697a652069732501206073697a656f662842616c616e6365296020627974657320616e642077686f7365206b65792073697a65206973206073697a656f66284163636f756e74496429602062797465732e4850726f78794465706f736974466163746f7218408066ab1300000000000000000000000014bc2054686520616d6f756e74206f662063757272656e6379206e6565646564207065722070726f78792061646465642e00350120546869732069732068656c6420666f7220616464696e6720333220627974657320706c757320616e20696e7374616e6365206f66206050726f78795479706560206d6f726520696e746f20616101207072652d6578697374696e672073746f726167652076616c75652e20546875732c207768656e20636f6e6669677572696e67206050726f78794465706f736974466163746f7260206f6e652073686f756c642074616b65f420696e746f206163636f756e7420603332202b2070726f78795f747970652e656e636f646528292e6c656e282960206279746573206f6620646174612e284d617850726f7869657310102000000004f020546865206d6178696d756d20616d6f756e74206f662070726f7869657320616c6c6f77656420666f7220612073696e676c65206163636f756e742e284d617850656e64696e6710102000000004450120546865206d6178696d756d20616d6f756e74206f662074696d652d64656c6179656420616e6e6f756e63656d656e747320746861742061726520616c6c6f77656420746f2062652070656e64696e672e5c416e6e6f756e63656d656e744465706f7369744261736518400084b2952e000000000000000000000010310120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e6720616e20616e6e6f756e63656d656e742e00490120546869732069732068656c64207768656e2061206e65772073746f72616765206974656d20686f6c64696e672061206042616c616e636560206973206372656174656420287479706963616c6c7920313620206279746573292e64416e6e6f756e63656d656e744465706f736974466163746f72184000cd562700000000000000000000000010d42054686520616d6f756e74206f662063757272656e6379206e65656465642070657220616e6e6f756e63656d656e74206d6164652e00590120546869732069732068656c6420666f7220616464696e6720616e20604163636f756e744964602c2060486173686020616e642060426c6f636b4e756d6265726020287479706963616c6c79203638206279746573298c20696e746f2061207072652d6578697374696e672073746f726167652076616c75652e0191071d204d756c746973696701204d756c746973696708244d756c746973696773000108050295079907040004942054686520736574206f66206f70656e206d756c7469736967206f7065726174696f6e732e1443616c6c7300010406049d0704000001dd030129010c2c4465706f736974426173651840008c61c52e000000000000000000000018590120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e672061206d756c746973696720657865637574696f6e206f7220746f842073746f726520612064697370617463682063616c6c20666f72206c617465722e00010120546869732069732068656c6420666f7220616e206164646974696f6e616c2073746f72616765206974656d2077686f73652076616c75652073697a652069733101206034202b2073697a656f662828426c6f636b4e756d6265722c2042616c616e63652c204163636f756e74496429296020627974657320616e642077686f7365206b65792073697a652069738020603332202b2073697a656f66284163636f756e74496429602062797465732e344465706f736974466163746f72184000d012130000000000000000000000000c55012054686520616d6f756e74206f662063757272656e6379206e65656465642070657220756e6974207468726573686f6c64207768656e206372656174696e672061206d756c746973696720657865637574696f6e2e00250120546869732069732068656c6420666f7220616464696e67203332206279746573206d6f726520696e746f2061207072652d6578697374696e672073746f726167652076616c75652e384d61785369676e61746f72696573250108640004ec20546865206d6178696d756d20616d6f756e74206f66207369676e61746f7269657320616c6c6f77656420696e20746865206d756c74697369672e01a1071e20426f756e746965730120426f756e74696573102c426f756e7479436f756e74010010100000000004c0204e756d626572206f6620626f756e74792070726f706f73616c7320746861742068617665206265656e206d6164652e20426f756e746965730001040510a5070400047820426f756e7469657320746861742068617665206265656e206d6164652e48426f756e74794465736372697074696f6e730001040510280400048020546865206465736372697074696f6e206f66206561636820626f756e74792e3c426f756e7479417070726f76616c7301007502040004ec20426f756e747920696e646963657320746861742068617665206265656e20617070726f76656420627574206e6f74207965742066756e6465642e01e5030131011c44426f756e74794465706f73697442617365184000e40b5402000000000000000000000004e82054686520616d6f756e742068656c64206f6e206465706f73697420666f7220706c6163696e67206120626f756e74792070726f706f73616c2e60426f756e74794465706f7369745061796f757444656c6179101000c20100045901205468652064656c617920706572696f6420666f72207768696368206120626f756e74792062656e6566696369617279206e65656420746f2077616974206265666f726520636c61696d20746865207061796f75742e48426f756e7479557064617465506572696f64101080c61300046c20426f756e7479206475726174696f6e20696e20626c6f636b732e50426f756e747943757261746f724465706f73697421071020a107000849012050657263656e74616765206f66207468652063757261746f722066656520746861742077696c6c20626520726573657276656420757066726f6e74206173206465706f73697420666f7220626f756e7479242063757261746f722e48426f756e747956616c75654d696e696d756d184000e876481700000000000000000000000470204d696e696d756d2076616c756520666f72206120626f756e74792e48446174614465706f73697450657242797465184000e1f5050000000000000000000000000461012054686520616d6f756e742068656c64206f6e206465706f7369742070657220627974652077697468696e2074686520746970207265706f727420726561736f6e206f7220626f756e7479206465736372697074696f6e2e4c4d6178696d756d526561736f6e4c656e6774681010004000000488204d6178696d756d2061636365707461626c6520726561736f6e206c656e6774682e01ad072210546970730110546970730810546970730001040524b10704000c650120546970734d6170207468617420617265206e6f742079657420636f6d706c657465642e204b65796564206279207468652068617368206f66206028726561736f6e2c2077686f29602066726f6d207468652076616c75652e3d012054686973206861732074686520696e73656375726520656e756d657261626c6520686173682066756e6374696f6e2073696e636520746865206b657920697473656c6620697320616c7265616479802067756172616e7465656420746f20626520612073656375726520686173682e1c526561736f6e7300010406242804000849012053696d706c6520707265696d616765206c6f6f6b75702066726f6d2074686520726561736f6e2773206861736820746f20746865206f726967696e616c20646174612e20416761696e2c2068617320616e610120696e73656375726520656e756d657261626c6520686173682073696e636520746865206b65792069732067756172616e7465656420746f2062652074686520726573756c74206f6620612073656375726520686173682e01e903013501144c4d6178696d756d526561736f6e4c656e6774681010004000000488204d6178696d756d2061636365707461626c6520726561736f6e206c656e6774682e48446174614465706f73697450657242797465184000e1f5050000000000000000000000000461012054686520616d6f756e742068656c64206f6e206465706f7369742070657220627974652077697468696e2074686520746970207265706f727420726561736f6e206f7220626f756e7479206465736372697074696f6e2e30546970436f756e74646f776e1010403800000445012054686520706572696f6420666f722077686963682061207469702072656d61696e73206f70656e20616674657220697320686173206163686965766564207468726573686f6c6420746970706572732e3454697046696e6465727346656571020414043501205468652070657263656e74206f66207468652066696e616c2074697020776869636820676f657320746f20746865206f726967696e616c207265706f72746572206f6620746865207469702e505469705265706f72744465706f73697442617365184000e40b5402000000000000000000000004d42054686520616d6f756e742068656c64206f6e206465706f73697420666f7220706c6163696e67206120746970207265706f72742e01b5072368456c656374696f6e50726f76696465724d756c746950686173650168456c656374696f6e50726f76696465724d756c746950686173652814526f756e64010010100100000018ac20496e7465726e616c20636f756e74657220666f7220746865206e756d626572206f6620726f756e64732e00550120546869732069732075736566756c20666f722064652d6475706c69636174696f6e206f66207472616e73616374696f6e73207375626d697474656420746f2074686520706f6f6c2c20616e642067656e6572616c6c20646961676e6f7374696373206f66207468652070616c6c65742e004d012054686973206973206d6572656c7920696e6372656d656e746564206f6e6365207065722065766572792074696d65207468617420616e20757073747265616d2060656c656374602069732063616c6c65642e3043757272656e7450686173650100b9070400043c2043757272656e742070686173652e38517565756564536f6c7574696f6e0000c1070400043d012043757272656e74206265737420736f6c7574696f6e2c207369676e6564206f7220756e7369676e65642c2071756575656420746f2062652072657475726e65642075706f6e2060656c656374602e20536e617073686f740000c50704000c7020536e617073686f742064617461206f662074686520726f756e642e005d01205468697320697320637265617465642061742074686520626567696e6e696e67206f6620746865207369676e656420706861736520616e6420636c65617265642075706f6e2063616c6c696e672060656c656374602e38446573697265645461726765747300001004000ccc2044657369726564206e756d626572206f66207461726765747320746f20656c65637420666f72207468697320726f756e642e00a8204f6e6c7920657869737473207768656e205b60536e617073686f74605d2069732070726573656e742e40536e617073686f744d657461646174610000c50404000c9820546865206d65746164617461206f6620746865205b60526f756e64536e617073686f74605d00a8204f6e6c7920657869737473207768656e205b60536e617073686f74605d2069732070726573656e742e645369676e65645375626d697373696f6e4e657874496e646578010010100000000024010120546865206e65787420696e64657820746f2062652061737369676e656420746f20616e20696e636f6d696e67207369676e6564207375626d697373696f6e2e007501204576657279206163636570746564207375626d697373696f6e2069732061737369676e6564206120756e6971756520696e6465783b207468617420696e64657820697320626f756e6420746f207468617420706172746963756c61726501207375626d697373696f6e20666f7220746865206475726174696f6e206f662074686520656c656374696f6e2e204f6e20656c656374696f6e2066696e616c697a6174696f6e2c20746865206e65787420696e6465782069733020726573657420746f20302e0069012057652063616e2774206a7573742075736520605369676e65645375626d697373696f6e496e64696365732e6c656e2829602c206265636175736520746861742773206120626f756e646564207365743b20706173742069747359012063617061636974792c2069742077696c6c2073696d706c792073617475726174652e2057652063616e2774206a7573742069746572617465206f76657220605369676e65645375626d697373696f6e734d6170602cf4206265636175736520697465726174696f6e20697320736c6f772e20496e73746561642c2077652073746f7265207468652076616c756520686572652e5c5369676e65645375626d697373696f6e496e64696365730100d1070400184d01204120736f727465642c20626f756e64656420736574206f6620602873636f72652c20696e64657829602c20776865726520656163682060696e6465786020706f696e747320746f20612076616c756520696e5420605369676e65645375626d697373696f6e73602e007101205765206e65766572206e65656420746f2070726f63657373206d6f7265207468616e20612073696e676c65207369676e6564207375626d697373696f6e20617420612074696d652e205369676e6564207375626d697373696f6e7375012063616e206265207175697465206c617267652c20736f2077652772652077696c6c696e6720746f207061792074686520636f7374206f66206d756c7469706c6520646174616261736520616363657373657320746f206163636573732101207468656d206f6e6520617420612074696d6520696e7374656164206f662072656164696e6720616e64206465636f64696e6720616c6c206f66207468656d206174206f6e63652e505369676e65645375626d697373696f6e734d61700101040510e10711020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000001c7420556e636865636b65642c207369676e656420736f6c7574696f6e732e00690120546f676574686572207769746820605375626d697373696f6e496e6469636573602c20746869732073746f726573206120626f756e64656420736574206f6620605369676e65645375626d697373696f6e7360207768696c65ec20616c6c6f77696e6720757320746f206b656570206f6e6c7920612073696e676c65206f6e6520696e206d656d6f727920617420612074696d652e0069012054776f78206e6f74653a20746865206b6579206f6620746865206d617020697320616e206175746f2d696e6372656d656e74696e6720696e6465782077686963682075736572732063616e6e6f7420696e7370656374206f72f4206166666563743b2077652073686f756c646e2774206e65656420612063727970746f67726170686963616c6c7920736563757265206861736865722e544d696e696d756d556e7472757374656453636f72650000c1040400105d0120546865206d696e696d756d2073636f7265207468617420656163682027756e747275737465642720736f6c7574696f6e206d7573742061747461696e20696e206f7264657220746f20626520636f6e7369646572656428206665617369626c652e00b82043616e206265207365742076696120607365745f6d696e696d756d5f756e747275737465645f73636f7265602e01ed030139013834556e7369676e656450686173651010580200000480204475726174696f6e206f662074686520756e7369676e65642070686173652e2c5369676e656450686173651010580200000478204475726174696f6e206f6620746865207369676e65642070686173652e70536f6c7574696f6e496d70726f76656d656e745468726573686f6c64b9011020a10700084d0120546865206d696e696d756d20616d6f756e74206f6620696d70726f76656d656e7420746f2074686520736f6c7574696f6e2073636f7265207468617420646566696e6573206120736f6c7574696f6e206173642022626574746572222028696e20616e79207068617365292e384f6666636861696e52657065617410100500000010b42054686520726570656174207468726573686f6c64206f6620746865206f6666636861696e20776f726b65722e00610120466f72206578616d706c652c20696620697420697320352c2074686174206d65616e732074686174206174206c65617374203520626c6f636b732077696c6c20656c61707365206265747765656e20617474656d7074738420746f207375626d69742074686520776f726b6572277320736f6c7574696f6e2e3c4d696e657254785072696f72697479202065666666666666e604250120546865207072696f72697479206f662074686520756e7369676e6564207472616e73616374696f6e207375626d697474656420696e2074686520756e7369676e65642d7068617365384d696e65724d61785765696768742020c08466655701000010b8204d6178696d756d20776569676874207468617420746865206d696e65722073686f756c6420636f6e73756d652e00550120546865206d696e65722077696c6c20656e7375726520746861742074686520746f74616c20776569676874206f662074686520756e7369676e656420736f6c7574696f6e2077696c6c206e6f7420657863656564d820746869732076616c75652c206261736564206f6e205b60576569676874496e666f3a3a7375626d69745f756e7369676e6564605d2e505369676e65644d61785375626d697373696f6e731010100000001ce4204d6178696d756d206e756d626572206f66207369676e6564207375626d697373696f6e7320746861742063616e206265207175657565642e005501204974206973206265737420746f2061766f69642061646a757374696e67207468697320647572696e6720616e20656c656374696f6e2c20617320697420696d706163747320646f776e73747265616d2064617461650120737472756374757265732e20496e20706172746963756c61722c20605369676e65645375626d697373696f6e496e64696365733c543e6020697320626f756e646564206f6e20746869732076616c75652e20496620796f75f42075706461746520746869732076616c756520647572696e6720616e20656c656374696f6e2c20796f75205f6d7573745f20656e7375726520746861744d0120605369676e65645375626d697373696f6e496e64696365732e6c656e282960206973206c657373207468616e206f7220657175616c20746f20746865206e65772076616c75652e204f74686572776973652cf020617474656d70747320746f207375626d6974206e657720736f6c7574696f6e73206d617920636175736520612072756e74696d652070616e69632e3c5369676e65644d61785765696768742020c0846665570100000c94204d6178696d756d20776569676874206f662061207369676e656420736f6c7574696f6e2e00fc20546869732073686f756c642070726f6261626c792062652073696d696c617220746f205b60436f6e6669673a3a4d696e65724d6178576569676874605d2e405369676e656452657761726442617365184000e40b54020000000000000000000000048820426173652072657761726420666f722061207369676e656420736f6c7574696f6e445369676e65644465706f73697442617365184000a0db215d000000000000000000000004902042617365206465706f73697420666f722061207369676e656420736f6c7574696f6e2e445369676e65644465706f736974427974651840787d010000000000000000000000000004a0205065722d62797465206465706f73697420666f722061207369676e656420736f6c7574696f6e2e4c5369676e65644465706f73697457656967687418400000000000000000000000000000000004a8205065722d776569676874206465706f73697420666f722061207369676e656420736f6c7574696f6e2e54566f746572536e617073686f74506572426c6f636b1010e4570000185d0120546865206d6178696d756d206e756d626572206f6620766f7465727320746f2070757420696e2074686520736e617073686f742e20417420746865206d6f6d656e742c20736e617073686f747320617265206f6e6c796101206f76657220612073696e676c6520626c6f636b2c20627574206f6e6365206d756c74692d626c6f636b20656c656374696f6e732061726520696e74726f647563656420746865792077696c6c2074616b6520706c61636558206f766572206d756c7469706c6520626c6f636b732e00310120416c736f2c206e6f746520746865206461746120747970653a2049662074686520766f746572732061726520726570726573656e746564206279206120607533326020696e206074797065390120436f6d70616374536f6c7574696f6e602c207468652073616d652060753332602069732075736564206865726520746f20656e7375726520626f756e647320617265207265737065637465642e384d696e65724d61784c656e67746810100000360010fc204d6178696d756d206c656e6774682028627974657329207468617420746865206d696e656420736f6c7574696f6e2073686f756c6420636f6e73756d652e00550120546865206d696e65722077696c6c20656e7375726520746861742074686520746f74616c206c656e677468206f662074686520756e7369676e656420736f6c7574696f6e2077696c6c206e6f74206578636565643020746869732076616c75652e01e507244050617261636861696e734f726967696e00000000003234436f6e66696775726174696f6e0134436f6e66696775726174696f6e0830416374697665436f6e6669670100e907e90200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000100000001000000000000000000060000006400000002000000c8000000010000000000000000000000000000000000000000c817a80400000004c8205468652061637469766520636f6e66696775726174696f6e20666f72207468652063757272656e742073657373696f6e2e3450656e64696e67436f6e6669670001040510e907040004d42050656e64696e6720636f6e66696775726174696f6e2028696620616e792920666f7220746865206e6578742073657373696f6e2e01d904000001ed07332c5061726173536861726564012c50617261735368617265640c4c43757272656e7453657373696f6e496e6465780100101000000000046c205468652063757272656e742073657373696f6e20696e6465782e5841637469766556616c696461746f72496e64696365730100f107040008090120416c6c207468652076616c696461746f7273206163746976656c792070617274696369706174696e6720696e2070617261636861696e20636f6e73656e7375732eb020496e64696365732061726520696e746f207468652062726f616465722076616c696461746f72207365742e4c41637469766556616c696461746f724b6579730100f5070400088101205468652070617261636861696e206174746573746174696f6e206b657973206f66207468652076616c696461746f7273206163746976656c792070617274696369706174696e6720696e2070617261636861696e20636f6e73656e7375732ef020546869732073686f756c64206265207468652073616d65206c656e677468206173206041637469766556616c696461746f72496e6469636573602e01dd04000000343450617261496e636c7573696f6e013450617261496e636c7573696f6e0c54417661696c6162696c6974794269746669656c6473000104050105f907040004650120546865206c6174657374206269746669656c6420666f7220656163682076616c696461746f722c20726566657272656420746f20627920746865697220696e64657820696e207468652076616c696461746f72207365742e4c50656e64696e67417661696c6162696c697479000104055101fd07040004b42043616e646964617465732070656e64696e6720617661696c6162696c6974792062792060506172614964602e7850656e64696e67417661696c6162696c697479436f6d6d69746d656e7473000104055101150504000405012054686520636f6d6d69746d656e7473206f662063616e646964617465732070656e64696e6720617661696c6162696c6974792c2062792060506172614964602e01e10401450100010108353050617261496e686572656e74013050617261496e686572656e740420496e636c75646564000080040018ec20576865746865722074686520706172617320696e686572656e742077617320696e636c756465642077697468696e207468697320626c6f636b2e0069012054686520604f7074696f6e3c28293e60206973206566666563746976656c7920612060626f6f6c602c20627574206974206e6576657220686974732073746f7261676520696e2074686520604e6f6e65602076617269616e74bc2064756520746f207468652067756172616e74656573206f66204652414d4527732073746f7261676520415049732e004901204966207468697320697320604e6f6e65602061742074686520656e64206f662074686520626c6f636b2c2077652070616e696320616e642072656e6465722074686520626c6f636b20696e76616c69642e01e50400000105083634506172615363686564756c65720134506172615363686564756c6572183c56616c696461746f7247726f757073010009080400186d0120416c6c207468652076616c696461746f722067726f7570732e204f6e6520666f72206561636820636f72652e20496e64696365732061726520696e746f206041637469766556616c696461746f727360202d206e6f74207468656d012062726f6164657220736574206f6620506f6c6b61646f742076616c696461746f72732c2062757420696e7374656164206a7573742074686520737562736574207573656420666f722070617261636861696e7320647572696e673820746869732073657373696f6e2e00810120426f756e643a20546865206e756d626572206f6620636f726573206973207468652073756d206f6620746865206e756d62657273206f662070617261636861696e7320616e642070617261746872656164206d756c7469706c65786572732e810120526561736f6e61626c792c203130302d313030302e2054686520646f6d696e616e7420666163746f7220697320746865206e756d626572206f662076616c696461746f72733a207361666520757070657220626f756e642061742031306b2e3c50617261746872656164517565756501000d081400000000001019012041207175657565206f66207570636f6d696e6720636c61696d7320616e6420776869636820636f726520746865792073686f756c64206265206d6170706564206f6e746f2e00150120546865206e756d626572206f662071756575656420636c61696d7320697320626f756e6465642061742074686520607363686564756c696e675f6c6f6f6b6168656164605501206d756c7469706c69656420627920746865206e756d626572206f662070617261746872656164206d756c7469706c6578657220636f7265732e20526561736f6e61626c792c203130202a203530203d203530302e44417661696c6162696c697479436f726573010021080400209d01204f6e6520656e74727920666f72206561636820617661696c6162696c69747920636f72652e20456e74726965732061726520604e6f6e65602069662074686520636f7265206973206e6f742063757272656e746c79206f636375706965642e2043616e206265c82074656d706f726172696c792060536f6d6560206966207363686564756c656420627574206e6f74206f636375706965642e41012054686520692774682070617261636861696e2062656c6f6e677320746f20746865206927746820636f72652c2077697468207468652072656d61696e696e6720636f72657320616c6c206265696e676420706172617468726561642d6d756c7469706c65786572732e00d820426f756e64656420627920746865206d6178696d756d206f6620656974686572206f662074686573652074776f2076616c7565733ae42020202a20546865206e756d626572206f662070617261636861696e7320616e642070617261746872656164206d756c7469706c657865727345012020202a20546865206e756d626572206f662076616c696461746f727320646976696465642062792060636f6e66696775726174696f6e2e6d61785f76616c696461746f72735f7065725f636f7265602e5050617261746872656164436c61696d496e64657801002d08040010590120416e20696e646578207573656420746f20656e737572652074686174206f6e6c79206f6e6520636c61696d206f6e206120706172617468726561642065786973747320696e20746865207175657565206f72206973b42063757272656e746c79206265696e672068616e646c656420627920616e206f6363757069656420636f72652e007d0120426f756e64656420627920746865206e756d626572206f66207061726174687265616420636f72657320616e64207363686564756c696e67206c6f6f6b61686561642e20526561736f6e61626c792c203130202a203530203d203530302e4453657373696f6e5374617274426c6f636b010010100000000018a5012054686520626c6f636b206e756d626572207768657265207468652073657373696f6e207374617274206f636375727265642e205573656420746f20747261636b20686f77206d616e792067726f757020726f746174696f6e732068617665206f636375727265642e005501204e6f7465207468617420696e2074686520636f6e74657874206f662070617261636861696e73206d6f64756c6573207468652073657373696f6e206368616e6765206973207369676e616c656420647572696e6761012074686520626c6f636b20616e6420656e61637465642061742074686520656e64206f662074686520626c6f636b20286174207468652066696e616c697a6174696f6e2073746167652c20746f206265206578616374292e5901205468757320666f7220616c6c20696e74656e747320616e6420707572706f7365732074686520656666656374206f66207468652073657373696f6e206368616e6765206973206f6273657276656420617420746865650120626c6f636b20666f6c6c6f77696e67207468652073657373696f6e206368616e67652c20626c6f636b206e756d626572206f66207768696368207765207361766520696e20746869732073746f726167652076616c75652e245363686564756c656401003108040018e02043757272656e746c79207363686564756c656420636f726573202d20667265652062757420757020746f206265206f636375706965642e004d0120426f756e64656420627920746865206e756d626572206f6620636f7265733a206f6e6520666f7220656163682070617261636861696e20616e642070617261746872656164206d756c7469706c657865722e00fd01205468652076616c756520636f6e7461696e656420686572652077696c6c206e6f742062652076616c69642061667465722074686520656e64206f66206120626c6f636b2e2052756e74696d6520415049732073686f756c64206265207573656420746f2064657465726d696e65207363686564756c656420636f7265732f6020666f7220746865207570636f6d696e6720626c6f636b2e000000003714506172617301145061726173442850617261636861696e7301002d08040004350120416c6c2070617261636861696e732e204f72646572656420617363656e64696e672062792060506172614964602e20506172617468726561647320617265206e6f7420696e636c756465642e38506172614c6966656379636c65730001040551013d08040004bc205468652063757272656e74206c6966656379636c65206f66206120616c6c206b6e6f776e2050617261204944732e1448656164730001040551016901040004a02054686520686561642d64617461206f66206576657279207265676973746572656420706172612e3c43757272656e74436f646548617368000104055101650104000cb4205468652076616c69646174696f6e20636f64652068617368206f66206576657279206c69766520706172612e00e420436f72726573706f6e64696e6720636f64652063616e206265207265747269657665642077697468205b60436f6465427948617368605d2e3050617374436f646548617368000104054108650104001061012041637475616c207061737420636f646520686173682c20696e646963617465642062792074686520706172612069642061732077656c6c2061732074686520626c6f636b206e756d6265722061742077686963682069744420626563616d65206f757464617465642e00e420436f72726573706f6e64696e6720636f64652063616e206265207265747269657665642077697468205b60436f6465427948617368605d2e3050617374436f64654d65746101010405510145080800000c4901205061737420636f6465206f662070617261636861696e732e205468652070617261636861696e73207468656d73656c766573206d6179206e6f74206265207265676973746572656420616e796d6f72652c49012062757420776520616c736f206b65657020746865697220636f6465206f6e2d636861696e20666f72207468652073616d6520616d6f756e74206f662074696d65206173206f7574646174656420636f6465b420746f206b65657020697420617661696c61626c6520666f72207365636f6e6461727920636865636b6572732e3c50617374436f64655072756e696e6701005108040018a1012057686963682070617261732068617665207061737420636f64652074686174206e65656473207072756e696e6720616e64207468652072656c61792d636861696e20626c6f636b2061742077686963682074686520636f646520776173207265706c616365642e8101204e6f746520746861742074686973206973207468652061637475616c20686569676874206f662074686520696e636c7564656420626c6f636b2c206e6f74207468652065787065637465642068656967687420617420776869636820746865ec20636f6465207570677261646520776f756c64206265206170706c6965642c20616c74686f7567682074686579206d617920626520657175616c2e9101205468697320697320746f20656e737572652074686520656e7469726520616363657074616e636520706572696f6420697320636f76657265642c206e6f7420616e206f666673657420616363657074616e636520706572696f64207374617274696e6749012066726f6d207468652074696d65206174207768696368207468652070617261636861696e20706572636569766573206120636f6465207570677261646520617320686176696e67206f636375727265642e5501204d756c7469706c6520656e747269657320666f7220612073696e676c65207061726120617265207065726d69747465642e204f72646572656420617363656e64696e6720627920626c6f636b206e756d6265722e48467574757265436f646555706772616465730001040551011004000c29012054686520626c6f636b206e756d6265722061742077686963682074686520706c616e6e656420636f6465206368616e676520697320657870656374656420666f72206120706172612e650120546865206368616e67652077696c6c206265206170706c696564206166746572207468652066697273742070617261626c6f636b20666f72207468697320494420696e636c75646564207768696368206578656375746573190120696e2074686520636f6e74657874206f6620612072656c617920636861696e20626c6f636b20776974682061206e756d626572203e3d206065787065637465645f6174602e38467574757265436f646548617368000104055101650104000c9c205468652061637475616c2066757475726520636f64652068617368206f66206120706172612e00e420436f72726573706f6e64696e6720636f64652063616e206265207265747269657665642077697468205b60436f6465427948617368605d2e5055706772616465476f41686561645369676e616c0001040551015508040024a10120546869732069732075736564206279207468652072656c61792d636861696e20746f20636f6d6d756e696361746520746f20612070617261636861696e206120676f2d6168656164207769746820696e2074686520757067726164652070726f6365647572652e00750120546869732076616c756520697320616273656e74207768656e20746865726520617265206e6f207570677261646573207363686564756c6564206f7220647572696e67207468652074696d65207468652072656c617920636861696e7d0120706572666f726d732074686520636865636b732e20497420697320736574206174207468652066697273742072656c61792d636861696e20626c6f636b207768656e2074686520636f72726573706f6e64696e672070617261636861696e65012063616e207377697463682069747320757067726164652066756e6374696f6e2e20417320736f6f6e206173207468652070617261636861696e277320626c6f636b20697320696e636c756465642c207468652076616c756558206765747320726573657420746f20604e6f6e65602e006501204e4f544520746861742074686973206669656c6420697320757365642062792070617261636861696e7320766961206d65726b6c652073746f726167652070726f6f66732c207468657265666f7265206368616e67696e67c42074686520666f726d61742077696c6c2072657175697265206d6967726174696f6e206f662070617261636861696e732e60557067726164655265737472696374696f6e5369676e616c0001040551015908040024690120546869732069732075736564206279207468652072656c61792d636861696e20746f20636f6d6d756e6963617465207468617420746865726520617265207265737472696374696f6e7320666f7220706572666f726d696e677c20616e207570677261646520666f7220746869732070617261636861696e2e0059012054686973206d617920626520612062656361757365207468652070617261636861696e20776169747320666f7220746865207570677261646520636f6f6c646f776e20746f206578706972652e20416e6f746865726d0120706f74656e7469616c207573652063617365206973207768656e2077652077616e7420746f20706572666f726d20736f6d65206d61696e74656e616e63652028737563682061732073746f72616765206d6967726174696f6e29e020776520636f756c6420726573747269637420757067726164657320746f206d616b65207468652070726f636573732073696d706c65722e006501204e4f544520746861742074686973206669656c6420697320757365642062792070617261636861696e7320766961206d65726b6c652073746f726167652070726f6f66732c207468657265666f7265206368616e67696e67c42074686520666f726d61742077696c6c2072657175697265206d6967726174696f6e206f662070617261636861696e732e4055706772616465436f6f6c646f776e730100510804000c510120546865206c697374206f662070617261636861696e73207468617420617265206177616974696e6720666f722074686569722075706772616465207265737472696374696f6e20746f20636f6f6c646f776e2e008c204f72646572656420617363656e64696e6720627920626c6f636b206e756d6265722e405570636f6d696e67557067726164657301005108040010590120546865206c697374206f66207570636f6d696e6720636f64652075706772616465732e2045616368206974656d20697320612070616972206f66207768696368207061726120706572666f726d73206120636f6465e8207570677261646520616e642061742077686963682072656c61792d636861696e20626c6f636b2069742069732065787065637465642061742e008c204f72646572656420617363656e64696e6720627920626c6f636b206e756d6265722e30416374696f6e73517565756501010405102d0804000415012054686520616374696f6e7320746f20706572666f726d20647572696e6720746865207374617274206f6620612073706563696669632073657373696f6e20696e6465782e505570636f6d696e67506172617347656e657369730001040551015d08040004a0205570636f6d696e6720706172617320696e7374616e74696174696f6e20617267756d656e74732e38436f64654279486173685265667301010406650110100000000004290120546865206e756d626572206f66207265666572656e6365206f6e207468652076616c69646174696f6e20636f646520696e205b60436f6465427948617368605d2073746f726167652e28436f64654279486173680001040665012505040010902056616c69646174696f6e20636f64652073746f7265642062792069747320686173682e00310120546869732073746f7261676520697320636f6e73697374656e742077697468205b60467574757265436f646548617368605d2c205b6043757272656e74436f646548617368605d20616e6448205b6050617374436f646548617368605d2e01510501750100016108382c496e697469616c697a6572012c496e697469616c697a65720838486173496e697469616c697a656400008004002021012057686574686572207468652070617261636861696e73206d6f64756c65732068617665206265656e20696e697469616c697a65642077697468696e207468697320626c6f636b2e0025012053656d616e746963616c6c7920612060626f6f6c602c2062757420746869732067756172616e746565732069742073686f756c64206e65766572206869742074686520747269652c6901206173207468697320697320636c656172656420696e20606f6e5f66696e616c697a656020616e64204672616d65206f7074696d697a657320604e6f6e65602076616c75657320746f20626520656d7074792076616c7565732e007d0120417320612060626f6f6c602c20607365742866616c7365296020616e64206072656d6f766528296020626f7468206c65616420746f20746865206e6578742060676574282960206265696e672066616c73652c20627574206f6e65206f667901207468656d2077726974657320746f20746865207472696520616e64206f6e6520646f6573206e6f742e205468697320636f6e667573696f6e206d616b657320604f7074696f6e3c28293e60206d6f7265207375697461626c6520666f7280207468652073656d616e74696373206f662074686973207661726961626c652e58427566666572656453657373696f6e4368616e6765730100650804001c59012042756666657265642073657373696f6e206368616e67657320616c6f6e6720776974682074686520626c6f636b206e756d62657220617420776869636820746865792073686f756c64206265206170706c6965642e005d01205479706963616c6c7920746869732077696c6c20626520656d707479206f72206f6e6520656c656d656e74206c6f6e672e2041706172742066726f6d20746861742074686973206974656d206e65766572206869747334207468652073746f726167652e00690120486f776576657220746869732069732061206056656360207265676172646c65737320746f2068616e646c6520766172696f757320656467652063617365732074686174206d6179206f636375722061742072756e74696d65c0207570677261646520626f756e646172696573206f7220696620676f7665726e616e636520696e74657276656e65732e015505000000390c446d70010c446d700854446f776e776172644d6573736167655175657565730101040551016d08040004d02054686520646f776e77617264206d657373616765732061646472657373656420666f722061206365727461696e20706172612e64446f776e776172644d65737361676551756575654865616473010104055101248000000000000000000000000000000000000000000000000000000000000000001c25012041206d617070696e6720746861742073746f7265732074686520646f776e77617264206d657373616765207175657565204d5143206865616420666f72206561636820706172612e00902045616368206c696e6b20696e207468697320636861696e20686173206120666f726d3a78206028707265765f686561642c20422c2048284d2929602c207768657265e8202d2060707265765f68656164603a206973207468652070726576696f757320686561642068617368206f72207a65726f206966206e6f6e652e2101202d206042603a206973207468652072656c61792d636861696e20626c6f636b206e756d62657220696e2077686963682061206d6573736167652077617320617070656e6465642ed4202d206048284d29603a206973207468652068617368206f6620746865206d657373616765206265696e6720617070656e6465642e0159050000003a0c556d70010c556d70184c52656c61794469737061746368517565756573010104055101c501040018710120546865206d657373616765732077616974696e6720746f2062652068616e646c6564206279207468652072656c61792d636861696e206f726967696e6174696e672066726f6d2061206365727461696e2070617261636861696e2e007901204e6f7465207468617420736f6d6520757077617264206d65737361676573206d696768742068617665206265656e20616c72656164792070726f6365737365642062792074686520696e636c7573696f6e206c6f6769632e20452e672e74206368616e6e656c206d616e6167656d656e74206d657373616765732e00a820546865206d65737361676573206172652070726f63657373656420696e204649464f206f726465722e5852656c61794469737061746368517565756553697a65010104055101742000000000000000002c45012053697a65206f6620746865206469737061746368207175657565732e204361636865732073697a6573206f66207468652071756575657320696e206052656c617944697370617463685175657565602e00f0204669727374206974656d20696e20746865207475706c652069732074686520636f756e74206f66206d6573736167657320616e64207365636f6e64e02069732074686520746f74616c206c656e6774682028696e20627974657329206f6620746865206d657373616765207061796c6f6164732e007901204e6f74652074686174207468697320697320616e20617578696c69617279206d617070696e673a206974277320706f737369626c6520746f2074656c6c2074686520627974652073697a6520616e6420746865206e756d626572206f667901206d65737361676573206f6e6c79206c6f6f6b696e67206174206052656c61794469737061746368517565756573602e2054686973206d617070696e6720697320736570617261746520746f2061766f69642074686520636f7374206f663d01206c6f6164696e67207468652077686f6c65206d657373616765207175657565206966206f6e6c792074686520746f74616c2073697a6520616e6420636f756e74206172652072657175697265642e002c20496e76617269616e743a4501202d2054686520736574206f66206b6579732073686f756c642065786163746c79206d617463682074686520736574206f66206b657973206f66206052656c61794469737061746368517565756573602e344e65656473446973706174636801002d08040014190120546865206f726465726564206c697374206f6620605061726149646073207468617420686176652061206052656c6179446973706174636851756575656020656e7472792e002c20496e76617269616e743a3501202d2054686520736574206f66206974656d732066726f6d207468697320766563746f722073686f756c642062652065786163746c792074686520736574206f6620746865206b65797320696ed82020206052656c617944697370617463685175657565736020616e64206052656c61794469737061746368517565756553697a65602e684e6578744469737061746368526f756e64537461727457697468000051010400147d012054686973206973207468652070617261207468617420676574732077696c6c20676574206469737061746368656420666972737420647572696e6720746865206e6578742075707761726420646973706174636861626c652071756575654420657865637574696f6e20726f756e642e002c20496e76617269616e743a0d01202d2049662060536f6d65287061726129602c207468656e20607061726160206d7573742062652070726573656e7420696e20604e656564734469737061746368602e284f7665727765696768740001040520750804000c050120546865206d657373616765732074686174206578636565646564206d617820696e646976696475616c206d65737361676520776569676874206275646765742e00d4205468657365206d65737361676573207374617920746865726520756e74696c206d616e75616c6c7920646973706174636865642e3c4f766572776569676874436f756e7401002020000000000000000008690120546865206e756d626572206f66206f766572776569676874206d657373616765732065766572207265636f7264656420696e20604f766572776569676874602028616e64207468757320746865206c6f7765737420667265652020696e646578292e015d05017901000179083b1048726d70011048726d70305c48726d704f70656e4368616e6e656c52657175657374730001040589017d08040018bc2054686520736574206f662070656e64696e672048524d50206f70656e206368616e6e656c2072657175657374732e00c02054686520736574206973206163636f6d70616e6965642062792061206c69737420666f7220697465726174696f6e2e002c20496e76617269616e743a3d01202d20546865726520617265206e6f206368616e6e656c7320746861742065786973747320696e206c69737420627574206e6f7420696e207468652073657420616e6420766963652076657273612e6c48726d704f70656e4368616e6e656c52657175657374734c697374010081080400006c48726d704f70656e4368616e6e656c52657175657374436f756e740101040551011010000000000c65012054686973206d617070696e6720747261636b7320686f77206d616e79206f70656e206368616e6e656c2072657175657374732061726520696e69746961746564206279206120676976656e2073656e64657220706172612e7d0120496e76617269616e743a206048726d704f70656e4368616e6e656c5265717565737473602073686f756c6420636f6e7461696e207468652073616d65206e756d626572206f66206974656d73207468617420686173206028582c205f2960e020617320746865206e756d626572206f66206048726d704f70656e4368616e6e656c52657175657374436f756e746020666f72206058602e7c48726d7041636365707465644368616e6e656c52657175657374436f756e740101040551011010000000000c71012054686973206d617070696e6720747261636b7320686f77206d616e79206f70656e206368616e6e656c2072657175657374732077657265206163636570746564206279206120676976656e20726563697069656e7420706172612e6d0120496e76617269616e743a206048726d704f70656e4368616e6e656c5265717565737473602073686f756c6420636f6e7461696e207468652073616d65206e756d626572206f66206974656d732060285f2c20582960207769746855012060636f6e6669726d6564602073657420746f20747275652c20617320746865206e756d626572206f66206048726d7041636365707465644368616e6e656c52657175657374436f756e746020666f72206058602e6048726d70436c6f73654368616e6e656c52657175657374730001040589018004001c9101204120736574206f662070656e64696e672048524d5020636c6f7365206368616e6e656c20726571756573747320746861742061726520676f696e6720746f20626520636c6f73656420647572696e67207468652073657373696f6e206368616e67652e0101205573656420666f7220636865636b696e67206966206120676976656e206368616e6e656c206973207265676973746572656420666f7220636c6f737572652e00c02054686520736574206973206163636f6d70616e6965642062792061206c69737420666f7220697465726174696f6e2e002c20496e76617269616e743a3d01202d20546865726520617265206e6f206368616e6e656c7320746861742065786973747320696e206c69737420627574206e6f7420696e207468652073657420616e6420766963652076657273612e7048726d70436c6f73654368616e6e656c52657175657374734c697374010081080400003848726d7057617465726d61726b730001040551011004000cb8205468652048524d502077617465726d61726b206173736f6369617465642077697468206561636820706172612e2c20496e76617269616e743a7901202d2065616368207061726120605060207573656420686572652061732061206b65792073686f756c642073617469736679206050617261733a3a69735f76616c69645f70617261285029602077697468696e20612073657373696f6e2e3048726d704368616e6e656c73000104058901850804000cb42048524d50206368616e6e656c2064617461206173736f6369617465642077697468206561636820706172612e2c20496e76617269616e743a7501202d2065616368207061727469636970616e7420696e20746865206368616e6e656c2073686f756c642073617469736679206050617261733a3a69735f76616c69645f70617261285029602077697468696e20612073657373696f6e2e6048726d70496e67726573734368616e6e656c73496e6465780101040551012d08040034590120496e67726573732f65677265737320696e646578657320616c6c6f7720746f2066696e6420616c6c207468652073656e6465727320616e642072656365697665727320676976656e20746865206f70706f736974652c20736964652e20492e652e0021012028612920696e677265737320696e64657820616c6c6f777320746f2066696e6420616c6c207468652073656e6465727320666f72206120676976656e20726563697069656e742e1d01202862292065677265737320696e64657820616c6c6f777320746f2066696e6420616c6c2074686520726563697069656e747320666f72206120676976656e2073656e6465722e003020496e76617269616e74733a8d01202d20666f72206561636820696e677265737320696e64657820656e74727920666f72206050602065616368206974656d2060496020696e2074686520696e6465782073686f756c642070726573656e7420696e206048726d704368616e6e656c73603c2020206173206028492c205029602e8901202d20666f7220656163682065677265737320696e64657820656e74727920666f72206050602065616368206974656d2060456020696e2074686520696e6465782073686f756c642070726573656e7420696e206048726d704368616e6e656c73603c2020206173206028502c204529602e0101202d2074686572652073686f756c64206265206e6f206f746865722064616e676c696e67206368616e6e656c7320696e206048726d704368616e6e656c73602e68202d2074686520766563746f72732061726520736f727465642e5c48726d704567726573734368616e6e656c73496e6465780101040551012d080400004c48726d704368616e6e656c436f6e74656e74730101040589018d08040008ac2053746f7261676520666f7220746865206d6573736167657320666f722065616368206368616e6e656c2e650120496e76617269616e743a2063616e6e6f74206265206e6f6e2d656d7074792069662074686520636f72726573706f6e64696e67206368616e6e656c20696e206048726d704368616e6e656c736020697320604e6f6e65602e4848726d704368616e6e656c44696765737473010104055101950804001cf4204d61696e7461696e732061206d617070696e6720746861742063616e206265207573656420746f20616e7377657220746865207175657374696f6e3a290120576861742070617261732073656e742061206d6573736167652061742074686520676976656e20626c6f636b206e756d62657220666f72206120676976656e2072656365697665722e3020496e76617269616e74733aa8202d2054686520696e6e657220605665633c5061726149643e60206973206e6576657220656d7074792ee8202d2054686520696e6e657220605665633c5061726149643e602063616e6e6f742073746f72652074776f2073616d652060506172614964602e8101202d20546865206f7574657220766563746f7220697320736f7274656420617363656e64696e6720627920626c6f636b206e756d62657220616e642063616e6e6f742073746f72652074776f206974656d732077697468207468652073616d6540202020626c6f636b206e756d6265722e01610501850100019d083c3c5061726153657373696f6e496e666f013c5061726153657373696f6e496e666f0c5041737369676e6d656e744b657973556e736166650100a10804000ca42041737369676e6d656e74206b65797320666f72207468652063757272656e742073657373696f6e2e6d01204e6f7465207468617420746869732041504920697320707269766174652064756520746f206974206265696e672070726f6e6520746f20276f66662d62792d6f6e65272061742073657373696f6e20626f756e6461726965732eac205768656e20696e20646f7562742c20757365206053657373696f6e73602041504920696e73746561642e544561726c6965737453746f72656453657373696f6e010010100000000004010120546865206561726c696573742073657373696f6e20666f722077686963682070726576696f75732073657373696f6e20696e666f2069732073746f7265642e2053657373696f6e730001040610a50804000ca42053657373696f6e20696e666f726d6174696f6e20696e206120726f6c6c696e672077696e646f772e35012053686f756c64206861766520616e20656e74727920696e2072616e676520604561726c6965737453746f72656453657373696f6e2e2e3d43757272656e7453657373696f6e496e646578602e750120446f6573206e6f74206861766520616e7920656e7472696573206265666f7265207468652073657373696f6e20696e64657820696e207468652066697273742073657373696f6e206368616e6765206e6f74696669636174696f6e2e000000003d2452656769737472617201245265676973747261720c2c50656e64696e67537761700001040551015101040004642050656e64696e672073776170206f7065726174696f6e732e145061726173000104055101ad08040010050120416d6f756e742068656c64206f6e206465706f73697420666f722065616368207061726120616e6420746865206f726967696e616c206465706f7369746f722e0091012054686520676976656e206163636f756e7420494420697320726573706f6e7369626c6520666f72207265676973746572696e672074686520636f646520616e6420696e697469616c206865616420646174612c20627574206d6179206f6e6c7920646f350120736f2069662069742069736e27742079657420726567697374657265642e2028416674657220746861742c206974277320757020746f20676f7665726e616e636520746f20646f20736f2e29384e65787446726565506172614964010051011000000000046020546865206e65787420667265652060506172614964602e016505018d01082c506172614465706f73697418400010a5d4e8000000000000000000000008b020546865206465706f73697420746f206265207061696420746f2072756e206120706172617468726561642e3d0120546869732073686f756c6420696e636c7564652074686520636f737420666f722073746f72696e67207468652067656e65736973206865616420616e642076616c69646174696f6e20636f64652e48446174614465706f7369745065724279746518408096980000000000000000000000000004c420546865206465706f73697420746f20626520706169642070657220627974652073746f726564206f6e20636861696e2e01b1084614536c6f74730114536c6f747304184c6561736573010104055101b508040040150120416d6f756e74732068656c64206f6e206465706f73697420666f7220656163682028706f737369626c792066757475726529206c65617365642070617261636861696e2e009901205468652061637475616c20616d6f756e74206c6f636b6564206f6e2069747320626568616c6620627920616e79206163636f756e7420617420616e792074696d6520697320746865206d6178696d756d206f6620746865207365636f6e642076616c756573f0206f6620746865206974656d7320696e2074686973206c6973742077686f73652066697273742076616c756520697320746865206163636f756e742e00610120546865206669727374206974656d20696e20746865206c6973742069732074686520616d6f756e74206c6f636b656420666f72207468652063757272656e74204c6561736520506572696f642e20466f6c6c6f77696e67b0206974656d732061726520666f72207468652073756273657175656e74206c6561736520706572696f64732e006101205468652064656661756c742076616c75652028616e20656d707479206c6973742920696d706c6965732074686174207468652070617261636861696e206e6f206c6f6e6765722065786973747320286f72206e65766572b42065786973746564292061732066617220617320746869732070616c6c657420697320636f6e6365726e65642e00510120496620612070617261636861696e20646f65736e2774206578697374202a7965742a20627574206973207363686564756c656420746f20657869737420696e20746865206675747572652c207468656e20697461012077696c6c206265206c6566742d7061646465642077697468206f6e65206f72206d6f726520604e6f6e65607320746f2064656e6f74652074686520666163742074686174206e6f7468696e672069732068656c64206f6e5d01206465706f73697420666f7220746865206e6f6e2d6578697374656e7420636861696e2063757272656e746c792c206275742069732068656c6420617420736f6d6520706f696e7420696e20746865206675747572652e00dc20497420697320696c6c6567616c20666f72206120604e6f6e65602076616c756520746f20747261696c20696e20746865206c6973742e016905019101082c4c65617365506572696f6410100075120004dc20546865206e756d626572206f6620626c6f636b73206f76657220776869636820612073696e676c6520706572696f64206c617374732e2c4c656173654f6666736574101000100e0004d420546865206e756d626572206f6620626c6f636b7320746f206f66667365742065616368206c6561736520706572696f642062792e01bd08472041756374696f6e73012041756374696f6e73103841756374696f6e436f756e7465720100101000000000048c204e756d626572206f662061756374696f6e73207374617274656420736f206661722e2c41756374696f6e496e666f000074040014f820496e666f726d6174696f6e2072656c6174696e6720746f207468652063757272656e742061756374696f6e2c206966207468657265206973206f6e652e00450120546865206669727374206974656d20696e20746865207475706c6520697320746865206c6561736520706572696f6420696e646578207468617420746865206669727374206f662074686520666f7572510120636f6e746967756f7573206c6561736520706572696f6473206f6e2061756374696f6e20697320666f722e20546865207365636f6e642069732074686520626c6f636b206e756d626572207768656e207468655d012061756374696f6e2077696c6c2022626567696e20746f20656e64222c20692e652e2074686520666972737420626c6f636b206f662074686520456e64696e6720506572696f64206f66207468652061756374696f6e2e3c5265736572766564416d6f756e747300010405c10818040008310120416d6f756e74732063757272656e746c7920726573657276656420696e20746865206163636f756e7473206f662074686520626964646572732063757272656e746c792077696e6e696e673820287375622d2972616e6765732e1c57696e6e696e670001040510c50804000c6101205468652077696e6e696e67206269647320666f722065616368206f66207468652031302072616e67657320617420656163682073616d706c6520696e207468652066696e616c20456e64696e6720506572696f64206f664901207468652063757272656e742061756374696f6e2e20546865206d61702773206b65792069732074686520302d626173656420696e64657820696e746f207468652053616d706c652053697a652e205468651d012066697273742073616d706c65206f662074686520656e64696e6720706572696f6420697320303b20746865206c617374206973206053616d706c652053697a65202d2031602e016d050195011030456e64696e67506572696f64101040190100041d0120546865206e756d626572206f6620626c6f636b73206f76657220776869636820616e2061756374696f6e206d617920626520726574726f6163746976656c7920656e6465642e3053616d706c654c656e6774681010140000000cf020546865206c656e677468206f6620656163682073616d706c6520746f2074616b6520647572696e672074686520656e64696e6720706572696f642e00d42060456e64696e67506572696f6460202f206053616d706c654c656e67746860203d20546f74616c2023206f662053616d706c657338536c6f7452616e6765436f756e74101024000000004c4c65617365506572696f6473506572536c6f741010080000000001d108482443726f77646c6f616e012443726f77646c6f616e101446756e6473000104055101d5080400046820496e666f206f6e20616c6c206f66207468652066756e64732e204e6577526169736501002d080400085501205468652066756e64732074686174206861766520686164206164646974696f6e616c20636f6e747269627574696f6e7320647572696e6720746865206c61737420626c6f636b2e20546869732069732075736564150120696e206f7264657220746f2064657465726d696e652077686963682066756e64732073686f756c64207375626d6974206e6577206f72207570646174656420626964732e30456e64696e6773436f756e74010010100000000004290120546865206e756d626572206f662061756374696f6e732074686174206861766520656e746572656420696e746f20746865697220656e64696e6720706572696f6420736f206661722e344e65787454726965496e646578010010100000000004a820547261636b657220666f7220746865206e65787420617661696c61626c65207472696520696e6465780175050199010c2050616c6c6574496425072070792f6366756e64047101206050616c6c657449646020666f72207468652063726f77646c6f616e2070616c6c65742e20416e20617070726f7072696174652076616c756520636f756c64206265206050616c6c65744964282a622270792f6366756e642229603c4d696e436f6e747269627574696f6e184000743ba40b0000000000000000000000086d0120546865206d696e696d756d20616d6f756e742074686174206d617920626520636f6e747269627574656420696e746f20612063726f77646c6f616e2e2053686f756c6420616c6d6f7374206365727461696e6c7920626520617470206c6561737420604578697374656e7469616c4465706f736974602e3c52656d6f76654b6579734c696d69741010e803000004e4204d6178206e756d626572206f662073746f72616765206b65797320746f2072656d6f7665207065722065787472696e7369632063616c6c2e01dd0849e108042040436865636b5370656356657273696f6ee9081038436865636b547856657273696f6eed081030436865636b47656e65736973f1082438436865636b4d6f7274616c697479f5082428436865636b4e6f6e6365fd08802c436865636b576569676874010980604368617267655472616e73616374696f6e5061796d656e740509804850726576616c6964617465417474657374730909800d09"; + #endregion + + private static MetadataV14? _referenceV14Metadata = null; + public static MetadataV14 ReferenceV14Metadata + { + get + { + if (_referenceV14Metadata is null) + _referenceV14Metadata = new MetadataV14(metadataV14_9110); + + return _referenceV14Metadata; + } + } + + internal static bool? TryFindModuleInV14(string moduleName) + { + return null; + } + + public static TypeDefPrimitive? TryConvertNameToPrimitive(string name) + { + + return name.ToLower() switch + { + "bool" => TypeDefPrimitive.Bool, + "u8" => TypeDefPrimitive.U8, + "u16" => TypeDefPrimitive.U16, + "u32" => TypeDefPrimitive.U32, + "u64" => TypeDefPrimitive.U64, + "u128" => TypeDefPrimitive.U128, + "u256" => TypeDefPrimitive.U256, + "i8" => TypeDefPrimitive.I8, + "i16" => TypeDefPrimitive.I16, + "i32" => TypeDefPrimitive.I32, + "i64" => TypeDefPrimitive.I64, + "i128" => TypeDefPrimitive.I128, + "i256" => TypeDefPrimitive.I256, + "char" => TypeDefPrimitive.Char, + "str" => TypeDefPrimitive.Str, + _ => null + }; + } + + public static (TypeDefEnum, string)? TryConvertNameToComposite(string name) + { + return null; + } + + public static (TypeDefEnum, string)? TryConvertNameToTuple(string name) + { + return null; + } + + public static (TypeDefEnum, string)? TryConvertNameToArray(string name) + { + return null; + } + + public static (TypeDefEnum, string)? TryConvertNameToSequence(string name) + { + var regex = new Regex(@"^(\w+)<([^>]+)>$", RegexOptions.IgnoreCase, TimeSpan.FromSeconds(1)); + + var match = regex.Match(name); + if (match.Success) + { + // Capture the base name + var baseName = match.Groups[1].Value; + + if (!baseName.Equals("Vec", StringComparison.CurrentCultureIgnoreCase)) + { + return null; + } + + // Capture the generic parameters as a single string + var genericParamsString = match.Groups[2].Value; + + // Split the generic parameters string into individual parameters + var genericParams = genericParamsString.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries) + .Select(p => p.Trim()) + .ToList(); + + // A BaseVec should only have one generic parameter + if(genericParams.Count != 1) + { + throw new InvalidOperationException($"TypeDefSequence found but found {genericParams.Count} generic parameters while should be only one"); + } + + return (TypeDefEnum.Sequence, genericParams[0]); + } + + return null; + } + } +} diff --git a/Substrate.NET.Metadata/Conversion/IMetadataConversion.cs b/Substrate.NET.Metadata/Conversion/IMetadataConversion.cs new file mode 100644 index 0000000..8811a38 --- /dev/null +++ b/Substrate.NET.Metadata/Conversion/IMetadataConversion.cs @@ -0,0 +1,17 @@ +using Substrate.NET.Metadata.Base.Portable; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Substrate.NET.Metadata.Conversion +{ + /// + /// Convert metadata < v14 to v14 format + /// + public interface IMetadataConversion + { + void AddToDictionnary(PortableRegistry lookup, string palletName); + } +} diff --git a/Substrate.NET.Metadata/V11/StorageEntryMetadataV11.cs b/Substrate.NET.Metadata/V11/StorageEntryMetadataV11.cs index 881d9fd..c305234 100644 --- a/Substrate.NET.Metadata/V11/StorageEntryMetadataV11.cs +++ b/Substrate.NET.Metadata/V11/StorageEntryMetadataV11.cs @@ -9,7 +9,13 @@ public class StorageEntryMetadataV11 : BaseType, IMetadataName { public override byte[] Encode() { - throw new NotImplementedException(); + var result = new List(); + result.AddRange(Name.Encode()); + result.AddRange(StorageModifier.Encode()); + result.AddRange(StorageType.Encode()); + result.AddRange(StorageDefault.Encode()); + result.AddRange(Documentation.Encode()); + return result.ToArray(); } public override void Decode(byte[] byteArray, ref int p) diff --git a/Substrate.NET.Metadata/V15/RuntimeMetadataV15.cs b/Substrate.NET.Metadata/V15/RuntimeMetadataV15.cs index 41c2122..e22e0ec 100644 --- a/Substrate.NET.Metadata/V15/RuntimeMetadataV15.cs +++ b/Substrate.NET.Metadata/V15/RuntimeMetadataV15.cs @@ -15,8 +15,8 @@ public override void Decode(byte[] byteArray, ref int p) { var start = p; - Lookup = new PortableRegistry(); - Lookup.Decode(byteArray, ref p); + Types = new PortableRegistry(); + Types.Decode(byteArray, ref p); Modules = new BaseVec(); Modules.Decode(byteArray, ref p); @@ -33,7 +33,7 @@ public override void Decode(byte[] byteArray, ref int p) TypeSize = p - start; } - public PortableRegistry Lookup { get; private set; } + public PortableRegistry Types { get; private set; } public BaseVec Modules { get; private set; } diff --git a/Substrate.NET.Metadata/V9/ModuleMetadataV9.cs b/Substrate.NET.Metadata/V9/ModuleMetadataV9.cs index c3a76ad..43eb884 100644 --- a/Substrate.NET.Metadata/V9/ModuleMetadataV9.cs +++ b/Substrate.NET.Metadata/V9/ModuleMetadataV9.cs @@ -1,11 +1,14 @@ -using Substrate.NET.Metadata.Base; +using Newtonsoft.Json.Linq; +using Substrate.NET.Metadata.Base; +using Substrate.NET.Metadata.Base.Portable; using Substrate.NET.Metadata.Compare; +using Substrate.NET.Metadata.Conversion; using Substrate.NetApi.Model.Types.Base; using Substrate.NetApi.Model.Types.Primitive; namespace Substrate.NET.Metadata.V9 { - public class ModuleMetadataV9 : BaseType, IMetadataName + public class ModuleMetadataV9 : BaseType, IMetadataName, IMetadataConversion { public Str Name { get; private set; } public BaseOpt Storage { get; private set; } @@ -59,5 +62,26 @@ public MetadataDifferentialModulesV9 ToDifferentialModules(CompareStatus status) Enumerable.Empty<(string, (CompareStatus, StorageEntryMetadataV9))>(), }; } + + public void AddToDictionnary(PortableRegistry lookup, string palletName) + { + var newId = new U32(lookup.Value.Any() ? lookup.Value.Max(x => x.Id.Value) + 1 : 0); + var path = new Base.Portable.Path(); + path.Create(new List() { new Str($"pallet_{palletName.ToLower()}"), new Str($"Pallet"), new Str($"Call") }.ToArray()); + + BaseVec Docs = new BaseVec(new List() { new Str("Contains one variant") }.ToArray()); + var typeDef = new BaseEnumExt, TypeDefCompact, TypeDefBitSequence, BaseVoid>(); + + BaseVec typeParam = new BaseVec(new List().ToArray()); + var typeDefVariant = new TypeDefVariant(); + + //typeDefVariant.Create(); + //typeDef.Create(TypeDefEnum.Variant, ); + + var typePortableForm = new TypePortableForm(path, new BaseVec(), null, Docs); + + var portableType = new PortableType(newId, typePortableForm); + lookup.Value.ToList().Add(portableType); + } } } diff --git a/Substrate.NET.Metadata/V9/PalletCallArgsMetadataV9.cs b/Substrate.NET.Metadata/V9/PalletCallArgsMetadataV9.cs index 68762eb..cf7f30f 100644 --- a/Substrate.NET.Metadata/V9/PalletCallArgsMetadataV9.cs +++ b/Substrate.NET.Metadata/V9/PalletCallArgsMetadataV9.cs @@ -1,4 +1,5 @@ using Substrate.NET.Metadata.Base; +using Substrate.NET.Metadata.Base.Portable; using Substrate.NetApi.Model.Types.Base; using Substrate.NetApi.Model.Types.Primitive; @@ -29,5 +30,11 @@ public override void Decode(byte[] byteArray, ref int p) public Str Name { get; set; } public Str CallType { get; set; } + + public void AddToDictionnary(PortableRegistry lookup, string palletName) + { + // Need to parse CallType to determine the type of the call and get or insert from the lookup + + } } } diff --git a/Substrate.NET.Metadata/V9/PalletCallMetadataV9.cs b/Substrate.NET.Metadata/V9/PalletCallMetadataV9.cs index bee441e..c92673e 100644 --- a/Substrate.NET.Metadata/V9/PalletCallMetadataV9.cs +++ b/Substrate.NET.Metadata/V9/PalletCallMetadataV9.cs @@ -1,11 +1,13 @@ using Substrate.NET.Metadata.Base; +using Substrate.NET.Metadata.Base.Portable; +using Substrate.NET.Metadata.Conversion; using Substrate.NetApi.Model.Types.Base; using Substrate.NetApi.Model.Types.Primitive; using System.Diagnostics.CodeAnalysis; namespace Substrate.NET.Metadata.V9 { - public class PalletCallMetadataV9 : BaseType, IMetadataName + public class PalletCallMetadataV9 : BaseType, IMetadataName, IMetadataConversion { public override byte[] Encode() { @@ -35,6 +37,35 @@ public override void Decode(byte[] byteArray, ref int p) public Str Name { get; set; } public BaseVec Args { get; set; } public BaseVec Docs { get; set; } + + public void AddToDictionnary(PortableRegistry lookup, string palletName) + { + var variant = new Variant( + name: Name, + index: new U8(0), // todo change + docs: Docs, + variantFields: new BaseVec( + new List() { + new Field( + name: new BaseOpt(Name), + fieldTy: new TType(), + fieldTypeName: new BaseOpt(), + docs: new BaseVec() + ) + }.ToArray() + ) + ); + + + //var newId = new U32(lookup.Value.Any() ? lookup.Value.Max(x => x.Id.Value) + 1 : 0); + //var path = new Base.Portable.Path(); + //path.Create(new List() { new Str($"pallet_{palletName.ToLower()}"), new Str($"Pallet"), new Str($"Call") }.ToArray()); + + //var typePortableForm = new TypePortableForm(path, new BaseVec(), null, Docs); + + //var portableType = new PortableType(newId, typePortableForm); + //lookup.Value.ToList().Add(portableType); + } } public class PalletCallMetadataV9Comparer : IEqualityComparer diff --git a/Substrate.NET.Metadata/V9/RuntimeMetadataV9.cs b/Substrate.NET.Metadata/V9/RuntimeMetadataV9.cs index 348a893..e3385c8 100644 --- a/Substrate.NET.Metadata/V9/RuntimeMetadataV9.cs +++ b/Substrate.NET.Metadata/V9/RuntimeMetadataV9.cs @@ -1,8 +1,11 @@ -using Substrate.NetApi.Model.Types.Base; +using Substrate.NET.Metadata.Base.Portable; +using Substrate.NET.Metadata.Conversion; +using Substrate.NetApi.Model.Types.Base; +using Substrate.NetApi.Model.Types.Primitive; namespace Substrate.NET.Metadata.V9 { - public class RuntimeMetadataV9 : BaseType + public class RuntimeMetadataV9 : BaseType, IMetadataConversion { public BaseVec Modules { get; private set; } @@ -20,5 +23,10 @@ public override byte[] Encode() { throw new NotImplementedException(); } + + public void AddToDictionnary(PortableRegistry lookup, string palletName) + { + + } } } From 3d0cdf4201c8081404014887385f551009ccd298 Mon Sep 17 00:00:00 2001 From: Apolixit Date: Thu, 15 Aug 2024 12:42:38 +0200 Subject: [PATCH 02/15] WIP conversion --- .../ConversionBuilderTest.cs | 25 + .../TmpTests.cs | 121 ++-- .../Conversion/ConversionBuilderTest.cs | 162 ++++++ .../Conversion/ConversionBuilderTreeTest.cs | 28 + .../MetadataServiceV11Test.cs | 11 + .../Substrate.NET.Metadata.Tests.csproj | 2 +- Substrate.NET.Metadata.Tests/TypeDefsTests.cs | 22 + Substrate.NET.Metadata/Base/BaseMetadata.cs | 8 +- Substrate.NET.Metadata/Base/Field.cs | 7 +- Substrate.NET.Metadata/Base/MetaDataInfo.cs | 6 +- .../Base/Portable/PortableType.cs | 6 +- .../Base/Portable/TypePortableForm.cs | 60 +- .../Base/StorageEntryTypeMap.cs | 35 +- Substrate.NET.Metadata/Base/TypeDefs.cs | 10 +- Substrate.NET.Metadata/Base/Variant.cs | 8 +- .../Conversion/ConversionV14Helper.cs | 13 + .../Conversion/Internal/ConversionBuilder.cs | 542 ++++++++++++++++++ .../Internal/ConversionBuilderTree.cs | 400 +++++++++++++ .../Conversion/Internal/MetadataTree.cs | 194 +++++++ .../Internal/MetadataVersionCompact.cs | 65 +++ .../Conversion/Internal/NodeBuilderType.cs | 117 ++++ .../Conversion/Internal/SearchV14.cs | 232 ++++++++ .../Conversion/Internal/StorageClass.cs | 166 ++++++ .../Conversion/MetadataConversionException.cs | 17 + .../Substrate.NET.Metadata.csproj | 2 +- Substrate.NET.Metadata/V11/MetadataV11.cs | 7 + .../V11/ModuleMetadataV11.cs | 32 ++ .../V11/RuntimeMetadataV11.cs | 20 +- .../V11/StorageEntryMetadataV11.cs | 48 +- .../V11/StorageMetadataV11.cs | 19 +- .../V14/ModuleMetadataV14.cs | 14 +- .../V14/PalletMetadataV14.cs | 69 ++- .../V14/RuntimeMetadataV14.cs | 8 +- .../V9/PalletConstantMetadataV9.cs | 16 + .../V9/PalletErrorMetadataV9.cs | 12 + .../V9/PalletEventMetadataV9.cs | 16 + 36 files changed, 2392 insertions(+), 128 deletions(-) create mode 100644 Substrate.NET.Metadata.Conversion.Tests/ConversionBuilderTest.cs create mode 100644 Substrate.NET.Metadata.Tests/Conversion/ConversionBuilderTest.cs create mode 100644 Substrate.NET.Metadata.Tests/Conversion/ConversionBuilderTreeTest.cs create mode 100644 Substrate.NET.Metadata.Tests/TypeDefsTests.cs create mode 100644 Substrate.NET.Metadata/Conversion/Internal/ConversionBuilder.cs create mode 100644 Substrate.NET.Metadata/Conversion/Internal/ConversionBuilderTree.cs create mode 100644 Substrate.NET.Metadata/Conversion/Internal/MetadataTree.cs create mode 100644 Substrate.NET.Metadata/Conversion/Internal/MetadataVersionCompact.cs create mode 100644 Substrate.NET.Metadata/Conversion/Internal/NodeBuilderType.cs create mode 100644 Substrate.NET.Metadata/Conversion/Internal/SearchV14.cs create mode 100644 Substrate.NET.Metadata/Conversion/Internal/StorageClass.cs create mode 100644 Substrate.NET.Metadata/Conversion/MetadataConversionException.cs diff --git a/Substrate.NET.Metadata.Conversion.Tests/ConversionBuilderTest.cs b/Substrate.NET.Metadata.Conversion.Tests/ConversionBuilderTest.cs new file mode 100644 index 0000000..5f9ff4d --- /dev/null +++ b/Substrate.NET.Metadata.Conversion.Tests/ConversionBuilderTest.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Substrate.NET.Metadata.Conversion.Tests +{ + internal class ConversionBuilderTest + { + [Test] + [TestCase("Option>")] + public void BuildTypeDictionnary_FromPrimitive_ShouldSucceed(string primitiveType) + { + + } + + [Test] + [TestCase("Option>")] + public void BuildTypeDictionnary_FromTuple_ShouldSucceed(string primitiveType) + { + + } + } +} diff --git a/Substrate.NET.Metadata.Conversion.Tests/TmpTests.cs b/Substrate.NET.Metadata.Conversion.Tests/TmpTests.cs index fa1931d..bf51f49 100644 --- a/Substrate.NET.Metadata.Conversion.Tests/TmpTests.cs +++ b/Substrate.NET.Metadata.Conversion.Tests/TmpTests.cs @@ -64,7 +64,7 @@ public static List HarmonizeFullType(string className) { var res = new List(); - if (ExtractMap(className) is (string key, string value) map) + if (ExtractMap(className) is (string, string) map) { res.Add(map.key); res.Add(map.value); @@ -539,8 +539,8 @@ public async Task SetupAsync() _metadataService = new MetadataService(); _substrateClient = new SubstrateClient(new Uri("wss://polkadot-rpc.dwellir.com"), ChargeTransactionPayment.Default()); - await _substrateClient.ConnectAsync(); - Assert.That(_substrateClient.IsConnected, Is.True); + //await _substrateClient.ConnectAsync(); + //Assert.That(_substrateClient.IsConnected, Is.True); } [TearDown] @@ -581,62 +581,65 @@ public Substrate.NetApi.Model.Meta.MetaData MetadataNetApi } } - [Test] - [TestCase("[Hasher = BlakeTwo128Concat / Key = AccountId / Value = AccountInfo]", new string[] { "AccountId", "AccountInfo", "Index", "AccountData" })] - [TestCase("Vec<(AccountId, Balance)>", new string[] { "AccountId", "Balance" })] - [TestCase("DigestOf", new string[] { "DigestOf" })] - [TestCase("Vec>", new string[] { "EventRecord", "Event", "Hash" })] - [TestCase("TaskAddress", new string[] { "TaskAddress", "BlockNumber" })] - [TestCase("MaybeRandomness", new string[] { "MaybeRandomness" })] - [TestCase("Vec>>", new string[] { "WeightToFeeCoefficient", "BalanceOf" })] - [TestCase("Option>", new string[] { "Option", "u8" })] - [TestCase("Vec", new string[] { "AccountId" })] - [TestCase("[Hasher = BlakeTwo128Concat / Key = AccountId / Value = StakingLedger>]", new string[] { "AccountId", "StakingLedger", "BalanceOf" })] - [TestCase("[Hasher = Twox64Concat / Key = (AccountId, slashing::SpanIndex) / Value = slashing::SpanRecord>]", new string[] { "AccountId", "slashing::SpanIndex", "slashing::SpanRecord", "BalanceOf" })] - [TestCase("Option>", new string[] { "Option", "u8" })] - [TestCase("ElectionStatus", new string[] { "ElectionStatus", "BlockNumber" })] - [TestCase("ElectionStatus", new string[] { "ElectionStatus", "BlockNumber" })] - [TestCase("Vec>", new string[] { "ParaId", "CollatorId" })] - [TestCase("Vec<(ParaId, Option<(CollatorId, Retriable)>)>", new string[] { "ParaId", "Option", "CollatorId", "Retriable" })] - [TestCase("Vec>", new string[] { "DeferredOffenceOf" })] - [TestCase("[Hasher = Identity / Key = Hash / Value = (BlockNumber, Vec)]", new string[] { "Hash", "BlockNumber", "AccountId" })] - [TestCase("Vec<(::AccountId, BalanceOf)>", new string[] { "AccountId", "BalanceOf" })] - [TestCase("OpenTip, BlockNumber, Hash>", new string[] { "OpenTip", "AccountId", "BalanceOf", "BlockNumber", "Hash" })] - [TestCase("[Key1 = BlockNumber / Key1Hasher = Twox64Concat / Key2 = Hash / Key2Hasher = Identity / Value = BlockAttestations]", new string[] { "BlockNumber", "Hash", "BlockAttestations" })] - [TestCase("[Hasher = Identity / Key = EthereumAddress / Value = (BalanceOf, BalanceOf, BlockNumber)]", new string[] { "EthereumAddress", "BalanceOf", "BlockNumber" })] - [TestCase("[Hasher = Identity / Key = EthereumAddress / Value = (BalanceOf, BalanceOf, BlockNumber)]", new string[] { "EthereumAddress", "BalanceOf", "BlockNumber" })] - [TestCase("[Hasher = Identity / Key = [u8; 32] / Value = (Vec, AccountId, BalanceOf)]", new string[] { "u8", "AccountId", "BalanceOf" })] - //[TestCase("Hey, (Titi, B>, Titi, L>)", new string[] { "Hey", "Titi", "A", "XX", "YY", "B", "TT", "L" })] - public void HarmonizeFullType_WithMap_ShouldSucceed(string original, string[] mapped) - { - // Todo Romain : gérer les tableaux du genre [u8; 32] - var res = StorageClass.HarmonizeFullType(original).Distinct().ToList(); - - Assert.That(res.Count, Is.EqualTo(mapped.Length)); - - for (int i = 0; i < res.Count; i++) - { - Assert.That(res[i], Is.EqualTo(mapped[i])); - } - } - - [Test] - [TestCase("AccountId, Balance", new string[] { "AccountId", "Balance" })] - [TestCase("Toto, Titi", new string[] { "Toto", "Titi" })] - [TestCase("Titi, Toto", new string[] { "Titi", "Toto" })] - [TestCase("Titi, B>, Titi, L>", new string[] { "Titi, B>", "Titi, L>" })] - public void ExtractParameters_ShouldSucceed(string input, string[] expected) - { - var res = StorageClass.ExtractParameters(input); - - Assert.That(res, Is.Not.Null); - Assert.That(res.Count, Is.EqualTo(expected.Length)); - - for (int i = 0; i < res.Count; i++) - { - Assert.That(res[i], Is.EqualTo(expected[i])); - } - } + //[Test] + //[TestCase("[Hasher = BlakeTwo128Concat / Key = AccountId / Value = AccountInfo]", new string[] { "AccountId", "AccountInfo", "Index", "AccountData" })] + //[TestCase("Vec<(AccountId, Balance)>", new string[] { "AccountId", "Balance" })] + //[TestCase("DigestOf", new string[] { "DigestOf" })] + //[TestCase("Vec>", new string[] { "EventRecord", "Event", "Hash" })] + //[TestCase("TaskAddress", new string[] { "TaskAddress", "BlockNumber" })] + //[TestCase("MaybeRandomness", new string[] { "MaybeRandomness" })] + //[TestCase("Vec>>", new string[] { "WeightToFeeCoefficient", "BalanceOf" })] + //[TestCase("Option>", new string[] { "Option", "u8" })] + //[TestCase("Vec", new string[] { "AccountId" })] + //[TestCase("[Hasher = BlakeTwo128Concat / Key = AccountId / Value = StakingLedger>]", new string[] { "AccountId", "StakingLedger", "BalanceOf" })] + //[TestCase("[Hasher = Twox64Concat / Key = (AccountId, slashing::SpanIndex) / Value = slashing::SpanRecord>]", new string[] { "AccountId", "slashing::SpanIndex", "slashing::SpanRecord", "BalanceOf" })] + //[TestCase("Option>", new string[] { "Option", "u8" })] + //[TestCase("ElectionStatus", new string[] { "ElectionStatus", "BlockNumber" })] + //[TestCase("ElectionStatus", new string[] { "ElectionStatus", "BlockNumber" })] + //[TestCase("Vec>", new string[] { "ParaId", "CollatorId" })] + //[TestCase("Vec<(ParaId, Option<(CollatorId, Retriable)>)>", new string[] { "ParaId", "Option", "CollatorId", "Retriable" })] + //[TestCase("Vec>", new string[] { "DeferredOffenceOf" })] + //[TestCase("[Hasher = Identity / Key = Hash / Value = (BlockNumber, Vec)]", new string[] { "Hash", "BlockNumber", "AccountId" })] + //[TestCase("Vec<(::AccountId, BalanceOf)>", new string[] { "AccountId", "BalanceOf" })] + //[TestCase("OpenTip, BlockNumber, Hash>", new string[] { "OpenTip", "AccountId", "BalanceOf", "BlockNumber", "Hash" })] + //[TestCase("[Key1 = BlockNumber / Key1Hasher = Twox64Concat / Key2 = Hash / Key2Hasher = Identity / Value = BlockAttestations]", new string[] { "BlockNumber", "Hash", "BlockAttestations" })] + //[TestCase("[Hasher = Identity / Key = EthereumAddress / Value = (BalanceOf, BalanceOf, BlockNumber)]", new string[] { "EthereumAddress", "BalanceOf", "BlockNumber" })] + //[TestCase("[Hasher = Identity / Key = EthereumAddress / Value = (BalanceOf, BalanceOf, BlockNumber)]", new string[] { "EthereumAddress", "BalanceOf", "BlockNumber" })] + //[TestCase("[Hasher = Identity / Key = [u8; 32] / Value = (Vec, AccountId, BalanceOf)]", new string[] { "u8", "AccountId", "BalanceOf" })] + ////[TestCase("Hey, (Titi, B>, Titi, L>)", new string[] { "Hey", "Titi", "A", "XX", "YY", "B", "TT", "L" })] + //public void HarmonizeFullType_WithMap_ShouldSucceed(string original, string[] mapped) + //{ + // // Todo Romain : gérer les tableaux du genre [u8; 32] + // var res = StorageClass.HarmonizeFullType(original).Distinct().ToList(); + + // Assert.That(res.Count, Is.EqualTo(mapped.Length)); + + // for (int i = 0; i < res.Count; i++) + // { + // Assert.That(res[i], Is.EqualTo(mapped[i])); + // } + //} + + + + + //[Test] + //[TestCase("AccountId, Balance", new string[] { "AccountId", "Balance" })] + //[TestCase("Toto, Titi", new string[] { "Toto", "Titi" })] + //[TestCase("Titi, Toto", new string[] { "Titi", "Toto" })] + //[TestCase("Titi, B>, Titi, L>", new string[] { "Titi, B>", "Titi, L>" })] + //public void ExtractParameters_ShouldSucceed(string input, string[] expected) + //{ + // var res = StorageClass.ExtractParameters(input); + + // Assert.That(res, Is.Not.Null); + // Assert.That(res.Count, Is.EqualTo(expected.Length)); + + // for (int i = 0; i < res.Count; i++) + // { + // Assert.That(res[i], Is.EqualTo(expected[i])); + // } + //} [Test] public async Task GetAllStorageClasses_FromEveryVersionBeforeV14_ShouldSucceedAsync() diff --git a/Substrate.NET.Metadata.Tests/Conversion/ConversionBuilderTest.cs b/Substrate.NET.Metadata.Tests/Conversion/ConversionBuilderTest.cs new file mode 100644 index 0000000..0d3653f --- /dev/null +++ b/Substrate.NET.Metadata.Tests/Conversion/ConversionBuilderTest.cs @@ -0,0 +1,162 @@ +using Microsoft.VisualBasic; +using Substrate.NET.Metadata.Base; +using Substrate.NET.Metadata.Base.Portable; +using Substrate.NET.Metadata.Conversion.Internal; +using Substrate.NetApi.Model.Types.Base; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Substrate.NET.Metadata.Conversion.Tests +{ + internal class ConversionBuilderTest + { + private ConversionBuilder _builder; + #region Setup + [SetUp] + public void Setup() { + _builder = new ConversionBuilder(InitPortableRegistry().ToList()); + } + + private static PortableType[] InitPortableRegistry() + { + var portableRegistry = new PortableRegistry(); + portableRegistry.Create(new List().ToArray()); + var pt = portableRegistry.Value; + Assert.That(pt.Length, Is.EqualTo(0)); + return pt; + } + #endregion + + [Test] + [TestCase("u32")] + public void GetNode_FromPrimitive_ShouldSucceed(string primitiveType) + { + var res = _builder.GetNodeFromV14(primitiveType); + + Assert.That(res.Ty.TypeDef.Value, Is.EqualTo(TypeDefEnum.Primitive)); + Assert.That(((BaseEnum)res.Ty.TypeDef.Value2).Value, Is.EqualTo(TypeDefPrimitive.U32)); + } + + [Test] + + [TestCase("DispatchInfo", 22, 4)] + [TestCase("Weight", 8, 1)] + [TestCase("T::BlockNumber", 4, 1)] + [TestCase("T::AccountId", 0, 3)] + [TestCase("AccountInfo", 3, 10)] + [TestCase("Vec", 55, 4)] + [TestCase("BalanceOf", 6, 1)] + [TestCase("U32", 4, 1)] + [TestCase("Vec<(EraIndex, SessionIndex)>", 105, 4)] + //[TestCase("Vec>", 22, 4)] + public void GetIndex_FromComposite_ShouldSucceed(string rustType, int indexExpected, int lengthExpected) + { + var res = _builder.BuildLookup(rustType); + + Assert.That(res.Value, Is.EqualTo(indexExpected)); + Assert.That(_builder.PortableTypes.Count, Is.EqualTo(lengthExpected)); + } + + [Test] + [TestCase("u32")] + public void GetIndex_FromPrimitive_ShouldSucceed(string primitiveType) + { + var res = _builder.BuildLookup(primitiveType); + + Assert.That(res.Value, Is.EqualTo(0)); + Assert.That(_builder.PortableTypes.Count, Is.EqualTo(1)); + } + + [Test] + [TestCase("Vec")] // 61 + [TestCase("Vec<(ParaId, T::BlockNumber)>")] + [TestCase("Vec<(AccountId, Balance)>")] + [TestCase("Vec>")] + public void Build_FromSequence_ShouldSucceed(string sequenceClass) + { + var node = new NodeBuilderTypeUndefined(sequenceClass); + var res = ConversionBuilderTree.Build(node); + + Assert.That(res, Is.Not.Null); + Assert.That(res.TypeDef == TypeDefEnum.Sequence); + } + + + [Test] + [TestCase("Option>")] + public void BuildTypeDictionnary_FromComplexePrimitive_ShouldSucceed(string primitiveType) + { + + } + + [Test] + [TestCase("Option>")] + public void BuildTypeDictionnary_FromTuple_ShouldSucceed(string primitiveType) + { + + } + + [Test] + [TestCase("[Hasher = BlakeTwo128Concat / Key = AccountId / Value = AccountInfo]", new string[] { "AccountId", "AccountInfo", "Index", "AccountData" })] + [TestCase("Vec<(AccountId, Balance)>", new string[] { "AccountId", "Balance" })] + [TestCase("DigestOf", new string[] { "DigestOf" })] + [TestCase("Vec>", new string[] { "EventRecord", "Event", "Hash" })] + [TestCase("TaskAddress", new string[] { "TaskAddress", "BlockNumber" })] + [TestCase("MaybeRandomness", new string[] { "MaybeRandomness" })] + [TestCase("Vec>>", new string[] { "WeightToFeeCoefficient", "BalanceOf" })] + [TestCase("Option>", new string[] { "Option", "u8" })] + [TestCase("Vec", new string[] { "AccountId" })] + [TestCase("[Hasher = BlakeTwo128Concat / Key = AccountId / Value = StakingLedger>]", new string[] { "AccountId", "StakingLedger", "BalanceOf" })] + [TestCase("[Hasher = Twox64Concat / Key = (AccountId, slashing::SpanIndex) / Value = slashing::SpanRecord>]", new string[] { "AccountId", "slashing::SpanIndex", "slashing::SpanRecord", "BalanceOf" })] + [TestCase("Option>", new string[] { "Option", "u8" })] + [TestCase("ElectionStatus", new string[] { "ElectionStatus", "BlockNumber" })] + [TestCase("ElectionStatus", new string[] { "ElectionStatus", "BlockNumber" })] + [TestCase("Vec>", new string[] { "ParaId", "CollatorId" })] + [TestCase("Vec<(ParaId, Option<(CollatorId, Retriable)>)>", new string[] { "ParaId", "Option", "CollatorId", "Retriable" })] + [TestCase("Vec>", new string[] { "DeferredOffenceOf" })] + [TestCase("[Hasher = Identity / Key = Hash / Value = (BlockNumber, Vec)]", new string[] { "Hash", "BlockNumber", "AccountId" })] + [TestCase("Vec<(::AccountId, BalanceOf)>", new string[] { "AccountId", "BalanceOf" })] + [TestCase("OpenTip, BlockNumber, Hash>", new string[] { "OpenTip", "AccountId", "BalanceOf", "BlockNumber", "Hash" })] + [TestCase("[Key1 = BlockNumber / Key1Hasher = Twox64Concat / Key2 = Hash / Key2Hasher = Identity / Value = BlockAttestations]", new string[] { "BlockNumber", "Hash", "BlockAttestations" })] + [TestCase("[Hasher = Identity / Key = EthereumAddress / Value = (BalanceOf, BalanceOf, BlockNumber)]", new string[] { "EthereumAddress", "BalanceOf", "BlockNumber" })] + [TestCase("[Hasher = Identity / Key = EthereumAddress / Value = (BalanceOf, BalanceOf, BlockNumber)]", new string[] { "EthereumAddress", "BalanceOf", "BlockNumber" })] + [TestCase("[Hasher = Identity / Key = [u8; 32] / Value = (Vec, AccountId, BalanceOf)]", new string[] { "u8", "AccountId", "BalanceOf" })] + //[TestCase("Hey, (Titi, B>, Titi, L>)", new string[] { "Hey", "Titi", "A", "XX", "YY", "B", "TT", "L" })] + public void HarmonizeFullType_WithMap_ShouldSucceed(string original, string[] mapped) + { + // Todo Romain : gérer les tableaux du genre [u8; 32] + var res = ConversionBuilder.HarmonizeFullType(original).Distinct().ToList(); + + Assert.That(res.Count, Is.EqualTo(mapped.Length)); + + for (int i = 0; i < res.Count; i++) + { + Assert.That(res[i], Is.EqualTo(mapped[i])); + } + } + + + + + [Test] + [TestCase("AccountId, Balance", new string[] { "AccountId", "Balance" })] + [TestCase("Toto, Titi", new string[] { "Toto", "Titi" })] + [TestCase("Titi, Toto", new string[] { "Titi", "Toto" })] + [TestCase("Titi, B>, Titi, L>", new string[] { "Titi, B>", "Titi, L>" })] + public void ExtractParameters_ShouldSucceed(string input, string[] expected) + { + var res = ConversionBuilder.ExtractParameters(input); + + Assert.That(res, Is.Not.Null); + Assert.That(res.Count, Is.EqualTo(expected.Length)); + + for (int i = 0; i < res.Count; i++) + { + Assert.That(res[i], Is.EqualTo(expected[i])); + } + } + } +} diff --git a/Substrate.NET.Metadata.Tests/Conversion/ConversionBuilderTreeTest.cs b/Substrate.NET.Metadata.Tests/Conversion/ConversionBuilderTreeTest.cs new file mode 100644 index 0000000..2fb13d1 --- /dev/null +++ b/Substrate.NET.Metadata.Tests/Conversion/ConversionBuilderTreeTest.cs @@ -0,0 +1,28 @@ +using Substrate.NET.Metadata.Base.Portable; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Substrate.NET.Metadata.Tests.Conversion +{ + internal class ConversionBuilderTreeTest + { + private static PortableType[] InitPortableRegistry() + { + var portableRegistry = new PortableRegistry(); + portableRegistry.Create(new List().ToArray()); + var pt = portableRegistry.Value; + Assert.That(pt.Length, Is.EqualTo(0)); + return pt; + } + + [Test] + public void Build_FromPrimitive_ShouldSucceed() + { + PortableType[] pt = InitPortableRegistry(); + + } + } +} diff --git a/Substrate.NET.Metadata.Tests/MetadataServiceV11Test.cs b/Substrate.NET.Metadata.Tests/MetadataServiceV11Test.cs index a72ca4c..47adc8a 100644 --- a/Substrate.NET.Metadata.Tests/MetadataServiceV11Test.cs +++ b/Substrate.NET.Metadata.Tests/MetadataServiceV11Test.cs @@ -138,5 +138,16 @@ public void MetadataV11_V23_And_V24_PalletHasChanged_ShouldSucceed() // Purschase has been removed, but does not count as changed Assert.IsFalse(_metadataService.HasPalletChangedVersionBetween("Purchase", metadataSource, metadataDestination)); } + + [Test] + public void MetadataV11_ConvertToV14_ShouldSucceed() + { + var metadataV11 = new MetadataV11(readMetadataFromFile("V11\\MetadataV11_0")); + Assert.That(metadataV11, Is.Not.Null); + + var runtimeMetadataV14 = metadataV11.RuntimeMetadataData.ToRuntimeMetadataV14(); + + Assert.That(runtimeMetadataV14, Is.Not.Null); + } } } diff --git a/Substrate.NET.Metadata.Tests/Substrate.NET.Metadata.Tests.csproj b/Substrate.NET.Metadata.Tests/Substrate.NET.Metadata.Tests.csproj index 5ddfb69..6528777 100644 --- a/Substrate.NET.Metadata.Tests/Substrate.NET.Metadata.Tests.csproj +++ b/Substrate.NET.Metadata.Tests/Substrate.NET.Metadata.Tests.csproj @@ -1,7 +1,7 @@ - net6.0 + net8.0 enable enable 11 diff --git a/Substrate.NET.Metadata.Tests/TypeDefsTests.cs b/Substrate.NET.Metadata.Tests/TypeDefsTests.cs new file mode 100644 index 0000000..2a674b4 --- /dev/null +++ b/Substrate.NET.Metadata.Tests/TypeDefsTests.cs @@ -0,0 +1,22 @@ +using Substrate.NET.Metadata.Base; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Numerics; +using System.Text; +using System.Threading.Tasks; + +namespace Substrate.NET.Metadata.Tests +{ + internal class TypeDefsTests + { + [Test] + public void TType_FromUint_ShouldBeConverted() + { + var converted = TType.From(10u); + + Assert.That(converted, Is.Not.Null); + Assert.That(converted.Value.Value, Is.EqualTo(new BigInteger(10))); + } + } +} diff --git a/Substrate.NET.Metadata/Base/BaseMetadata.cs b/Substrate.NET.Metadata/Base/BaseMetadata.cs index 7c4a1aa..3b4ebd7 100644 --- a/Substrate.NET.Metadata/Base/BaseMetadata.cs +++ b/Substrate.NET.Metadata/Base/BaseMetadata.cs @@ -1,4 +1,5 @@ -using Substrate.NetApi.Model.Types.Base; +using Newtonsoft.Json.Linq; +using Substrate.NetApi.Model.Types.Base; namespace Substrate.NET.Metadata.Base { @@ -18,7 +19,10 @@ protected BaseMetadata(string hex) public override byte[] Encode() { - throw new NotImplementedException(); + var result = new List(); + result.AddRange(MetaDataInfo.Encode()); + result.AddRange(RuntimeMetadataData.Encode()); + return result.ToArray(); } public override void Decode(byte[] byteArray, ref int p) diff --git a/Substrate.NET.Metadata/Base/Field.cs b/Substrate.NET.Metadata/Base/Field.cs index 2a0042e..9340186 100644 --- a/Substrate.NET.Metadata/Base/Field.cs +++ b/Substrate.NET.Metadata/Base/Field.cs @@ -20,7 +20,12 @@ public Field(BaseOpt name, TType fieldTy, BaseOpt fieldTypeName, BaseV public override byte[] Encode() { - throw new NotImplementedException(); + var result = new List(); + result.AddRange(Name.Encode()); + result.AddRange(FieldTy.Encode()); + result.AddRange(FieldTypeName.Encode()); + result.AddRange(Docs.Encode()); + return result.ToArray(); } public override void Decode(byte[] byteArray, ref int p) diff --git a/Substrate.NET.Metadata/Base/MetaDataInfo.cs b/Substrate.NET.Metadata/Base/MetaDataInfo.cs index e9634ed..ab1f5a7 100644 --- a/Substrate.NET.Metadata/Base/MetaDataInfo.cs +++ b/Substrate.NET.Metadata/Base/MetaDataInfo.cs @@ -5,6 +5,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; +using System.Xml.Linq; namespace Substrate.NET.Metadata.Base { @@ -12,7 +13,10 @@ public class MetaDataInfo : BaseType { public override byte[] Encode() { - throw new NotImplementedException(); + var result = new List(); + result.AddRange(Magic.Encode()); + result.AddRange(Version.Encode()); + return result.ToArray(); } public override void Decode(byte[] byteArray, ref int p) diff --git a/Substrate.NET.Metadata/Base/Portable/PortableType.cs b/Substrate.NET.Metadata/Base/Portable/PortableType.cs index cb38f2c..16540fe 100644 --- a/Substrate.NET.Metadata/Base/Portable/PortableType.cs +++ b/Substrate.NET.Metadata/Base/Portable/PortableType.cs @@ -1,4 +1,5 @@ using System; +using System.Reflection.PortableExecutable; using Substrate.NetApi; using Substrate.NetApi.Model.Types.Base; using Substrate.NetApi.Model.Types.Primitive; @@ -19,7 +20,10 @@ internal PortableType(U32 id, TypePortableForm ty) public override byte[] Encode() { - throw new NotImplementedException(); + var result = new List(); + result.AddRange(Id.Encode()); + result.AddRange(Ty.Encode()); + return result.ToArray(); } public override void Decode(byte[] byteArray, ref int p) diff --git a/Substrate.NET.Metadata/Base/Portable/TypePortableForm.cs b/Substrate.NET.Metadata/Base/Portable/TypePortableForm.cs index 9d8f42f..f55d85e 100644 --- a/Substrate.NET.Metadata/Base/Portable/TypePortableForm.cs +++ b/Substrate.NET.Metadata/Base/Portable/TypePortableForm.cs @@ -1,4 +1,7 @@ -using Substrate.NetApi.Model.Types.Base; +using Substrate.NET.Metadata.Conversion; +using Substrate.NetApi; +using Substrate.NetApi.Model.Meta; +using Substrate.NetApi.Model.Types.Base; using Substrate.NetApi.Model.Types.Primitive; namespace Substrate.NET.Metadata.Base.Portable @@ -44,10 +47,45 @@ public override void Decode(byte[] byteArray, ref int p) TypeSize = p - start; } - public Path Path { get; private set; } - public BaseVec TypeParams { get; private set; } - public BaseEnumExt, TypeDefCompact, TypeDefBitSequence, BaseVoid> TypeDef { get; private set; } - public BaseVec Docs { get; private set; } + public Path Path { get; internal set; } + public BaseVec TypeParams { get; internal set; } + public BaseEnumExt, TypeDefCompact, TypeDefBitSequence, BaseVoid> TypeDef { get; internal set; } + public BaseVec Docs { get; internal set; } + + public static TypePortableForm CreatePrimitive(NodeTypePrimitive nodeTypePrimitive) + { + var ty = CreateCommon(nodeTypePrimitive); + + ty.TypeDef = new BaseEnumExt, TypeDefCompact, TypeDefBitSequence, BaseVoid>(); + + var mapPrimitive = Enum.Parse(typeof(TypeDefPrimitive), nodeTypePrimitive.Primitive.ToString()); + if(mapPrimitive == null) + { + throw new MetadataConversionException($"Unable to find {nodeTypePrimitive.Primitive} into enum {typeof(TypeDefPrimitive)}"); + } + + ty.TypeDef.Create(TypeDefEnum.Primitive, new BaseEnum((TypeDefPrimitive)nodeTypePrimitive.Primitive)); + + return ty; + } + + private static TypePortableForm CreateCommon(NodeType nodeTypePrimitive) + { + var ty = new TypePortableForm(); + + ty.Path = new Path(); + ty.Path.Create(nodeTypePrimitive.Path.Select(x => new Str(x)).ToArray()); + + ty.TypeParams = new BaseVec( + nodeTypePrimitive.TypeParams.Select(x => new TypeParameter(new Str(x.Name), x.TypeId != null ? new BaseOpt(TType.From(x.TypeId.Value)) : new BaseOpt())).ToArray()); + + ty.Docs = new BaseVec(); + ty.Docs.Create(nodeTypePrimitive.Docs.Select(x => new Str(x)).ToArray()); + + //ty.TypeDef + + return ty; + } } public class Path : BaseVec @@ -57,6 +95,14 @@ public class Path : BaseVec public class TypeParameter : BaseType, IMetadataName { + public TypeParameter() { } + + public TypeParameter(Str name, BaseOpt typeParameterType) + { + Name = name; + TypeParameterType = typeParameterType; + } + public override string TypeName() => "TypeParameter"; public override byte[] Encode() @@ -77,7 +123,7 @@ public override void Decode(byte[] byteArray, ref int p) TypeSize = p - start; } - public Str Name { get; private set; } - public BaseOpt TypeParameterType { get; private set; } + public Str Name { get; internal set; } = default!; + public BaseOpt TypeParameterType { get; internal set; } = default!; } } \ No newline at end of file diff --git a/Substrate.NET.Metadata/Base/StorageEntryTypeMap.cs b/Substrate.NET.Metadata/Base/StorageEntryTypeMap.cs index e307ebc..1fe2a1b 100644 --- a/Substrate.NET.Metadata/Base/StorageEntryTypeMap.cs +++ b/Substrate.NET.Metadata/Base/StorageEntryTypeMap.cs @@ -1,10 +1,10 @@ -using Substrate.NetApi.Model.Types.Base; +using Substrate.NET.Metadata.Base.Portable; +using Substrate.NET.Metadata.Conversion; +using Substrate.NET.Metadata.Conversion.Internal; +using Substrate.NET.Metadata.V14; +using Substrate.NetApi.Model.Types.Base; using Substrate.NetApi.Model.Types.Primitive; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; +using static Substrate.NET.Metadata.StorageType; namespace Substrate.NET.Metadata.Base { @@ -15,12 +15,12 @@ namespace Substrate.NET.Metadata.Base public abstract class StorageEntryTypeMap : BaseType where THasher : Enum { - public BaseEnum Hasher { get; private set; } + public BaseEnum Hasher { get; private set; } = default!; - public Str Key { get; private set; } + public Str Key { get; private set; } = default!; - public Str Value { get; private set; } - public Bool Linked { get; private set; } + public Str Value { get; private set; } = default!; + public Bool Linked { get; private set; } = default; public override byte[] Encode() { @@ -45,5 +45,20 @@ public override void Decode(byte[] byteArray, ref int p) TypeSize = p - num; } + + public StorageEntryTypeMapV14 ToStorageEntryTypeMapV14(ConversionBuilder conversionBuilder) + { + var result = new StorageEntryTypeMapV14(); + + result.Hashers = new BaseVec>( + [ + new BaseEnum((Hasher)Enum.Parse(typeof(Hasher), Hasher.Value.ToString())) + ]); + + result.Key = TType.From(conversionBuilder.BuildLookup(Key.Value).Value); + result.Value = TType.From(conversionBuilder.BuildLookup(Value.Value).Value); + + return result; + } } } diff --git a/Substrate.NET.Metadata/Base/TypeDefs.cs b/Substrate.NET.Metadata/Base/TypeDefs.cs index cdf82fa..39cf896 100644 --- a/Substrate.NET.Metadata/Base/TypeDefs.cs +++ b/Substrate.NET.Metadata/Base/TypeDefs.cs @@ -49,6 +49,14 @@ public byte[] Encode() public class TType : CompactIntegerType { public override string TypeName() => "T::Type"; + + public static TType From(uint i) + { + var compactIntegerType = new TType(); + compactIntegerType.Value = new CompactInteger(new U32(i)); + + return compactIntegerType; + } } public enum TypeDefEnum @@ -119,7 +127,7 @@ public override void Decode(byte[] byteArray, ref int p) TypeSize = p - start; } - public BaseVec TypeParam { get; private set; } + public BaseVec TypeParam { get; internal set; } } public class TypeDefSequence : BaseType, IMetadataType diff --git a/Substrate.NET.Metadata/Base/Variant.cs b/Substrate.NET.Metadata/Base/Variant.cs index a4dc167..509daf9 100644 --- a/Substrate.NET.Metadata/Base/Variant.cs +++ b/Substrate.NET.Metadata/Base/Variant.cs @@ -42,9 +42,9 @@ public override void Decode(byte[] byteArray, ref int p) TypeSize = p - start; } - public Str Name { get; private set; } - public BaseVec VariantFields { get; private set; } - public U8 Index { get; private set; } - public BaseVec Docs { get; private set; } + public Str Name { get; internal set; } + public BaseVec VariantFields { get; internal set; } + public U8 Index { get; internal set; } + public BaseVec Docs { get; internal set; } } } \ No newline at end of file diff --git a/Substrate.NET.Metadata/Conversion/ConversionV14Helper.cs b/Substrate.NET.Metadata/Conversion/ConversionV14Helper.cs index c8cb211..e3ac0ab 100644 --- a/Substrate.NET.Metadata/Conversion/ConversionV14Helper.cs +++ b/Substrate.NET.Metadata/Conversion/ConversionV14Helper.cs @@ -1,5 +1,6 @@ using Ardalis.GuardClauses; using Substrate.NET.Metadata.Base; +using Substrate.NET.Metadata.Base.Portable; using Substrate.NET.Metadata.V14; using Substrate.NetApi.Model.Types.Base; using Substrate.NetApi.Model.Types.Primitive; @@ -30,6 +31,18 @@ public static MetadataV14 ReferenceV14Metadata } } + /// + /// Search into and return it ID. + /// If ID doesn't exists, create it + /// + /// V14 types + /// The class to search into the dictionnary + /// + public static TType AddToLookup(PortableRegistry lookup, string classType) + { + return null; + } + internal static bool? TryFindModuleInV14(string moduleName) { return null; diff --git a/Substrate.NET.Metadata/Conversion/Internal/ConversionBuilder.cs b/Substrate.NET.Metadata/Conversion/Internal/ConversionBuilder.cs new file mode 100644 index 0000000..a6a331b --- /dev/null +++ b/Substrate.NET.Metadata/Conversion/Internal/ConversionBuilder.cs @@ -0,0 +1,542 @@ +using Substrate.NET.Metadata.Base; +using Substrate.NET.Metadata.Base.Portable; +using Substrate.NET.Metadata.V14; +using Substrate.NetApi.Model.Meta; +using Substrate.NetApi.Model.Types.Base; +using Substrate.NetApi.Model.Types.Primitive; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net.Mime; +using System.Runtime.CompilerServices; +using System.Text; +using System.Text.RegularExpressions; +using System.Threading.Tasks; +using TypeDefExt = Substrate.NetApi.Model.Types.Base.BaseEnumExt< + Substrate.NET.Metadata.Base.TypeDefEnum, + Substrate.NET.Metadata.Base.TypeDefComposite, + Substrate.NET.Metadata.Base.TypeDefVariant, + Substrate.NET.Metadata.Base.TypeDefSequence, + Substrate.NET.Metadata.Base.TypeDefArray, + Substrate.NET.Metadata.Base.TypeDefTuple, + Substrate.NetApi.Model.Types.Base.BaseEnum, + Substrate.NET.Metadata.Base.TypeDefCompact, + Substrate.NET.Metadata.Base.TypeDefBitSequence, + Substrate.NetApi.Model.Types.Base.BaseVoid>; + +namespace Substrate.NET.Metadata.Conversion.Internal +{ + public class ConversionBuilder + { + public List PortableTypes { get; init; } + + public ConversionBuilder(List portableTypes) + { + PortableTypes = portableTypes; + } + + //private PortableType[] Push(this PortableType[] pt, PortableType p) + //{ + // var list = pt.ToList(); + // list.Add(p); + + // return list.ToArray(); + //} + + public U32 GetNewIndex() + { + var max = PortableTypes.Max(x => x.Id); + + if (max is null) return new U32(0); + return new U32(max.Value + 1); + } + + public U32 BuildLookup(string className) + { + var portableType = GetNodeFromV14(className) ?? CreateNode(className, GetNewIndex()); + + return portableType.Id; + } + + /// + /// Try to get the type from V14 + /// + /// + /// + public PortableType? GetNodeFromV14(string className) + { + var nodeType = ConversionBuilderTree.Build(new NodeBuilderTypeUndefined(className)); + var index = SearchV14.FindIndexByNode(nodeType); + + if (index == null) return null; + + return LoopFromV14(index.Value); + } + + public PortableType LoopFromV14(int index) + { + var portableType = SearchV14.FindTypeByIndex(index); + PortableTypes.Add(portableType); + + switch(portableType.Ty.TypeDef.Value) + { + case TypeDefEnum.Composite: + var composite = (TypeDefComposite)portableType.Ty.TypeDef.Value2; + + foreach (var field in composite.Fields.Value) + { + _ = LoopFromV14(field.FieldTy.Value); + } + break; + case TypeDefEnum.Array: + var array = (TypeDefArray)portableType.Ty.TypeDef.Value2; + _ = LoopFromV14(array.ElemType.Value); + break; + case TypeDefEnum.Variant: + var variants = (TypeDefVariant)portableType.Ty.TypeDef.Value2; + foreach(var variant in variants.TypeParam.Value) + { + foreach (var field in variant.VariantFields.Value) + { + _ = LoopFromV14(field.FieldTy.Value); + } + } + break; + case TypeDefEnum.Sequence: + var sequence = (TypeDefSequence)portableType.Ty.TypeDef.Value2; + _ = LoopFromV14(sequence.ElemType.Value); + break; + case TypeDefEnum.Tuple: + var tuple = (TypeDefTuple)portableType.Ty.TypeDef.Value2; + foreach(var field in tuple.Fields.Value) + { + _ = LoopFromV14(field.Value); + } + break; + case TypeDefEnum.Primitive: break; + case TypeDefEnum.Compact: + var compact = (TypeDefCompact)portableType.Ty.TypeDef.Value2; + _ = LoopFromV14(compact.ElemType.Value); + break; + case TypeDefEnum.BitSequence: + var bitSequence = (TypeDefBitSequence)portableType.Ty.TypeDef.Value2; + _ = LoopFromV14(bitSequence.BitOrderType.Value); + _ = LoopFromV14(bitSequence.BitStoreType.Value); + break; + default: + throw new MetadataConversionException($"Unsupported {portableType.Ty.TypeDef.Value} TypeDef"); + } + + return portableType; + } + + /// + /// Create the node from scratch + /// + /// + /// + /// + /// + public static PortableType CreateNode(string className, U32 currentMaxIndex) + { + var tpf = new TypePortableForm(); + + if (ExtractPrimitive(className) is TypeDefPrimitive prim) + { + tpf.Path = new Base.Portable.Path(); + tpf.TypeParams = new BaseVec(); + tpf.TypeDef = new TypeDefExt(); + tpf.TypeDef.Create(TypeDefEnum.Primitive, new BaseEnum(prim)); + + return new PortableType(currentMaxIndex, tpf); + } + + var extractGeneric = ExtractGeneric(className); + if (extractGeneric is not null) + { + var toFind = CustomMapping(HarmonizeTypeName(extractGeneric.Value.genericParameters[0])); + var index = SearchV14.FindIndexByClass(toFind); + } + + throw new MetadataConversionException($"Unable to convert {className} to NodeType"); + } + + public static string HarmonizeTypeName(string className) + { + return className.Replace("T::", ""); + } + + public static List HarmonizeFullType(string className) + { + var res = new List(); + + if (ExtractMap(className) is (string, string) map) + { + res.Add(map.key); + res.Add(map.value); + return ExtractDeeper(res); + } + + if (ExtractDoubleMap(className) is (string, string, string) doubleMap) + { + res.Add(doubleMap.key1); + res.Add(doubleMap.key2); + res.Add(doubleMap.value); + + return ExtractDeeper(res); + } + + if (ExtractTuple(className) is List tuples) + { + res.AddRange(tuples); + return ExtractDeeper(res); + } + + if (ExtractArray(className) is List array) + { + res.AddRange(array); + return ExtractDeeper(res); + } + + if (ExtractParameters(className) is List parameters) + { + res.AddRange(parameters); + return ExtractDeeper(res); + } + + var extractGeneric = ExtractGeneric(className); + + if (extractGeneric is not null) + { + res.AddRange(extractGeneric.Value.genericParameters); + + return ExtractDeeper(res); + } + + if (ExtractRustGeneric(className) is string param) + { + res.Add(param); + return ExtractDeeper(res); + } + + res.Add(HarmonizeTypeName(className)); + return res; + } + + /// + /// Extract Rust generic from a class name + /// For example ::AccountId => AccountId + /// + /// + /// + internal static string? ExtractRustGeneric(string className) + { + string pattern = @"<[^>]+>::(\w+)"; + + Match match = Regex.Match(className, pattern); + + if (match.Success) + { + return match.Groups[1].Value; + } + + return null; + } + + public static List? ExtractParameters(string className) + { + List result = new(); + + var splitted = className.Split(new[] { "," }, StringSplitOptions.None).Select(x => x.Trim()).ToList(); + result.AddRange(splitted); + + if (splitted.Count > 1) + { + List indexBracketOpen = new(); + List indexBracketClose = new(); + int lastIndexRemoved = 0; + + for (int i = 0; i < splitted.Count; i++) + { + var diff = splitted[i].Count(i => i == '<') - splitted[i].Count(i => i == '>'); + + if (diff > 0) + { + Enumerable.Range(0, diff).ToList().ForEach(x => indexBracketOpen.Add(i)); + } + + if (diff < 0) + { + Enumerable.Range(0, Math.Abs(diff)).ToList().ForEach(x => indexBracketClose.Add(i)); + + if (indexBracketClose.Count == indexBracketOpen.Count) + { + var start = indexBracketOpen.First(); + var end = indexBracketClose.Last(); + + var sub = string.Join(", ", splitted.GetRange(start, end - start + 1)); + + //result.RemoveRange(start - lastIndexRemoved, end - start + 1 - lastIndexRemoved); + Enumerable.Range(start, end - start + 1).ToList().ForEach(x => result.Remove(splitted[x])); + result.Insert(start - lastIndexRemoved, sub); + + lastIndexRemoved = end; + indexBracketOpen.Clear(); + indexBracketClose.Clear(); + } + } + } + + // At the end, let's check if something has changed + return result.First() == className ? null : result; + } + + return null; + } + + private static List? ExtractArray(string className) + { + string pattern = @"\[(.*);\s*(\d+)\]"; + Match match = Regex.Match(className, pattern); + + if (match.Success) + { + //match.Groups[1].Value -> array size + return new List() { match.Groups[1].Value }; + } + + return null; + } + + private static List? ExtractTuple(string className) + { + string pattern = @"\((.*)\)$"; + Match match = Regex.Match(className, pattern); + + if (match.Success) + { + return new List() { match.Groups[1].Value }; + } + + return null; + } + + private static List ExtractDeeper(List res) + { + //if (res.Count > 1) + //{ + for (int i = 0; i < res.Count; i++) + { + var r = HarmonizeFullType(res[i]); + if (r.Count > 1) + { + res.Remove(res[i]); + res.AddRange(r); + i = -1; + } + else + { + res[i] = r[0]; + } + } + //} + + return res; + } + + public static (string key1, string key2, string value)? ExtractDoubleMap(string className) + { + string pattern = @"Key1\s*=\s*([^\/]+)\s*\/\s*Key1Hasher\s*=\s*([^\/]+)\s*\/\s*Key2\s*=\s*([^\/]+)\s*\/\s*Key2Hasher\s*=\s*([^\/]+)\s*\/\s*Value\s*=\s*([^\]]+)"; + + Match match = Regex.Match(className, pattern); + if (match.Success) + { + string key1 = match.Groups[1].Value.Trim(); + string key2 = match.Groups[3].Value.Trim(); + string value = match.Groups[5].Value.Trim(); + return (key1, key2, value); + } + + return null; + } + public static (string key, string value)? ExtractMap(string className) + { + string pattern = @"Key\s*=\s*([^\/]+)\s*\/\s*Value\s*=\s*([^\]]+)"; + + Match match = Regex.Match(className, pattern); + if (match.Success) + { + string key = match.Groups[1].Value.Trim(); + string value = match.Groups[2].Value.Trim(); + return (key, value); + } + + return null; + } + + public static TypeDefPrimitive? ExtractPrimitive(string className) + { + object? res = null; + if (Enum.TryParse(typeof(TypeDefPrimitive), className, true, out res)) + { + return (TypeDefPrimitive)res; + } + + return null; + } + + public static (TypeDefEnum typeDefEnum, List genericParameters)? ExtractGeneric(string className) + { + string pattern = @"([a-zA-Z:]*|)<(.*)>$"; + Match match = Regex.Match(className, pattern); + + if (match.Success) + { + var genericParameters = match.Groups[2].Value; + + // A valid pattern should have the same number of '<' and '>' and '<' should be before '>' + if (!HaveValidParametersPattern(genericParameters)) + { + return null; + } + + var typeDef = GetTypeDefFromString(match.Groups[1].Value); + + List genericValue = new(); + if (!GenericValueToIgnore.Contains(genericParameters)) + { + genericValue.Add(genericParameters); + } + + // A composite is basically a class, so let's add it + if (typeDef == TypeDefEnum.Composite) + { + genericValue.Insert(0, match.Groups[1].Value); + } + return (typeDef, genericValue); + } + + return null; + } + + /// + /// A valid pattern should have the same number of '<' and '>' and '<' should be before '>' + /// + /// + /// + private static bool HaveValidParametersPattern(string genericParameters) + { + var nbOpenBracket = genericParameters.Count(x => x == '<'); + var nbClosedBracket = genericParameters.Count(x => x == '<'); + + return nbOpenBracket == nbClosedBracket && + nbOpenBracket == 0 || (genericParameters.IndexOf('<') < genericParameters.IndexOf('>')); + } + + public static string[] GenericValueToIgnore = ["T"]; + + public static TypeDefEnum GetTypeDefFromString(string genericType) + { + return genericType switch + { + "Vec" => TypeDefEnum.Sequence, + _ => TypeDefEnum.Composite + }; + } + + public static string CustomMapping(string className) + { + return className switch + { + "AccountId" => "AccountId32", + "TaskAddress" => "TaskAddress", + "Vec" => "Vec>", + "Vec" => "Vec", + "Vec<(AccountId, Balance)>" => "Vec<(::AccountId, BalanceOf)>", + "sp_std::marker::PhantomData<(AccountId, Event)>" => "BaseVoid", // Pas sur de moi + "Timepoint" => "Timepoint", + "limits::BlockWeights" => "BlockWeights", + "limits::BlockLength" => "BlockLength", + "TransactionPriority" => "u64", + "& 'static[u8]" => "vec", + "&[u8]" => "vec", + "Moment" => "u64", + "ModuleId" => "PalletId", + "LeasePeriod" => "LeasePeriodOf", + _ => className + }; + } + + //public static int? TryHardBinding(string className) + //{ + // return className switch + // { + // "u8" => 2, + // "u16" => 73, + // "u32" => 4, + // "u64" => 8, + // "u128" => 6, + // "bool" => 58, + // "Str" => 108, + // "Vec>>" => 386, + // "LockIdentifier" => 125, + // "[u8;8]" => 125, + // _ => null + // }; + //} + + public U32 AddEventRuntimeLookup(string palletName, Variant[] variants) + { + var path = new Base.Portable.Path(); + path.Create(new List() { palletName, "pallet", "Event" }.Select(x => new Str(x)).ToArray()); + + var typeParams = new BaseVec([ + new TypeParameter(new Str("T"), new BaseOpt()) + ]); + + var variant = new TypeDefVariant(); + variant.TypeParam = new BaseVec(variants); + var typeDef = new TypeDefExt(); + typeDef.Create(TypeDefEnum.Variant, variant); + + var docs = new BaseVec([new Str($"Event for the {palletName} pallet")]); + + var index = GetNewIndex(); + PortableTypes.Add(new PortableType(index, new TypePortableForm( + path, + typeParams, + typeDef, + docs + ))); + + return index; + } + + public PalletEventMetadataV14 ConvertToEventV14(string eventName, string eventType) + { + var res = new PalletEventMetadataV14(); + + res.ElemType = TType.From(BuildLookup(eventType).Value); + + return res; + } + + public PalletConstantMetadataV14 ConvertToConstantV14(string constantName, string constantType, ByteGetter defaultValue) + { + var res = new PalletConstantMetadataV14(); + res.Name = new Str(constantName); + res.ConstantValue = defaultValue; + res.ConstantType = TType.From(BuildLookup(constantType).Value); + + return res; + } + + public PalletErrorMetadataV14 ConvertToErrorV14(string errorName) + { + var res = new PalletErrorMetadataV14(); + res.ElemType = TType.From(BuildLookup(errorName).Value); + + return res; + } + } +} diff --git a/Substrate.NET.Metadata/Conversion/Internal/ConversionBuilderTree.cs b/Substrate.NET.Metadata/Conversion/Internal/ConversionBuilderTree.cs new file mode 100644 index 0000000..7780219 --- /dev/null +++ b/Substrate.NET.Metadata/Conversion/Internal/ConversionBuilderTree.cs @@ -0,0 +1,400 @@ +using Substrate.NET.Metadata.Base; +using Substrate.NET.Metadata.Base.Portable; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Text.RegularExpressions; +using System.Threading.Tasks; + +namespace Substrate.NET.Metadata.Conversion.Internal +{ + public static class ConversionBuilderTree + { + public static string HarmonizeTypeName(string className) + { + return className.Replace("T::", ""); + } + + public static NodeBuilderType Build(NodeBuilderType nodeBuilderType) + { + //if (ExtractMap(className) is (string, string) map) + //{ + // res.Add(map.key); + // res.Add(map.value); + // return ExtractDeeper(res); + //} + + //if (ExtractDoubleMap(className) is (string, string, string) doubleMap) + //{ + // res.Add(doubleMap.key1); + // res.Add(doubleMap.key2); + // res.Add(doubleMap.value); + + // return ExtractDeeper(res); + //} + + if (ExtractTuple(nodeBuilderType.Adapted) is NodeBuilderTypeTuple tuples) + { + if (nodeBuilderType is NodeBuilderTypeUndefined) + { + nodeBuilderType = tuples; + } + //return Build(tuples, tuples.Content); + } + + if (ExtractArray(nodeBuilderType.Adapted) is NodeBuilderTypeArray array) + { + if (nodeBuilderType is NodeBuilderTypeUndefined) + { + nodeBuilderType = array; + } + //return Build(array, array.Content); + } + + //if (ExtractParameters(nodeBuilderType.Content) is List parameters) + //{ + // //res.AddRange(parameters); + // //return ExtractDeeper(res); + //} + + var extractGeneric = ExtractGeneric(nodeBuilderType.Adapted); + + if (extractGeneric is not null) + { + if (nodeBuilderType is NodeBuilderTypeUndefined) + { + nodeBuilderType = extractGeneric!; + } + } + + if (ExtractPrimitive(nodeBuilderType.Adapted) is NodeBuilderTypePrimitive primitive) + { + if (nodeBuilderType is NodeBuilderTypeUndefined) + { + nodeBuilderType = primitive!; + } + + return primitive; + } + + if (nodeBuilderType is NodeBuilderTypeUndefined) + { + var content = HarmonizeTypeName(nodeBuilderType.Adapted); + nodeBuilderType = new NodeBuilderTypeComposite( + SearchV14.HardBinding( + HarmonizeTypeName(nodeBuilderType.Adapted)), + nodeBuilderType.Adapted); + } + + if (nodeBuilderType.Children.Count > 0) + { + for (int i = 0; i < nodeBuilderType.Children.Count; i++) + { + nodeBuilderType.Children[i] = Build(nodeBuilderType.Children[i]); + } + } + + //return new NodeBuilderTypeComposite(className); + return nodeBuilderType; + + + + //if (ExtractRustGeneric(className) is string param) + //{ + // res.Add(param); + // return ExtractDeeper(res); + //} + + //res.Add(HarmonizeTypeName(className)); + //return res; + } + + /// + /// Extract Rust generic from a class name + /// For example ::AccountId => AccountId + /// + /// + /// + internal static string? ExtractRustGeneric(string className) + { + string pattern = @"<[^>]+>::(\w+)"; + + Match match = Regex.Match(className, pattern); + + if (match.Success) + { + return match.Groups[1].Value; + } + + return null; + } + + public static List? ExtractParameters(string className) + { + List result = new(); + + var splitted = className.Split(new[] { "," }, StringSplitOptions.None).Select(x => x.Trim()).ToList(); + result.AddRange(splitted); + + if (splitted.Count > 1) + { + List indexBracketOpen = new(); + List indexBracketClose = new(); + int lastIndexRemoved = 0; + + for (int i = 0; i < splitted.Count; i++) + { + var diff = splitted[i].Count(i => i == '<') - splitted[i].Count(i => i == '>'); + + if (diff > 0) + { + Enumerable.Range(0, diff).ToList().ForEach(x => indexBracketOpen.Add(i)); + } + + if (diff < 0) + { + Enumerable.Range(0, Math.Abs(diff)).ToList().ForEach(x => indexBracketClose.Add(i)); + + if (indexBracketClose.Count == indexBracketOpen.Count) + { + var start = indexBracketOpen.First(); + var end = indexBracketClose.Last(); + + var sub = string.Join(", ", splitted.GetRange(start, end - start + 1)); + + //result.RemoveRange(start - lastIndexRemoved, end - start + 1 - lastIndexRemoved); + Enumerable.Range(start, end - start + 1).ToList().ForEach(x => result.Remove(splitted[x])); + result.Insert(start - lastIndexRemoved, sub); + + lastIndexRemoved = end; + indexBracketOpen.Clear(); + indexBracketClose.Clear(); + } + } + } + + // At the end, let's check if something has changed + return result.First() == className ? null : result; + } + + return null; + } + + //public static List? ExtractParameters(string className) + //{ + // List result = new(); + + // var splitted = className.Split(new[] { "," }, StringSplitOptions.None).Select(x => x.Trim()).ToList(); + // result.AddRange(splitted.Select(x => new NodeBuilderTypeUndefined(x))); + + // if (splitted.Count > 1) + // { + // List indexBracketOpen = new(); + // List indexBracketClose = new(); + // int lastIndexRemoved = 0; + + // for (int i = 0; i < splitted.Count; i++) + // { + // var diff = splitted[i].Count(i => i == '<') - splitted[i].Count(i => i == '>'); + + // if (diff > 0) + // { + // Enumerable.Range(0, diff).ToList().ForEach(x => indexBracketOpen.Add(i)); + // } + + // if (diff < 0) + // { + // Enumerable.Range(0, Math.Abs(diff)).ToList().ForEach(x => indexBracketClose.Add(i)); + + // if (indexBracketClose.Count == indexBracketOpen.Count) + // { + // var start = indexBracketOpen.First(); + // var end = indexBracketClose.Last(); + + // var sub = string.Join(", ", splitted.GetRange(start, end - start + 1)); + + // //result.RemoveRange(start - lastIndexRemoved, end - start + 1 - lastIndexRemoved); + // Enumerable.Range(start, end - start + 1).ToList().ForEach(x => result.Remove(new NodeBuilderTypeUndefined(splitted[x]))); + // result.Insert(start - lastIndexRemoved, new NodeBuilderTypeUndefined(sub)); + + // lastIndexRemoved = end; + // indexBracketOpen.Clear(); + // indexBracketClose.Clear(); + // } + // } + // } + + // // At the end, let's check if something has changed + // return result.First() == new NodeBuilderTypeUndefined(className) ? null : result; + // } + + // return null; + //} + + private static NodeBuilderTypeArray? ExtractArray(string className) + { + string pattern = @"\[(.*);\s*(\d+)\]"; + Match match = Regex.Match(className, pattern); + + if (match.Success) + { + //match.Groups[1].Value -> array size + var array = new NodeBuilderTypeArray(className, int.Parse(match.Groups[2].Value)); + + array.Children.Add(new NodeBuilderTypeUndefined(match.Groups[1].Value)); + } + + return null; + } + + private static NodeBuilderTypeTuple? ExtractTuple(string className) + { + string pattern = @"\((.*)\)$"; + Match match = Regex.Match(className, pattern); + + if (match.Success) + { + var nodeTuple = new NodeBuilderTypeTuple(className); + + if (ExtractParameters(match.Groups[1].Value) is List parameters) + { + foreach(var param in parameters) + { + nodeTuple.Children.Add(new NodeBuilderTypeUndefined(param)); + } + } + + return nodeTuple; + } + + return null; + } + + //private static List ExtractDeeper(NodeBuilderType nodeBuilderType, string content) + //{ + // //if (res.Count > 1) + // //{ + // for (int i = 0; i < res.Count; i++) + // { + // var r = Build(res[i]); + // if (r.Count > 1) + // { + // res.Remove(res[i]); + // res.AddRange(r); + // i = -1; + // } + // else + // { + // res[i] = r[0]; + // } + // } + // //} + + // return res; + //} + + public static (string key1, string key2, string value)? ExtractDoubleMap(string className) + { + string pattern = @"Key1\s*=\s*([^\/]+)\s*\/\s*Key1Hasher\s*=\s*([^\/]+)\s*\/\s*Key2\s*=\s*([^\/]+)\s*\/\s*Key2Hasher\s*=\s*([^\/]+)\s*\/\s*Value\s*=\s*([^\]]+)"; + + Match match = Regex.Match(className, pattern); + if (match.Success) + { + string key1 = match.Groups[1].Value.Trim(); + string key2 = match.Groups[3].Value.Trim(); + string value = match.Groups[5].Value.Trim(); + return (key1, key2, value); + } + + return null; + } + public static (string key, string value)? ExtractMap(string className) + { + string pattern = @"Key\s*=\s*([^\/]+)\s*\/\s*Value\s*=\s*([^\]]+)"; + + Match match = Regex.Match(className, pattern); + if (match.Success) + { + string key = match.Groups[1].Value.Trim(); + string value = match.Groups[2].Value.Trim(); + return (key, value); + } + + return null; + } + + public static NodeBuilderTypePrimitive? ExtractPrimitive(string className) + { + object? res = null; + if (Enum.TryParse(typeof(TypeDefPrimitive), className, true, out res)) + { + return new NodeBuilderTypePrimitive(className, (TypeDefPrimitive)res); + } + + return null; + } + + public static NodeBuilderType? ExtractGeneric(string className) + { + string pattern = @"([a-zA-Z:]*|)<(.*)>$"; + Match match = Regex.Match(className, pattern); + + if (match.Success) + { + var genericParameters = match.Groups[2].Value; + + // A valid pattern should have the same number of '<' and '>' and '<' should be before '>' + if (!HaveValidParametersPattern(genericParameters)) + { + return null; + } + + var typeDef = GetTypeDefFromString(match.Groups[1].Value); + + NodeBuilderType result = typeDef switch + { + TypeDefEnum.Sequence => new NodeBuilderTypeSequence(className), + TypeDefEnum.Composite => new NodeBuilderTypeComposite( + SearchV14.HardBinding(match.Groups[1].Value), + match.Groups[1].Value), + _ => throw new MetadataConversionException($"TypeDef {typeDef} is not handled") + }; + + if (!GenericValueToIgnore.Contains(genericParameters)) + { + result.Children.Add(new NodeBuilderTypeUndefined(genericParameters)); + } + + return result; + } + + return null; + } + + /// + /// A valid pattern should have the same number of '<' and '>' and '<' should be before '>' + /// + /// + /// + private static bool HaveValidParametersPattern(string genericParameters) + { + var nbOpenBracket = genericParameters.Count(x => x == '<'); + var nbClosedBracket = genericParameters.Count(x => x == '<'); + + return nbOpenBracket == nbClosedBracket && + nbOpenBracket == 0 || (genericParameters.IndexOf('<') < genericParameters.IndexOf('>')); + } + + public static string[] GenericValueToIgnore = ["T"]; + + public static TypeDefEnum GetTypeDefFromString(string genericType) + { + return genericType switch + { + "Vec" => TypeDefEnum.Sequence, + _ => TypeDefEnum.Composite + }; + } + } +} diff --git a/Substrate.NET.Metadata/Conversion/Internal/MetadataTree.cs b/Substrate.NET.Metadata/Conversion/Internal/MetadataTree.cs new file mode 100644 index 0000000..5ec4105 --- /dev/null +++ b/Substrate.NET.Metadata/Conversion/Internal/MetadataTree.cs @@ -0,0 +1,194 @@ +using Newtonsoft.Json.Converters; +using Newtonsoft.Json; +using Substrate.NetApi.Model.Meta; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Substrate.NET.Metadata.Base; +using Substrate.NetApi.Model.Types.Primitive; +using Substrate.NetApi.Model.Types.Base; + +namespace Substrate.NET.Metadata.Conversion.Internal +{ + public class NodeType + { + public U32 Id { get; set; } + + public Base.Portable.Path Path { get; set; } + + public NodeTypeParam[] TypeParams { get; set; } = new NodeTypeParam[0]; + + public TypeDefEnum TypeDef { get; set; } + + public BaseVec Docs { get; set; } + } + + public class NodeTypeParam + { + [JsonProperty(NullValueHandling = NullValueHandling.Ignore)] + public string Name { get; set; } + + [JsonProperty(NullValueHandling = NullValueHandling.Ignore)] + public uint? TypeId { get; set; } + } + + public class NodeTypePrimitive : NodeType + { + [JsonConverter(typeof(StringEnumConverter))] + public TypeDefPrimitive Primitive { get; set; } + } + + public class NodeTypeComposite : NodeType + { + [JsonProperty(NullValueHandling = NullValueHandling.Ignore)] + public NodeTypeField[] TypeFields { get; set; } + } + + public class NodeTypeField + { + [JsonProperty(NullValueHandling = NullValueHandling.Ignore)] + public string Name { get; set; } + + [JsonProperty(NullValueHandling = NullValueHandling.Ignore)] + public string TypeName { get; set; } + + public uint TypeId { get; set; } + + [JsonProperty(NullValueHandling = NullValueHandling.Ignore)] + public string[] Docs { get; set; } + } + + public class NodeTypeArray : NodeType + { + public uint Length { get; set; } + + public uint TypeId { get; set; } + } + + public class NodeTypeSequence : NodeType + { + public uint TypeId { get; set; } + } + + public class NodeTypeCompact : NodeType + { + public uint TypeId { get; set; } + } + + public class NodeTypeTuple : NodeType + { + public uint[] TypeIds { get; set; } + } + + public class NodeTypeBitSequence : NodeType + { + public uint TypeIdStore { get; set; } + public uint TypeIdOrder { get; set; } + } + + public class NodeTypeVariant : NodeType + { + public TypeVariant[] Variants { get; set; } + } + + public class TypeVariant + { + public string Name { get; set; } + public NodeTypeField[] TypeFields { get; set; } + + public int Index { get; set; } + + [JsonProperty(NullValueHandling = NullValueHandling.Ignore)] + public string[] Docs { get; set; } + } + + public class NodeMetadataV14 + { + public Dictionary Types { get; set; } + public Dictionary Modules { get; set; } + public ExtrinsicMetadata Extrinsic { get; set; } + public uint TypeId { get; set; } + } + + public class SignedExtensionMetadata + { + public string SignedIdentifier { get; set; } + public uint SignedExtType { get; set; } + public uint AddSignedExtType { get; set; } + } + + public class ExtrinsicMetadata + { + public uint TypeId { get; set; } + public int Version { get; set; } + public SignedExtensionMetadata[] SignedExtensions { get; set; } + } + + public class PalletConstant + { + public string Name { get; set; } + public uint TypeId { get; set; } + public byte[] Value { get; set; } + public string[] Docs { get; set; } + } + + public class PalletStorage + { + public string Prefix { get; set; } + public Entry[] Entries { get; set; } + } + + public class Entry + { + public string Name { get; set; } + + [JsonConverter(typeof(StringEnumConverter))] + public Storage.Modifier Modifier { get; set; } + + [JsonConverter(typeof(StringEnumConverter))] + public Storage.Type StorageType { get; set; } + + public (uint, TypeMap) TypeMap { get; set; } + public byte[] Default { get; set; } + + [JsonProperty(NullValueHandling = NullValueHandling.Ignore)] + public string[] Docs { get; set; } + } + + public class TypeMap + { + [JsonProperty("Hashers", ItemConverterType = typeof(StringEnumConverter))] + public Storage.Hasher[] Hashers { get; set; } + + public uint Key { get; set; } + public uint Value { get; set; } + } + + public class PalletModule + { + public string Name { get; set; } + public PalletStorage Storage { get; set; } + public PalletCalls Calls { get; set; } + public PalletEvents Events { get; set; } + public PalletConstant[] Constants { get; set; } + public PalletErrors Errors { get; set; } + public uint Index { get; set; } + } + + public class PalletCalls + { + public uint TypeId { get; set; } + } + + public class PalletEvents + { + public uint TypeId { get; set; } + } + + public class PalletErrors + { + public uint TypeId { get; set; } + } +} diff --git a/Substrate.NET.Metadata/Conversion/Internal/MetadataVersionCompact.cs b/Substrate.NET.Metadata/Conversion/Internal/MetadataVersionCompact.cs new file mode 100644 index 0000000..c6b3910 --- /dev/null +++ b/Substrate.NET.Metadata/Conversion/Internal/MetadataVersionCompact.cs @@ -0,0 +1,65 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Substrate.NET.Metadata.Conversion.Internal +{ + internal class MetadataVersionCompact + { + public MetadataVersionCompact(int majorVersion, int minorVersion, string blockHash) + { + MajorVersion = majorVersion; + MinorVersion = minorVersion; + BlockHash = blockHash; + } + + public int MajorVersion { get; set; } + public int MinorVersion { get; set; } + public string BlockHash { get; set; } + + public List StorageClasses { get; set; } = new List(); + + public List Flatten() + { + var res = new List(); + + foreach (var storageClass in StorageClasses) + { + res.Add($"{MajorVersion}|{MinorVersion}|{storageClass.ToString()}"); + } + + return res; + } + + public void AddOrInc(Dictionary uniqueName, string name) + { + if (uniqueName.ContainsKey(name)) + { + uniqueName[name] += 1; + } + else + { + uniqueName[name] = 1; + } + } + + public void GetDistinctStorageClasses(Dictionary uniqueName) + { + var distinctClasses = StorageClasses.Select(x => x.ClassNameMapped).Distinct().ToList(); + + for (int i = 0; i < distinctClasses.Count; i++) + { + var classes = ConversionBuilder.HarmonizeFullType(distinctClasses[i]); + + foreach (var c in classes) + { + AddOrInc(uniqueName, c); + } + } + } + + public override string ToString() => $"{MajorVersion}.{MinorVersion}.{BlockHash}"; + } +} diff --git a/Substrate.NET.Metadata/Conversion/Internal/NodeBuilderType.cs b/Substrate.NET.Metadata/Conversion/Internal/NodeBuilderType.cs new file mode 100644 index 0000000..7076751 --- /dev/null +++ b/Substrate.NET.Metadata/Conversion/Internal/NodeBuilderType.cs @@ -0,0 +1,117 @@ +using Substrate.NET.Metadata.Base; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Xml.Linq; + +namespace Substrate.NET.Metadata.Conversion.Internal +{ + public abstract class NodeBuilderType + { + public abstract TypeDefEnum TypeDef { get; } + public string Adapted { get; set; } + public string Raw { get; set; } + + protected NodeBuilderType(string content, string raw) + { + Adapted = content; + Raw = raw; + } + + public List Children { get; set; } = new List(); + + private string ToString(int level) + { + var indent = new string(' ', level * 2); + var result = indent + TypeDef.ToString(); + + foreach (var child in Children) + { + result += "\n" + child.ToString(level + 1); + } + + return result; + } + + } + + public class NodeBuilderTypeUndefined : NodeBuilderType + { + public override TypeDefEnum TypeDef => throw new NotImplementedException(); + + public NodeBuilderTypeUndefined(string content) : base(content, content) + { + } + } + + public class NodeBuilderTypePrimitive : NodeBuilderType + { + public TypeDefPrimitive Primitive { get; set; } + + public NodeBuilderTypePrimitive(string content, TypeDefPrimitive primitive): base(content, content) + { + Primitive = primitive; + } + + public override TypeDefEnum TypeDef => TypeDefEnum.Primitive; + } + + public class NodeBuilderTypeComposite : NodeBuilderType + { + public NodeBuilderTypeComposite(string content, string raw) : base(content, raw) + { + } + + public override TypeDefEnum TypeDef => TypeDefEnum.Composite; + } + + public class NodeBuilderTypeSequence : NodeBuilderType + { + public NodeBuilderTypeSequence(string content) : base(content, content) + { + } + + public override TypeDefEnum TypeDef => TypeDefEnum.Sequence; + } + + public class NodeBuilderTypeTuple : NodeBuilderType + { + public NodeBuilderTypeTuple(string content) : base(content, content) + { + } + + public override TypeDefEnum TypeDef => TypeDefEnum.Tuple; + } + + public class NodeBuilderTypeArray : NodeBuilderType + { + public NodeBuilderTypeArray(string content, int length): base(content, content) + { + Length = length; + } + + public int Length { get; set; } + + public override TypeDefEnum TypeDef => TypeDefEnum.Tuple; + } + + public class NodeBuilderTypeCompact : NodeBuilderType + { + public NodeBuilderTypeCompact(string content) : base(content, content) + { + } + + public override TypeDefEnum TypeDef => TypeDefEnum.Compact; + } + + public class NodeBuilderTypeVariant : NodeBuilderType + { + public NodeBuilderTypeVariant(string content) : base(content, content) + { + } + + public override TypeDefEnum TypeDef => TypeDefEnum.Variant; + } +} diff --git a/Substrate.NET.Metadata/Conversion/Internal/SearchV14.cs b/Substrate.NET.Metadata/Conversion/Internal/SearchV14.cs new file mode 100644 index 0000000..3b702c2 --- /dev/null +++ b/Substrate.NET.Metadata/Conversion/Internal/SearchV14.cs @@ -0,0 +1,232 @@ +using Substrate.NET.Metadata.Base; +using Substrate.NET.Metadata.Base.Portable; +using Substrate.NET.Metadata.V14; +using Substrate.NetApi.Model.Types.Base; +using System; +using System.Linq; + +namespace Substrate.NET.Metadata.Conversion.Internal +{ + public static class SearchV14 + { + #region V14 hex + private static string v14Hex = "0x6d6574610e1109000c1c73705f636f72651863727970746f2c4163636f756e7449643332000004000401205b75383b2033325d0000040000032000000008000800000503000c08306672616d655f73797374656d2c4163636f756e74496e666f0814496e64657801102c4163636f756e74446174610114001401146e6f6e6365100114496e646578000124636f6e73756d657273100120526566436f756e7400012470726f766964657273100120526566436f756e7400012c73756666696369656e7473100120526566436f756e740001106461746114012c4163636f756e7444617461000010000005050014083c70616c6c65745f62616c616e6365732c4163636f756e7444617461041c42616c616e63650118001001106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500012c6d6973635f66726f7a656e18011c42616c616e63650001286665655f66726f7a656e18011c42616c616e636500001800000507001c0c346672616d655f737570706f72741c77656967687473405065724469737061746368436c6173730404540120000c01186e6f726d616c2001045400012c6f7065726174696f6e616c200104540001246d616e6461746f727920010454000020000005060024083c7072696d69746976655f74797065731048323536000004000401205b75383b2033325d00002800000208002c102873705f72756e74696d651c67656e6572696318646967657374184469676573740410486173680124000401106c6f67733001545665633c4469676573744974656d3c486173683e3e000030000002340034102873705f72756e74696d651c67656e6572696318646967657374284469676573744974656d0410486173680124011c3c4368616e67657354726965526f6f740400240110486173680002002850726552756e74696d650800380144436f6e73656e737573456e67696e654964000028011c5665633c75383e00060024436f6e73656e7375730800380144436f6e73656e737573456e67696e654964000028011c5665633c75383e000400105365616c0800380144436f6e73656e737573456e67696e654964000028011c5665633c75383e000500444368616e676573547269655369676e616c04003c01444368616e676573547269655369676e616c000700144f74686572040028011c5665633c75383e0000006452756e74696d65456e7669726f6e6d656e745570646174656400080000380000030400000008003c102873705f72756e74696d651c67656e6572696318646967657374444368616e676573547269655369676e616c000104404e6577436f6e66696775726174696f6e04004001804f7074696f6e3c4368616e67657354726965436f6e66696775726174696f6e3e000000004004184f7074696f6e04045401440108104e6f6e6500000010536f6d650400440000010000440c1c73705f636f7265306368616e6765735f74726965604368616e67657354726965436f6e66696775726174696f6e000008013c6469676573745f696e74657276616c10010c7533320001346469676573745f6c6576656c7310010c7533320000480000024c004c08306672616d655f73797374656d2c4576656e745265636f7264080445015004540124000c011470686173659d01011450686173650001146576656e7450010445000118746f70696373a10101185665633c543e0000500840706f6c6b61646f745f72756e74696d65144576656e740001801853797374656d04005401706672616d655f73797374656d3a3a4576656e743c52756e74696d653e000000245363686564756c6572040070018070616c6c65745f7363686564756c65723a3a4576656e743c52756e74696d653e0001001c496e6469636573040084017870616c6c65745f696e64696365733a3a4576656e743c52756e74696d653e0004002042616c616e636573040088017c70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d653e0005001c5374616b696e67040090017870616c6c65745f7374616b696e673a3a4576656e743c52756e74696d653e000700204f6666656e636573040094015870616c6c65745f6f6666656e6365733a3a4576656e740008001c53657373696f6e04009c015470616c6c65745f73657373696f6e3a3a4576656e740009001c4772616e6470610400a0015470616c6c65745f6772616e6470613a3a4576656e74000b0020496d4f6e6c696e650400b4018070616c6c65745f696d5f6f6e6c696e653a3a4576656e743c52756e74696d653e000c002444656d6f63726163790400d8018070616c6c65745f64656d6f63726163793a3a4576656e743c52756e74696d653e000e001c436f756e63696c0400e401fc70616c6c65745f636f6c6c6563746976653a3a4576656e743c52756e74696d652c2070616c6c65745f636f6c6c6563746976653a3a496e7374616e6365313e000f0048546563686e6963616c436f6d6d69747465650400ec01fc70616c6c65745f636f6c6c6563746976653a3a4576656e743c52756e74696d652c2070616c6c65745f636f6c6c6563746976653a3a496e7374616e6365323e0010004050687261676d656e456c656374696f6e0400f001a470616c6c65745f656c656374696f6e735f70687261676d656e3a3a4576656e743c52756e74696d653e0011004c546563686e6963616c4d656d626572736869700400fc01fc70616c6c65745f6d656d626572736869703a3a4576656e743c52756e74696d652c2070616c6c65745f6d656d626572736869703a3a496e7374616e6365313e00120020547265617375727904000101017c70616c6c65745f74726561737572793a3a4576656e743c52756e74696d653e00130018436c61696d73040005010158636c61696d733a3a4576656e743c52756e74696d653e0018001c56657374696e6704001101017870616c6c65745f76657374696e673a3a4576656e743c52756e74696d653e0019001c5574696c69747904001501015470616c6c65745f7574696c6974793a3a4576656e74001a00204964656e7469747904001901017c70616c6c65745f6964656e746974793a3a4576656e743c52756e74696d653e001c001450726f787904001d01017070616c6c65745f70726f78793a3a4576656e743c52756e74696d653e001d00204d756c746973696704002901017c70616c6c65745f6d756c74697369673a3a4576656e743c52756e74696d653e001e0020426f756e7469657304003101017c70616c6c65745f626f756e746965733a3a4576656e743c52756e74696d653e002200105469707304003501016c70616c6c65745f746970733a3a4576656e743c52756e74696d653e00230068456c656374696f6e50726f76696465724d756c746950686173650400390101d070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173653a3a4576656e743c52756e74696d653e0024003450617261496e636c7573696f6e04004501019070617261636861696e735f696e636c7573696f6e3a3a4576656e743c52756e74696d653e00350014506172617304007501015c70617261636861696e735f70617261733a3a4576656e740038000c556d7004007901015470617261636861696e735f756d703a3a4576656e74003b001048726d7004008501017c70617261636861696e735f68726d703a3a4576656e743c52756e74696d653e003c002452656769737472617204008d01017c70617261735f7265676973747261723a3a4576656e743c52756e74696d653e00460014536c6f7473040091010154736c6f74733a3a4576656e743c52756e74696d653e0047002041756374696f6e7304009501016061756374696f6e733a3a4576656e743c52756e74696d653e0048002443726f77646c6f616e04009901016463726f77646c6f616e3a3a4576656e743c52756e74696d653e00490000540c306672616d655f73797374656d1870616c6c6574144576656e740404540001184045787472696e7369635375636365737304005801304469737061746368496e666f000004b4416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e205c5b696e666f5c5d3c45787472696e7369634661696c6564080064013444697370617463684572726f7200005801304469737061746368496e666f00010490416e2065787472696e736963206661696c65642e205c5b6572726f722c20696e666f5c5d2c436f64655570646174656400020450603a636f6465602077617320757064617465642e284e65774163636f756e740400000130543a3a4163636f756e7449640003047841206e6577205c5b6163636f756e745c5d2077617320637265617465642e344b696c6c65644163636f756e740400000130543a3a4163636f756e74496400040468416e205c5b6163636f756e745c5d20776173207265617065642e2052656d61726b65640800000130543a3a4163636f756e744964000024011c543a3a48617368000504d04f6e206f6e2d636861696e2072656d61726b2068617070656e65642e205c5b6f726967696e2c2072656d61726b5f686173685c5d04704576656e7420666f72207468652053797374656d2070616c6c65742e580c346672616d655f737570706f72741c77656967687473304469737061746368496e666f00000c0118776569676874200118576569676874000114636c6173735c01344469737061746368436c617373000120706179735f6665656001105061797300005c0c346672616d655f737570706f72741c77656967687473344469737061746368436c61737300010c184e6f726d616c0000002c4f7065726174696f6e616c000100244d616e6461746f727900020000600c346672616d655f737570706f72741c7765696768747310506179730001080c596573000000084e6f0001000064082873705f72756e74696d653444697370617463684572726f72000120144f746865720000003043616e6e6f744c6f6f6b7570000100244261644f726967696e000200184d6f64756c65080114696e64657808010875380001146572726f72080108753800030044436f6e73756d657252656d61696e696e670004002c4e6f50726f76696465727300050014546f6b656e0400680128546f6b656e4572726f720006002841726974686d6574696304006c013c41726974686d657469634572726f720007000068082873705f72756e74696d6528546f6b656e4572726f7200011c1c4e6f46756e647300000020576f756c644469650001003042656c6f774d696e696d756d0002003043616e6e6f7443726561746500030030556e6b6e6f776e41737365740004001846726f7a656e0005002c556e737570706f72746564000600006c082873705f72756e74696d653c41726974686d657469634572726f7200010c24556e646572666c6f77000000204f766572666c6f77000100384469766973696f6e42795a65726f00020000700c4070616c6c65745f7363686564756c65721870616c6c6574144576656e7404045400010c245363686564756c65640800100138543a3a426c6f636b4e756d626572000010010c753332000004905363686564756c656420736f6d65207461736b2e205c5b7768656e2c20696e6465785c5d2043616e63656c65640800100138543a3a426c6f636b4e756d626572000010010c7533320001048c43616e63656c656420736f6d65207461736b2e205c5b7768656e2c20696e6465785c5d28446973706174636865640c0074016c5461736b416464726573733c543a3a426c6f636b4e756d6265723e000078013c4f7074696f6e3c5665633c75383e3e00007c01384469737061746368526573756c74000204a84469737061746368656420736f6d65207461736b2e205c5b7461736b2c2069642c20726573756c745c5d04304576656e747320747970652e74000004081010007804184f7074696f6e04045401280108104e6f6e6500000010536f6d6504002800000100007c0418526573756c740804540180044501640108084f6b040080000000000c4572720400640000010000800000040000840c3870616c6c65745f696e64696365731870616c6c6574144576656e7404045400010c34496e64657841737369676e65640800000130543a3a4163636f756e744964000010013c543a3a4163636f756e74496e646578000004b041206163636f756e7420696e646578207761732061737369676e65642e205c5b696e6465782c2077686f5c5d28496e6465784672656564040010013c543a3a4163636f756e74496e646578000104e441206163636f756e7420696e64657820686173206265656e2066726565642075702028756e61737369676e6564292e205c5b696e6465785c5d2c496e64657846726f7a656e080010013c543a3a4163636f756e74496e6465780000000130543a3a4163636f756e744964000204250141206163636f756e7420696e64657820686173206265656e2066726f7a656e20746f206974732063757272656e74206163636f756e742049442e205c5b696e6465782c2077686f5c5d04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a090909880c3c70616c6c65745f62616c616e6365731870616c6c6574144576656e740804540004490001201c456e646f7765640800000130543a3a4163636f756e7449640000180128543a3a42616c616e63650000042101416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e205c5b6163636f756e742c20667265655f62616c616e63655c5d20447573744c6f73740800000130543a3a4163636f756e7449640000180128543a3a42616c616e63650001083d01416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742ccc726573756c74696e6720696e20616e206f75747269676874206c6f73732e205c5b6163636f756e742c2062616c616e63655c5d205472616e736665720c00000130543a3a4163636f756e7449640000000130543a3a4163636f756e7449640000180128543a3a42616c616e63650002049c5472616e73666572207375636365656465642e205c5b66726f6d2c20746f2c2076616c75655c5d2842616c616e63655365740c00000130543a3a4163636f756e7449640000180128543a3a42616c616e63650000180128543a3a42616c616e6365000304c8412062616c616e6365207761732073657420627920726f6f742e205c5b77686f2c20667265652c2072657365727665645c5d1c4465706f7369740800000130543a3a4163636f756e7449640000180128543a3a42616c616e63650004041d01536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e205c5b77686f2c206465706f7369745c5d2052657365727665640800000130543a3a4163636f756e7449640000180128543a3a42616c616e63650005041d01536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e205c5b77686f2c2076616c75655c5d28556e72657365727665640800000130543a3a4163636f756e7449640000180128543a3a42616c616e63650006042501536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e205c5b77686f2c2076616c75655c5d485265736572766552657061747269617465641000000130543a3a4163636f756e7449640000000130543a3a4163636f756e7449640000180128543a3a42616c616e636500008c011853746174757300070c4d01536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742ed846696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652ea45c5b66726f6d2c20746f2c2062616c616e63652c2064657374696e6174696f6e5f7374617475735c5d04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a0909098c14346672616d655f737570706f72741874726169747318746f6b656e73106d6973633442616c616e636553746174757300010810467265650000002052657365727665640001000090103870616c6c65745f7374616b696e671870616c6c65741870616c6c6574144576656e740404540001301c457261506169640c00100120457261496e646578000018013042616c616e63654f663c543e000018013042616c616e63654f663c543e00000c550154686520657261207061796f757420686173206265656e207365743b207468652066697273742062616c616e6365206973207468652076616c696461746f722d7061796f75743b20746865207365636f6e64206973c07468652072656d61696e6465722066726f6d20746865206d6178696d756d20616d6f756e74206f66207265776172642ea85c5b6572615f696e6465782c2076616c696461746f725f7061796f75742c2072656d61696e6465725c5d2052657761726465640800000130543a3a4163636f756e744964000018013042616c616e63654f663c543e0001040501546865206e6f6d696e61746f7220686173206265656e207265776172646564206279207468697320616d6f756e742e205c5b73746173682c20616d6f756e745c5d1c536c61736865640800000130543a3a4163636f756e744964000018013042616c616e63654f663c543e00020821014f6e652076616c696461746f722028616e6420697473206e6f6d696e61746f72732920686173206265656e20736c61736865642062792074686520676976656e20616d6f756e742e545c5b76616c696461746f722c20616d6f756e745c5d684f6c64536c617368696e675265706f7274446973636172646564040010013053657373696f6e496e6465780003081901416e206f6c6420736c617368696e67207265706f72742066726f6d2061207072696f72206572612077617320646973636172646564206265636175736520697420636f756c648c6e6f742062652070726f6365737365642e205c5b73657373696f6e5f696e6465785c5d385374616b657273456c65637465640004048441206e657720736574206f66207374616b6572732077617320656c65637465642e18426f6e6465640800000130543a3a4163636f756e744964000018013042616c616e63654f663c543e000510d0416e206163636f756e742068617320626f6e646564207468697320616d6f756e742e205c5b73746173682c20616d6f756e745c5d004d014e4f54453a2054686973206576656e74206973206f6e6c7920656d6974746564207768656e2066756e64732061726520626f6e64656420766961206120646973706174636861626c652e204e6f7461626c792c210169742077696c6c206e6f7420626520656d697474656420666f72207374616b696e672072657761726473207768656e20746865792061726520616464656420746f207374616b652e20556e626f6e6465640800000130543a3a4163636f756e744964000018013042616c616e63654f663c543e000604d8416e206163636f756e742068617320756e626f6e646564207468697320616d6f756e742e205c5b73746173682c20616d6f756e745c5d2457697468647261776e0800000130543a3a4163636f756e744964000018013042616c616e63654f663c543e0007085901416e206163636f756e74206861732063616c6c6564206077697468647261775f756e626f6e6465646020616e642072656d6f76656420756e626f6e64696e67206368756e6b7320776f727468206042616c616e636560ac66726f6d2074686520756e6c6f636b696e672071756575652e205c5b73746173682c20616d6f756e745c5d184b69636b65640800000130543a3a4163636f756e7449640000000130543a3a4163636f756e744964000804090141206e6f6d696e61746f7220686173206265656e206b69636b65642066726f6d20612076616c696461746f722e205c5b6e6f6d696e61746f722c2073746173685c5d545374616b696e67456c656374696f6e4661696c6564000904ac54686520656c656374696f6e206661696c65642e204e6f206e65772065726120697320706c616e6e65642e1c4368696c6c65640400000130543a3a4163636f756e744964000a082101416e206163636f756e74206861732073746f707065642070617274696369706174696e672061732065697468657220612076616c696461746f72206f72206e6f6d696e61746f722e245c5b73746173685c5d345061796f7574537461727465640800100120457261496e6465780000000130543a3a4163636f756e744964000b041501546865207374616b657273272072657761726473206172652067657474696e6720706169642e205c5b6572615f696e6465782c2076616c696461746f725f73746173685c5d04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a090909940c3c70616c6c65745f6f6666656e6365731870616c6c6574144576656e740001041c4f6666656e636508009801104b696e6400002801384f706171756554696d65536c6f7400000c5101546865726520697320616e206f6666656e6365207265706f72746564206f662074686520676976656e20606b696e64602068617070656e656420617420746865206073657373696f6e5f696e6465786020616e643501286b696e642d7370656369666963292074696d6520736c6f742e2054686973206576656e74206973206e6f74206465706f736974656420666f72206475706c696361746520736c61736865732e4c5c5b6b696e642c2074696d65736c6f745c5d2e04304576656e747320747970652e980000031000000008009c0c3870616c6c65745f73657373696f6e1870616c6c6574144576656e74000104284e657753657373696f6e040010013053657373696f6e496e64657800000849014e65772073657373696f6e206861732068617070656e65642e204e6f746520746861742074686520617267756d656e7420697320746865205c5b73657373696f6e5f696e6465785c5d2c206e6f74207468659c626c6f636b206e756d626572206173207468652074797065206d6967687420737567676573742e04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a090909a00c3870616c6c65745f6772616e6470611870616c6c6574144576656e7400010c384e6577417574686f7269746965730400a40134417574686f726974794c697374000004d44e657720617574686f726974792073657420686173206265656e206170706c6965642e205c5b617574686f726974795f7365745c5d185061757365640001049843757272656e7420617574686f726974792073657420686173206265656e207061757365642e1c526573756d65640002049c43757272656e7420617574686f726974792073657420686173206265656e20726573756d65642e04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a090909a4000002a800a800000408ac2000ac0c4c73705f66696e616c6974795f6772616e6470610c617070185075626c696300000400b0013c656432353531393a3a5075626c69630000b00c1c73705f636f72651c65643235353139185075626c6963000004000401205b75383b2033325d0000b40c4070616c6c65745f696d5f6f6e6c696e651870616c6c6574144576656e7404045400010c4448656172746265617452656365697665640400b80138543a3a417574686f726974794964000004010141206e657720686561727462656174207761732072656365697665642066726f6d2060417574686f72697479496460205c5b617574686f726974795f69645c5d1c416c6c476f6f64000104d041742074686520656e64206f66207468652073657373696f6e2c206e6f206f6666656e63652077617320636f6d6d69747465642e2c536f6d654f66666c696e650400c0016c5665633c4964656e74696669636174696f6e5475706c653c543e3e000204390141742074686520656e64206f66207468652073657373696f6e2c206174206c65617374206f6e652076616c696461746f722077617320666f756e6420746f206265205c5b6f66666c696e655c5d2e04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a090909b8104070616c6c65745f696d5f6f6e6c696e651c737232353531392c6170705f73723235353139185075626c696300000400bc013c737232353531393a3a5075626c69630000bc0c1c73705f636f72651c73723235353139185075626c6963000004000401205b75383b2033325d0000c0000002c400c40000040800c800c8083870616c6c65745f7374616b696e67204578706f7375726508244163636f756e74496401001c42616c616e63650118000c0114746f74616ccc011c42616c616e636500010c6f776ecc011c42616c616e63650001186f7468657273d001ac5665633c496e646976696475616c4578706f737572653c4163636f756e7449642c2042616c616e63653e3e0000cc0000061800d0000002d400d4083870616c6c65745f7374616b696e6748496e646976696475616c4578706f7375726508244163636f756e74496401001c42616c616e636501180008010c77686f0001244163636f756e74496400011476616c7565cc011c42616c616e63650000d80c4070616c6c65745f64656d6f63726163791870616c6c6574144576656e740404540001442050726f706f736564080010012450726f70496e646578000018013042616c616e63654f663c543e0000042d0141206d6f74696f6e20686173206265656e2070726f706f7365642062792061207075626c6963206163636f756e742e205c5b70726f706f73616c5f696e6465782c206465706f7369745c5d185461626c65640c0010012450726f70496e646578000018013042616c616e63654f663c543e0000dc01445665633c543a3a4163636f756e7449643e000108450141207075626c69632070726f706f73616c20686173206265656e207461626c656420666f72207265666572656e64756d20766f74652e205c5b70726f706f73616c5f696e6465782c206465706f7369742c306465706f7369746f72735c5d3845787465726e616c5461626c656400020494416e2065787465726e616c2070726f706f73616c20686173206265656e207461626c65642e1c53746172746564080010013c5265666572656e64756d496e6465780000e00134566f74655468726573686f6c64000304c041207265666572656e64756d2068617320626567756e2e205c5b7265665f696e6465782c207468726573686f6c645c5d18506173736564040010013c5265666572656e64756d496e646578000404e4412070726f706f73616c20686173206265656e20617070726f766564206279207265666572656e64756d2e205c5b7265665f696e6465785c5d244e6f74506173736564040010013c5265666572656e64756d496e646578000504e4412070726f706f73616c20686173206265656e2072656a6563746564206279207265666572656e64756d2e205c5b7265665f696e6465785c5d2443616e63656c6c6564040010013c5265666572656e64756d496e646578000604b841207265666572656e64756d20686173206265656e2063616e63656c6c65642e205c5b7265665f696e6465785c5d204578656375746564080010013c5265666572656e64756d496e64657800007c01384469737061746368526573756c74000704c8412070726f706f73616c20686173206265656e20656e61637465642e205c5b7265665f696e6465782c20726573756c745c5d2444656c6567617465640800000130543a3a4163636f756e7449640000000130543a3a4163636f756e7449640008041d01416e206163636f756e74206861732064656c65676174656420746865697220766f746520746f20616e6f74686572206163636f756e742e205c5b77686f2c207461726765745c5d2c556e64656c6567617465640400000130543a3a4163636f756e744964000904f4416e205c5b6163636f756e745c5d206861732063616e63656c6c656420612070726576696f75732064656c65676174696f6e206f7065726174696f6e2e185665746f65640c00000130543a3a4163636f756e744964000024011c543a3a486173680000100138543a3a426c6f636b4e756d626572000a040d01416e2065787465726e616c2070726f706f73616c20686173206265656e207665746f65642e205c5b77686f2c2070726f706f73616c5f686173682c20756e74696c5c5d34507265696d6167654e6f7465640c0024011c543a3a486173680000000130543a3a4163636f756e744964000018013042616c616e63654f663c543e000b045d01412070726f706f73616c277320707265696d61676520776173206e6f7465642c20616e6420746865206465706f7369742074616b656e2e205c5b70726f706f73616c5f686173682c2077686f2c206465706f7369745c5d30507265696d616765557365640c0024011c543a3a486173680000000130543a3a4163636f756e744964000018013042616c616e63654f663c543e000c081101412070726f706f73616c20707265696d616765207761732072656d6f76656420616e6420757365642028746865206465706f736974207761732072657475726e6564292e905c5b70726f706f73616c5f686173682c2070726f76696465722c206465706f7369745c5d3c507265696d616765496e76616c6964080024011c543a3a48617368000010013c5265666572656e64756d496e646578000d080901412070726f706f73616c20636f756c64206e6f7420626520657865637574656420626563617573652069747320707265696d6167652077617320696e76616c69642e705c5b70726f706f73616c5f686173682c207265665f696e6465785c5d3c507265696d6167654d697373696e67080024011c543a3a48617368000010013c5265666572656e64756d496e646578000e080901412070726f706f73616c20636f756c64206e6f7420626520657865637574656420626563617573652069747320707265696d61676520776173206d697373696e672e705c5b70726f706f73616c5f686173682c207265665f696e6465785c5d38507265696d616765526561706564100024011c543a3a486173680000000130543a3a4163636f756e744964000018013042616c616e63654f663c543e0000000130543a3a4163636f756e744964000f08290141207265676973746572656420707265696d616765207761732072656d6f76656420616e6420746865206465706f73697420636f6c6c656374656420627920746865207265617065722eb05c5b70726f706f73616c5f686173682c2070726f76696465722c206465706f7369742c207265617065725c5d2c426c61636b6c6973746564040024011c543a3a48617368001004d4412070726f706f73616c205c5b686173685c5d20686173206265656e20626c61636b6c6973746564207065726d616e656e746c792e04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a090909dc0000020000e00c4070616c6c65745f64656d6f637261637938766f74655f7468726573686f6c6434566f74655468726573686f6c6400010c5053757065724d616a6f72697479417070726f76650000005053757065724d616a6f72697479416761696e73740001003853696d706c654d616a6f7269747900020000e40c4470616c6c65745f636f6c6c6563746976651870616c6c6574144576656e7408045400044900011c2050726f706f7365641000000130543a3a4163636f756e744964000010013450726f706f73616c496e646578000024011c543a3a48617368000010012c4d656d626572436f756e7400000c490141206d6f74696f6e2028676976656e20686173682920686173206265656e2070726f706f7365642028627920676976656e206163636f756e742920776974682061207468726573686f6c642028676976656e3c604d656d626572436f756e7460292ed45c5b6163636f756e742c2070726f706f73616c5f696e6465782c2070726f706f73616c5f686173682c207468726573686f6c645c5d14566f7465641400000130543a3a4163636f756e744964000024011c543a3a486173680000e80110626f6f6c000010012c4d656d626572436f756e74000010012c4d656d626572436f756e7400010c050141206d6f74696f6e2028676976656e20686173682920686173206265656e20766f746564206f6e20627920676976656e206163636f756e742c206c656176696e671501612074616c6c79202879657320766f74657320616e64206e6f20766f74657320676976656e20726573706563746976656c7920617320604d656d626572436f756e7460292ea85c5b6163636f756e742c2070726f706f73616c5f686173682c20766f7465642c207965732c206e6f5c5d20417070726f766564040024011c543a3a48617368000208c041206d6f74696f6e2077617320617070726f76656420627920746865207265717569726564207468726573686f6c642e445c5b70726f706f73616c5f686173685c5d2c446973617070726f766564040024011c543a3a48617368000308d041206d6f74696f6e20776173206e6f7420617070726f76656420627920746865207265717569726564207468726573686f6c642e445c5b70726f706f73616c5f686173685c5d204578656375746564080024011c543a3a4861736800007c01384469737061746368526573756c74000408210141206d6f74696f6e207761732065786563757465643b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e645c5b70726f706f73616c5f686173682c20726573756c745c5d384d656d6265724578656375746564080024011c543a3a4861736800007c01384469737061746368526573756c740005084901412073696e676c65206d656d6265722064696420736f6d6520616374696f6e3b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e645c5b70726f706f73616c5f686173682c20726573756c745c5d18436c6f7365640c0024011c543a3a48617368000010012c4d656d626572436f756e74000010012c4d656d626572436f756e740006085501412070726f706f73616c2077617320636c6f736564206265636175736520697473207468726573686f6c64207761732072656163686564206f7220616674657220697473206475726174696f6e207761732075702e685c5b70726f706f73616c5f686173682c207965732c206e6f5c5d04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a090909e80000050000ec0c4470616c6c65745f636f6c6c6563746976651870616c6c6574144576656e7408045400044900011c2050726f706f7365641000000130543a3a4163636f756e744964000010013450726f706f73616c496e646578000024011c543a3a48617368000010012c4d656d626572436f756e7400000c490141206d6f74696f6e2028676976656e20686173682920686173206265656e2070726f706f7365642028627920676976656e206163636f756e742920776974682061207468726573686f6c642028676976656e3c604d656d626572436f756e7460292ed45c5b6163636f756e742c2070726f706f73616c5f696e6465782c2070726f706f73616c5f686173682c207468726573686f6c645c5d14566f7465641400000130543a3a4163636f756e744964000024011c543a3a486173680000e80110626f6f6c000010012c4d656d626572436f756e74000010012c4d656d626572436f756e7400010c050141206d6f74696f6e2028676976656e20686173682920686173206265656e20766f746564206f6e20627920676976656e206163636f756e742c206c656176696e671501612074616c6c79202879657320766f74657320616e64206e6f20766f74657320676976656e20726573706563746976656c7920617320604d656d626572436f756e7460292ea85c5b6163636f756e742c2070726f706f73616c5f686173682c20766f7465642c207965732c206e6f5c5d20417070726f766564040024011c543a3a48617368000208c041206d6f74696f6e2077617320617070726f76656420627920746865207265717569726564207468726573686f6c642e445c5b70726f706f73616c5f686173685c5d2c446973617070726f766564040024011c543a3a48617368000308d041206d6f74696f6e20776173206e6f7420617070726f76656420627920746865207265717569726564207468726573686f6c642e445c5b70726f706f73616c5f686173685c5d204578656375746564080024011c543a3a4861736800007c01384469737061746368526573756c74000408210141206d6f74696f6e207761732065786563757465643b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e645c5b70726f706f73616c5f686173682c20726573756c745c5d384d656d6265724578656375746564080024011c543a3a4861736800007c01384469737061746368526573756c740005084901412073696e676c65206d656d6265722064696420736f6d6520616374696f6e3b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e645c5b70726f706f73616c5f686173682c20726573756c745c5d18436c6f7365640c0024011c543a3a48617368000010012c4d656d626572436f756e74000010012c4d656d626572436f756e740006085501412070726f706f73616c2077617320636c6f736564206265636175736520697473207468726573686f6c64207761732072656163686564206f7220616674657220697473206475726174696f6e207761732075702e685c5b70726f706f73616c5f686173682c207965732c206e6f5c5d04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a090909f00c6470616c6c65745f656c656374696f6e735f70687261676d656e1870616c6c6574144576656e7404045400011c1c4e65775465726d0400f401ec5665633c283c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e7449642c2042616c616e63654f663c543e293e000014550141206e6577207465726d2077697468205c5b6e65775f6d656d626572735c5d2e205468697320696e64696361746573207468617420656e6f7567682063616e64696461746573206578697374656420746f2072756e550174686520656c656374696f6e2c206e6f74207468617420656e6f756768206861766520686173206265656e20656c65637465642e2054686520696e6e65722076616c7565206d757374206265206578616d696e65644501666f72207468697320707572706f73652e204120604e65775465726d285c5b5c5d296020696e64696361746573207468617420736f6d652063616e6469646174657320676f7420746865697220626f6e645501736c617368656420616e64206e6f6e65207765726520656c65637465642c207768696c73742060456d7074795465726d60206d65616e732074686174206e6f2063616e64696461746573206578697374656420746f2c626567696e20776974682e24456d7074795465726d00010831014e6f20286f72206e6f7420656e6f756768292063616e64696461746573206578697374656420666f72207468697320726f756e642e205468697320697320646966666572656e742066726f6dc8604e65775465726d285c5b5c5d29602e2053656520746865206465736372697074696f6e206f6620604e65775465726d602e34456c656374696f6e4572726f72000204e4496e7465726e616c206572726f722068617070656e6564207768696c6520747279696e6720746f20706572666f726d20656c656374696f6e2e304d656d6265724b69636b656404000001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e744964000308510141205c5b6d656d6265725c5d20686173206265656e2072656d6f7665642e20546869732073686f756c6420616c7761797320626520666f6c6c6f7765642062792065697468657220604e65775465726d60206f723060456d7074795465726d602e2452656e6f756e63656404000001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e74496400040498536f6d656f6e65206861732072656e6f756e6365642074686569722063616e6469646163792e4043616e646964617465536c617368656408000001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e744964000018013042616c616e63654f663c543e000510590141205c5b63616e6469646174655c5d2077617320736c6173686564206279205c5b616d6f756e745c5d2064756520746f206661696c696e6720746f206f627461696e20612073656174206173206d656d626572206f722872756e6e65722d75702e00e44e6f74652074686174206f6c64206d656d6265727320616e642072756e6e6572732d75702061726520616c736f2063616e646964617465732e4453656174486f6c646572536c617368656408000001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e744964000018013042616c616e63654f663c543e000604550141205c5b7365617420686f6c6465725c5d2077617320736c6173686564206279205c5b616d6f756e745c5d206279206265696e6720666f72636566756c6c792072656d6f7665642066726f6d20746865207365742e04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a090909f4000002f800f800000408001800fc0c4470616c6c65745f6d656d626572736869701870616c6c6574144576656e740804540004490001182c4d656d6265724164646564000004e054686520676976656e206d656d626572207761732061646465643b2073656520746865207472616e73616374696f6e20666f722077686f2e344d656d62657252656d6f766564000104e854686520676976656e206d656d626572207761732072656d6f7665643b2073656520746865207472616e73616374696f6e20666f722077686f2e384d656d6265727353776170706564000204d854776f206d656d62657273207765726520737761707065643b2073656520746865207472616e73616374696f6e20666f722077686f2e304d656d6265727352657365740003041501546865206d656d62657273686970207761732072657365743b2073656520746865207472616e73616374696f6e20666f722077686f20746865206e6577207365742069732e284b65794368616e676564000404844f6e65206f6620746865206d656d6265727327206b657973206368616e6765642e1444756d6d790005046c5068616e746f6d206d656d6265722c206e6576657220757365642e04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a09090901010c3c70616c6c65745f74726561737572791870616c6c6574144576656e7408045400044900011c2050726f706f736564040010013450726f706f73616c496e646578000004804e65772070726f706f73616c2e205c5b70726f706f73616c5f696e6465785c5d205370656e64696e67040018013c42616c616e63654f663c542c20493e00010439015765206861766520656e6465642061207370656e6420706572696f6420616e642077696c6c206e6f7720616c6c6f636174652066756e64732e205c5b6275646765745f72656d61696e696e675c5d1c417761726465640c0010013450726f706f73616c496e646578000018013c42616c616e63654f663c542c20493e0000000130543a3a4163636f756e7449640002041901536f6d652066756e64732068617665206265656e20616c6c6f63617465642e205c5b70726f706f73616c5f696e6465782c2061776172642c2062656e65666963696172795c5d2052656a6563746564080010013450726f706f73616c496e646578000018013c42616c616e63654f663c542c20493e0003042101412070726f706f73616c207761732072656a65637465643b2066756e6473207765726520736c61736865642e205c5b70726f706f73616c5f696e6465782c20736c61736865645c5d144275726e74040018013c42616c616e63654f663c542c20493e000404ac536f6d65206f66206f75722066756e64732068617665206265656e206275726e742e205c5b6275726e5c5d20526f6c6c6f766572040018013c42616c616e63654f663c542c20493e0005082d015370656e64696e67206861732066696e69736865643b20746869732069732074686520616d6f756e74207468617420726f6c6c73206f76657220756e74696c206e657874207370656e642e505c5b6275646765745f72656d61696e696e675c5d1c4465706f736974040018013c42616c616e63654f663c542c20493e000604ac536f6d652066756e64732068617665206265656e206465706f73697465642e205c5b6465706f7369745c5d04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a0909090501105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e18636c61696d731870616c6c6574144576656e740404540001041c436c61696d65640c00000130543a3a4163636f756e74496400000901013c457468657265756d41646472657373000018013042616c616e63654f663c543e000004f0536f6d656f6e6520636c61696d656420736f6d6520444f54732e20605b77686f2c20657468657265756d5f616464726573732c20616d6f756e745d6004a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a09090909010c5c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e18636c61696d733c457468657265756d41646472657373000004000d0101205b75383b2032305d00000d0100000314000000080011010c3870616c6c65745f76657374696e671870616c6c6574144576656e740404540001083856657374696e67557064617465640800000130543a3a4163636f756e744964000018013042616c616e63654f663c543e00000c510154686520616d6f756e742076657374656420686173206265656e20757064617465642e205468697320636f756c6420696e6469636174652061206368616e676520696e2066756e647320617661696c61626c652e25015468652062616c616e636520676976656e2069732074686520616d6f756e74207768696368206973206c65667420756e7665737465642028616e642074687573206c6f636b6564292e545c5b6163636f756e742c20756e7665737465645c5d4056657374696e67436f6d706c657465640400000130543a3a4163636f756e7449640001049c416e205c5b6163636f756e745c5d20686173206265636f6d652066756c6c79207665737465642e04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a09090915010c3870616c6c65745f7574696c6974791870616c6c6574144576656e7400010c404261746368496e746572727570746564080010010c753332000064013444697370617463684572726f7200000855014261746368206f66206469737061746368657320646964206e6f7420636f6d706c6574652066756c6c792e20496e646578206f66206669727374206661696c696e6720646973706174636820676976656e2c2061738c77656c6c20617320746865206572726f722e205c5b696e6465782c206572726f725c5d384261746368436f6d706c65746564000104c84261746368206f66206469737061746368657320636f6d706c657465642066756c6c792077697468206e6f206572726f722e344974656d436f6d706c657465640002041d01412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206e6f206572726f722e04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a09090919010c3c70616c6c65745f6964656e746974791870616c6c6574144576656e740404540001282c4964656e746974795365740400000130543a3a4163636f756e7449640000040d0141206e616d652077617320736574206f72207265736574202877686963682077696c6c2072656d6f766520616c6c206a756467656d656e7473292e205c5b77686f5c5d3c4964656e74697479436c65617265640800000130543a3a4163636f756e744964000018013042616c616e63654f663c543e000104110141206e616d652077617320636c65617265642c20616e642074686520676976656e2062616c616e63652072657475726e65642e205c5b77686f2c206465706f7369745c5d384964656e746974794b696c6c65640800000130543a3a4163636f756e744964000018013042616c616e63654f663c543e000204090141206e616d65207761732072656d6f76656420616e642074686520676976656e2062616c616e636520736c61736865642e205c5b77686f2c206465706f7369745c5d484a756467656d656e745265717565737465640800000130543a3a4163636f756e7449640000100138526567697374726172496e646578000304010141206a756467656d656e74207761732061736b65642066726f6d2061207265676973747261722e205c5b77686f2c207265676973747261725f696e6465785c5d504a756467656d656e74556e7265717565737465640800000130543a3a4163636f756e7449640000100138526567697374726172496e646578000404ec41206a756467656d656e74207265717565737420776173207265747261637465642e205c5b77686f2c207265676973747261725f696e6465785c5d384a756467656d656e74476976656e0800000130543a3a4163636f756e7449640000100138526567697374726172496e646578000504050141206a756467656d656e742077617320676976656e2062792061207265676973747261722e205c5b7461726765742c207265676973747261725f696e6465785c5d3852656769737472617241646465640400100138526567697374726172496e646578000604a84120726567697374726172207761732061646465642e205c5b7265676973747261725f696e6465785c5d405375624964656e7469747941646465640c00000130543a3a4163636f756e7449640000000130543a3a4163636f756e744964000018013042616c616e63654f663c543e000704510141207375622d6964656e746974792077617320616464656420746f20616e206964656e7469747920616e6420746865206465706f73697420706169642e205c5b7375622c206d61696e2c206465706f7369745c5d485375624964656e7469747952656d6f7665640c00000130543a3a4163636f756e7449640000000130543a3a4163636f756e744964000018013042616c616e63654f663c543e000808090141207375622d6964656e74697479207761732072656d6f7665642066726f6d20616e206964656e7469747920616e6420746865206465706f7369742066726565642e585c5b7375622c206d61696e2c206465706f7369745c5d485375624964656e746974795265766f6b65640c00000130543a3a4163636f756e7449640000000130543a3a4163636f756e744964000018013042616c616e63654f663c543e000908190141207375622d6964656e746974792077617320636c65617265642c20616e642074686520676976656e206465706f7369742072657061747269617465642066726f6d2074686525016d61696e206964656e74697479206163636f756e7420746f20746865207375622d6964656e74697479206163636f756e742e205c5b7375622c206d61696e2c206465706f7369745c5d04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a0909091d010c3070616c6c65745f70726f78791870616c6c6574144576656e740404540001103450726f7879457865637574656404007c01384469737061746368526573756c74000004e8412070726f78792077617320657865637574656420636f72726563746c792c20776974682074686520676976656e205c5b726573756c745c5d2e40416e6f6e796d6f7573437265617465641000000130543a3a4163636f756e7449640000000130543a3a4163636f756e744964000021010130543a3a50726f78795479706500002501010c75313600010ce8416e6f6e796d6f7573206163636f756e7420686173206265656e2063726561746564206279206e65772070726f7879207769746820676976656e0901646973616d626967756174696f6e20696e64657820616e642070726f787920747970652e205c5b616e6f6e796d6f75732c2077686f2c2070726f78795f747970652c58646973616d626967756174696f6e5f696e6465785c5d24416e6e6f756e6365640c00000130543a3a4163636f756e7449640000000130543a3a4163636f756e744964000024013443616c6c486173684f663c543e0002044d01416e20616e6e6f756e63656d656e742077617320706c6163656420746f206d616b6520612063616c6c20696e20746865206675747572652e205c5b7265616c2c2070726f78792c2063616c6c5f686173685c5d2850726f787941646465641000000130543a3a4163636f756e7449640000000130543a3a4163636f756e744964000021010130543a3a50726f7879547970650000100138543a3a426c6f636b4e756d626572000304f8412070726f7879207761732061646465642e205c5b64656c656761746f722c2064656c6567617465652c2070726f78795f747970652c2064656c61795c5d04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a09090921010840706f6c6b61646f745f72756e74696d652450726f78795479706500011c0c416e790000002c4e6f6e5472616e7366657200010028476f7665726e616e63650002001c5374616b696e67000300444964656e746974794a756467656d656e740005002c43616e63656c50726f78790006001c41756374696f6e000700002501000005040029010c3c70616c6c65745f6d756c74697369671870616c6c6574144576656e740404540001102c4e65774d756c74697369670c00000130543a3a4163636f756e7449640000000130543a3a4163636f756e744964000004012043616c6c48617368000004190141206e6577206d756c7469736967206f7065726174696f6e2068617320626567756e2e205c5b617070726f76696e672c206d756c74697369672c2063616c6c5f686173685c5d404d756c7469736967417070726f76616c1000000130543a3a4163636f756e74496400002d01016454696d65706f696e743c543a3a426c6f636b4e756d6265723e0000000130543a3a4163636f756e744964000004012043616c6c48617368000108c841206d756c7469736967206f7065726174696f6e20686173206265656e20617070726f76656420627920736f6d656f6e652eb45c5b617070726f76696e672c2074696d65706f696e742c206d756c74697369672c2063616c6c5f686173685c5d404d756c746973696745786563757465641400000130543a3a4163636f756e74496400002d01016454696d65706f696e743c543a3a426c6f636b4e756d6265723e0000000130543a3a4163636f756e744964000004012043616c6c4861736800007c01384469737061746368526573756c74000204550141206d756c7469736967206f7065726174696f6e20686173206265656e2065786563757465642e205c5b617070726f76696e672c2074696d65706f696e742c206d756c74697369672c2063616c6c5f686173685c5d444d756c746973696743616e63656c6c65641000000130543a3a4163636f756e74496400002d01016454696d65706f696e743c543a3a426c6f636b4e756d6265723e0000000130543a3a4163636f756e744964000004012043616c6c486173680003045d0141206d756c7469736967206f7065726174696f6e20686173206265656e2063616e63656c6c65642e205c5b63616e63656c6c696e672c2074696d65706f696e742c206d756c74697369672c2063616c6c5f686173685c5d04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a0909092d01083c70616c6c65745f6d756c74697369672454696d65706f696e74042c426c6f636b4e756d62657201100008011868656967687410012c426c6f636b4e756d626572000114696e64657810010c753332000031010c3c70616c6c65745f626f756e746965731870616c6c6574144576656e7404045400011c38426f756e747950726f706f736564040010012c426f756e7479496e646578000004784e657720626f756e74792070726f706f73616c2e205c5b696e6465785c5d38426f756e747952656a6563746564080010012c426f756e7479496e646578000018013042616c616e63654f663c543e0001040d014120626f756e74792070726f706f73616c207761732072656a65637465643b2066756e6473207765726520736c61736865642e205c5b696e6465782c20626f6e645c5d48426f756e7479426563616d65416374697665040010012c426f756e7479496e646578000204e04120626f756e74792070726f706f73616c2069732066756e64656420616e6420626563616d65206163746976652e205c5b696e6465785c5d34426f756e747941776172646564080010012c426f756e7479496e6465780000000130543a3a4163636f756e744964000304f04120626f756e7479206973206177617264656420746f20612062656e65666963696172792e205c5b696e6465782c2062656e65666963696172795c5d34426f756e7479436c61696d65640c0010012c426f756e7479496e646578000018013042616c616e63654f663c543e0000000130543a3a4163636f756e74496400040409014120626f756e747920697320636c61696d65642062792062656e65666963696172792e205c5b696e6465782c207061796f75742c2062656e65666963696172795c5d38426f756e747943616e63656c6564040010012c426f756e7479496e646578000504804120626f756e74792069732063616e63656c6c65642e205c5b696e6465785c5d38426f756e7479457874656e646564040010012c426f756e7479496e646578000604984120626f756e74792065787069727920697320657874656e6465642e205c5b696e6465785c5d04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a09090935010c2c70616c6c65745f746970731870616c6c6574144576656e74040454000114184e6577546970040024011c543a3a48617368000004c841206e6577207469702073756767657374696f6e20686173206265656e206f70656e65642e205c5b7469705f686173685c5d28546970436c6f73696e67040024011c543a3a486173680001040d0141207469702073756767657374696f6e206861732072656163686564207468726573686f6c6420616e6420697320636c6f73696e672e205c5b7469705f686173685c5d24546970436c6f7365640c0024011c543a3a486173680000000130543a3a4163636f756e744964000018013042616c616e63654f663c543e000204ec41207469702073756767657374696f6e20686173206265656e20636c6f7365642e205c5b7469705f686173682c2077686f2c207061796f75745c5d30546970526574726163746564040024011c543a3a48617368000304c441207469702073756767657374696f6e20686173206265656e207265747261637465642e205c5b7469705f686173685c5d28546970536c61736865640c0024011c543a3a486173680000000130543a3a4163636f756e744964000018013042616c616e63654f663c543e000404010141207469702073756767657374696f6e20686173206265656e20736c61736865642e205c5b7469705f686173682c2066696e6465722c206465706f7369745c5d04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a09090939010c9070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173651870616c6c6574144576656e7404045400011838536f6c7574696f6e53746f72656408003d01013c456c656374696f6e436f6d707574650000e80110626f6f6c000018b44120736f6c7574696f6e207761732073746f72656420776974682074686520676976656e20636f6d707574652e003d0149662074686520736f6c7574696f6e206973207369676e65642c2074686973206d65616e732074686174206974206861736e277420796574206265656e2070726f6365737365642e204966207468650501736f6c7574696f6e20697320756e7369676e65642c2074686973206d65616e7320746861742069742068617320616c736f206265656e2070726f6365737365642e0051015468652060626f6f6c6020697320607472756560207768656e20612070726576696f757320736f6c7574696f6e2077617320656a656374656420746f206d616b6520726f6f6d20666f722074686973206f6e652e44456c656374696f6e46696e616c697a656404004101015c4f7074696f6e3c456c656374696f6e436f6d707574653e000108550154686520656c656374696f6e20686173206265656e2066696e616c697a65642c20776974682060536f6d6560206f662074686520676976656e20636f6d7075746174696f6e2c206f7220656c73652069662074686560656c656374696f6e206661696c65642c20604e6f6e65602e20526577617264656408000001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e744964000018013042616c616e63654f663c543e0002042501416e206163636f756e7420686173206265656e20726577617264656420666f72207468656972207369676e6564207375626d697373696f6e206265696e672066696e616c697a65642e1c536c617368656408000001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e744964000018013042616c616e63654f663c543e0003042101416e206163636f756e7420686173206265656e20736c617368656420666f72207375626d697474696e6720616e20696e76616c6964207369676e6564207375626d697373696f6e2e485369676e6564506861736553746172746564040010010c753332000404c0546865207369676e6564207068617365206f662074686520676976656e20726f756e642068617320737461727465642e50556e7369676e6564506861736553746172746564040010010c753332000504c854686520756e7369676e6564207068617365206f662074686520676976656e20726f756e642068617320737461727465642e04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a0909093d01089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173653c456c656374696f6e436f6d707574650001141c4f6e436861696e000000185369676e656400010020556e7369676e65640002002046616c6c6261636b00030024456d657267656e637900040000410104184f7074696f6e040454013d010108104e6f6e6500000010536f6d6504003d0100000100004501106c706f6c6b61646f745f72756e74696d655f70617261636861696e7324696e636c7573696f6e1870616c6c6574144576656e7404045400010c3c43616e6469646174654261636b656410004901016443616e646964617465526563656970743c543a3a486173683e000069010120486561644461746100006d010124436f7265496e64657800007101012847726f7570496e646578000004c0412063616e64696461746520776173206261636b65642e20605b63616e6469646174652c20686561645f646174615d604443616e646964617465496e636c7564656410004901016443616e646964617465526563656970743c543a3a486173683e000069010120486561644461746100006d010124436f7265496e64657800007101012847726f7570496e646578000104c8412063616e6469646174652077617320696e636c756465642e20605b63616e6469646174652c20686561645f646174615d604443616e64696461746554696d65644f75740c004901016443616e646964617465526563656970743c543a3a486173683e000069010120486561644461746100006d010124436f7265496e646578000204bc412063616e6469646174652074696d6564206f75742e20605b63616e6469646174652c20686561645f646174615d6004a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a09090949010c4c706f6c6b61646f745f7072696d6974697665730876314043616e6469646174655265636569707404044801240008012864657363726970746f724d01015843616e64696461746544657363726970746f723c483e000140636f6d6d69746d656e74735f686173682401104861736800004d010c4c706f6c6b61646f745f7072696d6974697665730876314c43616e64696461746544657363726970746f7204044801240024011c706172615f696451010108496400013072656c61795f706172656e7424010448000120636f6c6c61746f7255010128436f6c6c61746f7249640001787065727369737465645f76616c69646174696f6e5f646174615f6861736824011048617368000120706f765f6861736824011048617368000130657261737572655f726f6f74240110486173680001247369676e617475726559010144436f6c6c61746f725369676e6174757265000124706172615f686561642401104861736800015076616c69646174696f6e5f636f64655f686173686501014856616c69646174696f6e436f646548617368000051010c48706f6c6b61646f745f70617261636861696e287072696d6974697665730849640000040010010c75333200005501104c706f6c6b61646f745f7072696d69746976657308763030636f6c6c61746f725f617070185075626c696300000400bc013c737232353531393a3a5075626c696300005901104c706f6c6b61646f745f7072696d69746976657308763030636f6c6c61746f725f617070245369676e6174757265000004005d010148737232353531393a3a5369676e617475726500005d010c1c73705f636f72651c73723235353139245369676e617475726500000400610101205b75383b2036345d0000610100000340000000080065010c48706f6c6b61646f745f70617261636861696e287072696d6974697665734856616c69646174696f6e436f6465486173680000040024011048617368000069010c48706f6c6b61646f745f70617261636861696e287072696d6974697665732048656164446174610000040028011c5665633c75383e00006d010c4c706f6c6b61646f745f7072696d69746976657308763124436f7265496e6465780000040010010c753332000071010c4c706f6c6b61646f745f7072696d6974697665730876312847726f7570496e6465780000040010010c75333200007501106c706f6c6b61646f745f72756e74696d655f70617261636861696e731470617261731870616c6c6574144576656e740001144843757272656e74436f646555706461746564040051010118506172614964000004cc43757272656e7420636f646520686173206265656e207570646174656420666f72206120506172612e2060706172615f6964604843757272656e744865616455706461746564040051010118506172614964000104cc43757272656e74206865616420686173206265656e207570646174656420666f72206120506172612e2060706172615f69646050436f6465557067726164655363686564756c6564040051010118506172614964000204dc4120636f6465207570677261646520686173206265656e207363686564756c656420666f72206120506172612e2060706172615f696460304e6577486561644e6f746564040051010118506172614964000304bc41206e6577206865616420686173206265656e206e6f74656420666f72206120506172612e2060706172615f69646030416374696f6e517565756564080051010118506172614964000010013053657373696f6e496e646578000404f041207061726120686173206265656e2071756575656420746f20657865637574652070656e64696e6720616374696f6e732e2060706172615f69646004a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a0909097901106c706f6c6b61646f745f72756e74696d655f70617261636861696e730c756d701870616c6c6574144576656e7400011c34496e76616c6964466f726d617404000401244d657373616765496400000878557077617264206d65737361676520697320696e76616c69642058434d2e205c5b206964205c5d48556e737570706f7274656456657273696f6e04000401244d6573736167654964000108b4557077617264206d65737361676520697320756e737570706f727465642076657273696f6e206f662058434d2e205c5b206964205c5d38457865637574656455707761726408000401244d657373616765496400007d01011c4f7574636f6d65000208bc557077617264206d65737361676520657865637574656420776974682074686520676976656e206f7574636f6d652e445c5b2069642c206f7574636f6d65205c5d3c5765696768744578686175737465640c000401244d657373616765496400002001185765696768740000200118576569676874000308f054686520776569676874206c696d697420666f722068616e646c696e6720646f776e77617264206d657373616765732077617320726561636865642e745c5b2069642c2072656d61696e696e672c207265717569726564205c5d585570776172644d6573736167657352656365697665640c0051010118506172614964000010010c753332000010010c7533320004080101536f6d6520646f776e77617264206d657373616765732068617665206265656e20726563656976656420616e642077696c6c2062652070726f6365737365642e5c5c5b20706172612c20636f756e742c2073697a65205c5d484f766572776569676874456e71756575656410005101011850617261496400000401244d6573736167654964000020013c4f766572776569676874496e6465780000200118576569676874000518090154686520776569676874206275646765742077617320657863656564656420666f7220616e20696e646976696475616c20646f776e77617264206d6573736167652e00550154686973206d6573736167652063616e206265206c617465722064697370617463686564206d616e75616c6c79207573696e672060736572766963655f6f7665727765696768746020646973706174636861626c65987573696e67207468652061737369676e656420606f7665727765696768745f696e646578602e00a85c5b20706172612c2069642c206f7665727765696768745f696e6465782c207265717569726564205c5d484f7665727765696768745365727669636564080020013c4f766572776569676874496e64657800002001185765696768740006105101446f776e77617264206d6573736167652066726f6d20746865206f7665727765696768742071756575652077617320657865637574656420776974682074686520676976656e2061637475616c2077656967687414757365642e00705c5b206f7665727765696768745f696e6465782c2075736564205c5d04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a0909097d01100c78636d087632187472616974731c4f7574636f6d6500010c20436f6d706c657465040020011857656967687400000028496e636f6d706c65746508002001185765696768740000810101144572726f72000100144572726f720400810101144572726f72000200008101100c78636d08763218747261697473144572726f72000168204f766572666c6f7700000034556e696d706c656d656e74656400010060556e74727573746564526573657276654c6f636174696f6e00020064556e7472757374656454656c65706f72744c6f636174696f6e000300444d756c74694c6f636174696f6e46756c6c000400684d756c74694c6f636174696f6e4e6f74496e7665727469626c65000500244261644f726967696e0006003c496e76616c69644c6f636174696f6e0007003441737365744e6f74466f756e64000800544661696c6564546f5472616e7361637441737365740009003c4e6f74576974686472617761626c65000a00484c6f636174696f6e43616e6e6f74486f6c64000b0054457863656564734d61784d65737361676553697a65000c005844657374696e6174696f6e556e737570706f72746564000d00245472616e73706f7274000e0028556e726f757461626c65000f0030556e6b6e6f776e436c61696d001000384661696c6564546f4465636f646500110054546f6f4d7563685765696768745265717569726564001200384e6f74486f6c64696e674665657300130030546f6f457870656e736976650014001054726170040020010c7536340015004c556e68616e646c656458636d56657273696f6e001600485765696768744c696d69745265616368656404002001185765696768740017001c426172726965720018004c5765696768744e6f74436f6d70757461626c65001900008501106c706f6c6b61646f745f72756e74696d655f70617261636861696e731068726d701870616c6c6574144576656e74040454000110504f70656e4368616e6e656c526571756573746564100051010118506172614964000051010118506172614964000010010c753332000010010c753332000008704f70656e2048524d50206368616e6e656c207265717565737465642e1d01605b73656e6465722c20726563697069656e742c2070726f706f7365645f6d61785f63617061636974792c2070726f706f7365645f6d61785f6d6573736167655f73697a655d604c4f70656e4368616e6e656c43616e63656c656408005101011850617261496400008901013448726d704368616e6e656c49640001082901416e2048524d50206368616e6e656c20726571756573742073656e7420627920746865207265636569766572207761732063616e63656c6564206279206569746865722070617274792e70605b62795f70617261636861696e2c206368616e6e656c5f69645d604c4f70656e4368616e6e656c4163636570746564080051010118506172614964000051010118506172614964000204c44f70656e2048524d50206368616e6e656c2061636365707465642e20605b73656e6465722c20726563697069656e745d60344368616e6e656c436c6f73656408005101011850617261496400008901013448726d704368616e6e656c4964000304c448524d50206368616e6e656c20636c6f7365642e20605b62795f70617261636861696e2c206368616e6e656c5f69645d6004a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a09090989010c48706f6c6b61646f745f70617261636861696e287072696d6974697665733448726d704368616e6e656c4964000008011873656e646572510101084964000124726563697069656e7451010108496400008d01105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e3c70617261735f7265676973747261721870616c6c6574144576656e7404045400010c28526567697374657265640800510101185061726149640000000130543a3a4163636f756e744964000000304465726567697374657265640400510101185061726149640001002052657365727665640800510101185061726149640000000130543a3a4163636f756e74496400020004a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a0909099101105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e14736c6f74731870616c6c6574144576656e74040454000108384e65774c65617365506572696f6404001001404c65617365506572696f644f663c543e0000049041206e657720605b6c656173655f706572696f645d6020697320626567696e6e696e672e184c65617365641800510101185061726149640000000130543a3a4163636f756e74496400001001404c65617365506572696f644f663c543e00001001404c65617365506572696f644f663c543e000018013042616c616e63654f663c543e000018013042616c616e63654f663c543e00011035014120706172612068617320776f6e2074686520726967687420746f206120636f6e74696e756f757320736574206f66206c6561736520706572696f647320617320612070617261636861696e2e450146697273742062616c616e636520697320616e7920657874726120616d6f756e74207265736572766564206f6e20746f70206f662074686520706172612773206578697374696e67206465706f7369742eb05365636f6e642062616c616e63652069732074686520746f74616c20616d6f756e742072657365727665642e4901605b70617261636861696e5f69642c206c65617365722c20706572696f645f626567696e2c20706572696f645f636f756e742c2065787472615f72657365727665642c20746f74616c5f616d6f756e745d6004a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a0909099501105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e2061756374696f6e731870616c6c6574144576656e7404045400011c3841756374696f6e537461727465640c0010013041756374696f6e496e64657800001001404c65617365506572696f644f663c543e0000100138543a3a426c6f636b4e756d62657200000c4901416e2061756374696f6e20737461727465642e2050726f76696465732069747320696e64657820616e642074686520626c6f636b206e756d6265722077686572652069742077696c6c20626567696e20746f1501636c6f736520616e6420746865206669727374206c6561736520706572696f64206f662074686520717561647275706c657420746861742069732061756374696f6e65642e9c605b61756374696f6e5f696e6465782c206c656173655f706572696f642c20656e64696e675d603441756374696f6e436c6f736564040010013041756374696f6e496e6465780001040101416e2061756374696f6e20656e6465642e20416c6c2066756e6473206265636f6d6520756e72657365727665642e20605b61756374696f6e5f696e6465785d602052657365727665640c00000130543a3a4163636f756e744964000018013042616c616e63654f663c543e000018013042616c616e63654f663c543e000208490146756e6473207765726520726573657276656420666f7220612077696e6e696e67206269642e2046697273742062616c616e63652069732074686520657874726120616d6f756e742072657365727665642ef45365636f6e642069732074686520746f74616c2e20605b6269646465722c2065787472615f72657365727665642c20746f74616c5f616d6f756e745d6028556e72657365727665640800000130543a3a4163636f756e744964000018013042616c616e63654f663c543e000304290146756e6473207765726520756e72657365727665642073696e636520626964646572206973206e6f206c6f6e676572206163746976652e20605b6269646465722c20616d6f756e745d604852657365727665436f6e66697363617465640c00510101185061726149640000000130543a3a4163636f756e744964000018013042616c616e63654f663c543e00040c7501536f6d656f6e6520617474656d7074656420746f206c65617365207468652073616d6520736c6f7420747769636520666f7220612070617261636861696e2e2054686520616d6f756e742069732068656c6420696e207265736572766598627574206e6f2070617261636861696e20736c6f7420686173206265656e206c65617365642e80605b70617261636861696e5f69642c206c65617365722c20616d6f756e745d602c42696441636365707465641400000130543a3a4163636f756e744964000051010118506172614964000018013042616c616e63654f663c543e00001001404c65617365506572696f644f663c543e00001001404c65617365506572696f644f663c543e000508c841206e65772062696420686173206265656e206163636570746564206173207468652063757272656e742077696e6e65722ebc605b77686f2c20706172615f69642c20616d6f756e742c2066697273745f736c6f742c206c6173745f736c6f745d603457696e6e696e674f6666736574080010013041756374696f6e496e6465780000100138543a3a426c6f636b4e756d6265720006086d015468652077696e6e696e67206f6666736574207761732063686f73656e20666f7220616e2061756374696f6e2e20546869732077696c6c206d617020696e746f20746865206057696e6e696e67602073746f72616765206d61702e7c605b61756374696f6e5f696e6465782c20626c6f636b5f6e756d6265725d6004a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a0909099901105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e2463726f77646c6f616e1870616c6c6574144576656e740404540001281c43726561746564040051010118506172614964000004c84372656174652061206e65772063726f77646c6f616e696e672063616d706169676e2e20605b66756e645f696e6465785d602c436f6e74726962757465640c00000130543a3a4163636f756e744964000051010118506172614964000018013042616c616e63654f663c543e000104e0436f6e747269627574656420746f20612063726f77642073616c652e20605b77686f2c2066756e645f696e6465782c20616d6f756e745d602057697468647265770c00000130543a3a4163636f756e744964000051010118506172614964000018013042616c616e63654f663c543e0002040d0157697468647265772066756c6c2062616c616e6365206f66206120636f6e7472696275746f722e20605b77686f2c2066756e645f696e6465782c20616d6f756e745d60445061727469616c6c79526566756e6465640400510101185061726149640003082d01546865206c6f616e7320696e20612066756e642068617665206265656e207061727469616c6c7920646973736f6c7665642c20692e652e2074686572652061726520736f6d65206c656674f06f766572206368696c64206b6579732074686174207374696c6c206e65656420746f206265206b696c6c65642e20605b66756e645f696e6465785d602c416c6c526566756e646564040051010118506172614964000404d8416c6c206c6f616e7320696e20612066756e642068617665206265656e20726566756e6465642e20605b66756e645f696e6465785d6024446973736f6c7665640400510101185061726149640005048446756e6420697320646973736f6c7665642e20605b66756e645f696e6465785d603c48616e646c65426964526573756c7408005101011850617261496400007c01384469737061746368526573756c74000604f454686520726573756c74206f6620747279696e6720746f207375626d69742061206e65772062696420746f2074686520536c6f74732070616c6c65742e18456469746564040051010118506172614964000704010154686520636f6e66696775726174696f6e20746f20612063726f77646c6f616e20686173206265656e206564697465642e20605b66756e645f696e6465785d602c4d656d6f557064617465640c00000130543a3a4163636f756e744964000051010118506172614964000028011c5665633c75383e000804c841206d656d6f20686173206265656e20757064617465642e20605b77686f2c2066756e645f696e6465782c206d656d6f5d603c4164646564546f4e65775261697365040051010118506172614964000904a0412070617261636861696e20686173206265656e206d6f76656420746f20604e657752616973656004a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a0909099d0108306672616d655f73797374656d14506861736500010c384170706c7945787472696e736963040010010c7533320000003046696e616c697a6174696f6e00010038496e697469616c697a6174696f6e00020000a1010000022400a5010000027400a90108306672616d655f73797374656d584c61737452756e74696d6555706772616465496e666f0000080130737065635f76657273696f6ead01014c636f6465633a3a436f6d706163743c7533323e000124737065635f6e616d65b101016473705f72756e74696d653a3a52756e74696d65537472696e670000ad010000061000b1010000050200b5010c306672616d655f73797374656d1870616c6c65741043616c6c0404540001282866696c6c5f626c6f636b040114726174696fb901011c50657262696c6c00000405014120646973706174636820746861742077696c6c2066696c6c2074686520626c6f636b2077656967687420757020746f2074686520676976656e20726174696f2e1872656d61726b04011872656d61726b28011c5665633c75383e000114684d616b6520736f6d65206f6e2d636861696e2072656d61726b2e002823203c7765696768743e202d20604f283129602c23203c2f7765696768743e387365745f686561705f7061676573040114706167657320010c753634000224f853657420746865206e756d626572206f6620706167657320696e2074686520576562417373656d626c7920656e7669726f6e6d656e74277320686561702e002823203c7765696768743e202d20604f28312960482d20312073746f726167652077726974652e602d2042617365205765696768743a20312e34303520c2b5735c2d203120777269746520746f20484541505f50414745533c2d203120646967657374206974656d2c23203c2f7765696768743e207365745f636f6465040110636f646528011c5665633c75383e0003306453657420746865206e65772072756e74696d6520636f64652e002823203c7765696768743e31012d20604f2843202b2053296020776865726520604360206c656e677468206f662060636f64656020616e642060536020636f6d706c6578697479206f66206063616e5f7365745f636f64656045012d20312063616c6c20746f206063616e5f7365745f636f6465603a20604f28532960202863616c6c73206073705f696f3a3a6d6973633a3a72756e74696d655f76657273696f6e60207768696368206973342020657870656e73697665292e842d20312073746f726167652077726974652028636f64656320604f28432960292e402d203120646967657374206974656d2e282d2031206576656e742e4d0154686520776569676874206f6620746869732066756e6374696f6e20697320646570656e64656e74206f6e207468652072756e74696d652c206275742067656e6572616c6c7920746869732069732076657279b8657870656e736976652e2057652077696c6c207472656174207468697320617320612066756c6c20626c6f636b2e2c23203c2f7765696768743e5c7365745f636f64655f776974686f75745f636865636b73040110636f646528011c5665633c75383e000424190153657420746865206e65772072756e74696d6520636f646520776974686f757420646f696e6720616e7920636865636b73206f662074686520676976656e2060636f6465602e002823203c7765696768743e8c2d20604f2843296020776865726520604360206c656e677468206f662060636f646560842d20312073746f726167652077726974652028636f64656320604f28432960292e402d203120646967657374206974656d2e282d2031206576656e742e550154686520776569676874206f6620746869732066756e6374696f6e20697320646570656e64656e74206f6e207468652072756e74696d652e2057652077696c6c207472656174207468697320617320612066756c6c48626c6f636b2e2023203c2f7765696768743e5c7365745f6368616e6765735f747269655f636f6e66696704014c6368616e6765735f747269655f636f6e6669674001804f7074696f6e3c4368616e67657354726965436f6e66696775726174696f6e3e0005289c53657420746865206e6577206368616e676573207472696520636f6e66696775726174696f6e2e002823203c7765696768743e202d20604f28312960ac2d20312073746f72616765207772697465206f722064656c6574652028636f64656320604f28312960292ed42d20312063616c6c20746f20606465706f7369745f6c6f67603a20557365732060617070656e6460204150492c20736f204f283129602d2042617365205765696768743a20372e32313820c2b573302d204442205765696768743aa4202020202d205772697465733a204368616e67657320547269652c2053797374656d204469676573742c23203c2f7765696768743e2c7365745f73746f726167650401146974656d73bd0101345665633c4b657956616c75653e0006206853657420736f6d65206974656d73206f662073746f726167652e002823203c7765696768743e902d20604f2849296020776865726520604960206c656e677468206f6620606974656d7360782d206049602073746f72616765207772697465732028604f28312960292e702d2042617365205765696768743a20302e353638202a206920c2b573642d205772697465733a204e756d626572206f66206974656d732c23203c2f7765696768743e306b696c6c5f73746f726167650401106b657973c50101205665633c4b65793e000720744b696c6c20736f6d65206974656d732066726f6d2073746f726167652e002823203c7765696768743ef82d20604f28494b296020776865726520604960206c656e677468206f6620606b6579736020616e6420604b60206c656e677468206f66206f6e65206b6579602d206049602073746f726167652064656c6574696f6e732e6c2d2042617365205765696768743a202e333738202a206920c2b573642d205772697465733a204e756d626572206f66206974656d732c23203c2f7765696768743e2c6b696c6c5f70726566697808011870726566697828010c4b657900011c7375626b65797310010c75333200082c11014b696c6c20616c6c2073746f72616765206974656d7320776974682061206b657920746861742073746172747320776974682074686520676976656e207072656669782e0039012a2a4e4f54453a2a2a2057652072656c79206f6e2074686520526f6f74206f726967696e20746f2070726f7669646520757320746865206e756d626572206f66207375626b65797320756e6465723d0174686520707265666978207765206172652072656d6f76696e6720746f2061636375726174656c792063616c63756c6174652074686520776569676874206f6620746869732066756e6374696f6e2e002823203c7765696768743ed82d20604f285029602077686572652060506020616d6f756e74206f66206b657973207769746820707265666978206070726566697860602d206050602073746f726167652064656c6574696f6e732e702d2042617365205765696768743a20302e383334202a205020c2b5737c2d205772697465733a204e756d626572206f66207375626b657973202b20312c23203c2f7765696768743e4472656d61726b5f776974685f6576656e7404011872656d61726b28011c5665633c75383e000918a44d616b6520736f6d65206f6e2d636861696e2072656d61726b20616e6420656d6974206576656e742e002823203c7765696768743eb42d20604f28622960207768657265206220697320746865206c656e677468206f66207468652072656d61726b2e282d2031206576656e742e2c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632eb9010c3473705f61726974686d65746963287065725f7468696e67731c50657262696c6c0000040010010c7533320000bd01000002c10100c10100000408282800c5010000022800c9010c306672616d655f73797374656d186c696d69747330426c6f636b5765696768747300000c0128626173655f626c6f636b2001185765696768740001246d61785f626c6f636b2001185765696768740001247065725f636c617373cd0101845065724469737061746368436c6173733c57656967687473506572436c6173733e0000cd010c346672616d655f737570706f72741c77656967687473405065724469737061746368436c61737304045401d101000c01186e6f726d616cd10101045400012c6f7065726174696f6e616cd1010104540001246d616e6461746f7279d1010104540000d1010c306672616d655f73797374656d186c696d6974733c57656967687473506572436c6173730000100138626173655f65787472696e7369632001185765696768740001346d61785f65787472696e736963d50101384f7074696f6e3c5765696768743e0001246d61785f746f74616cd50101384f7074696f6e3c5765696768743e0001207265736572766564d50101384f7074696f6e3c5765696768743e0000d50104184f7074696f6e04045401200108104e6f6e6500000010536f6d650400200000010000d9010c306672616d655f73797374656d186c696d6974732c426c6f636b4c656e677468000004010c6d6178dd0101545065724469737061746368436c6173733c7533323e0000dd010c346672616d655f737570706f72741c77656967687473405065724469737061746368436c6173730404540110000c01186e6f726d616c1001045400012c6f7065726174696f6e616c100104540001246d616e6461746f7279100104540000e1010c346672616d655f737570706f72741c776569676874733c52756e74696d65446257656967687400000801107265616420011857656967687400011477726974652001185765696768740000e501082873705f76657273696f6e3852756e74696d6556657273696f6e00001c0124737065635f6e616d65b101013452756e74696d65537472696e67000124696d706c5f6e616d65b101013452756e74696d65537472696e67000144617574686f72696e675f76657273696f6e10010c753332000130737065635f76657273696f6e10010c753332000130696d706c5f76657273696f6e10010c75333200011061706973e901011c4170697356656300014c7472616e73616374696f6e5f76657273696f6e10010c7533320000e901040c436f7704045401ed01000400ed01000000ed01000002f10100f10100000408f5011000f501000003080000000800f9010c306672616d655f73797374656d1870616c6c6574144572726f720404540001143c496e76616c6964537065634e616d650000081101546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e63726561736500010841015468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e00020cec4661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e0009014569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f73697465000304fc537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e74000404350154686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e046c4572726f7220666f72207468652053797374656d2070616c6c6574fd01000002010200010204184f7074696f6e0404540105020108104e6f6e6500000010536f6d650400050200000100000502084070616c6c65745f7363686564756c65722c5363686564756c65645632101043616c6c0109022c426c6f636b4e756d62657201103450616c6c6574734f726967696e019505244163636f756e7449640100001401206d617962655f696478013c4f7074696f6e3c5665633c75383e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6c0902011043616c6c0001386d617962655f706572696f646963110201944f7074696f6e3c7363686564756c653a3a506572696f643c426c6f636b4e756d6265723e3e0001186f726967696e9505013450616c6c6574734f726967696e000009020840706f6c6b61646f745f72756e74696d651043616c6c00019c1853797374656d0400b50101ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53797374656d2c2052756e74696d653e000000245363686564756c657204000d0201b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5363686564756c65722c2052756e74696d653e00010010426162650400150201a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c426162652c2052756e74696d653e0002002454696d657374616d7004003d0201b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54696d657374616d702c2052756e74696d653e0003001c496e64696365730400450201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c496e64696365732c2052756e74696d653e0004002042616c616e6365730400490201b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42616c616e6365732c2052756e74696d653e00050028417574686f72736869700400550201bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c417574686f72736869702c2052756e74696d653e0006001c5374616b696e6704005d0201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5374616b696e672c2052756e74696d653e0007001c53657373696f6e0400810201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53657373696f6e2c2052756e74696d653e0009001c4772616e6470610400950201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4772616e6470612c2052756e74696d653e000b0020496d4f6e6c696e650400c10201b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c496d4f6e6c696e652c2052756e74696d653e000c002444656d6f63726163790400dd0201b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c44656d6f63726163792c2052756e74696d653e000e001c436f756e63696c0400ed0201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f756e63696c2c2052756e74696d653e000f0048546563686e6963616c436f6d6d69747465650400f50201dd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c546563686e6963616c436f6d6d69747465652c2052756e74696d653e0010004050687261676d656e456c656374696f6e0400f90201d50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50687261676d656e456c656374696f6e2c2052756e74696d653e0011004c546563686e6963616c4d656d626572736869700400010301e10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c546563686e6963616c4d656d626572736869702c2052756e74696d653e0012002054726561737572790400050301b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54726561737572792c2052756e74696d653e00130018436c61696d730400090301ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436c61696d732c2052756e74696d653e0018001c56657374696e670400250301b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c56657374696e672c2052756e74696d653e0019001c5574696c69747904002d0301b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5574696c6974792c2052756e74696d653e001a00204964656e746974790400350301b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4964656e746974792c2052756e74696d653e001c001450726f78790400d50301a90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50726f78792c2052756e74696d653e001d00204d756c74697369670400dd0301b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d756c74697369672c2052756e74696d653e001e0020426f756e746965730400e50301b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c426f756e746965732c2052756e74696d653e00220010546970730400e90301a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c546970732c2052756e74696d653e00230068456c656374696f6e50726f76696465724d756c746950686173650400ed0301fd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c456c656374696f6e50726f76696465724d756c746950686173652c2052756e74696d653e00240034436f6e66696775726174696f6e0400d90401c90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f6e66696775726174696f6e2c2052756e74696d653e0033002c50617261735368617265640400dd0401c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50617261735368617265642c2052756e74696d653e0034003450617261496e636c7573696f6e0400e10401c90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50617261496e636c7573696f6e2c2052756e74696d653e0035003050617261496e686572656e740400e50401c50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50617261496e686572656e742c2052756e74696d653e0036001450617261730400510501a90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50617261732c2052756e74696d653e0038002c496e697469616c697a65720400550501c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c496e697469616c697a65722c2052756e74696d653e0039000c446d700400590501a10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c446d702c2052756e74696d653e003a000c556d7004005d0501a10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c556d702c2052756e74696d653e003b001048726d700400610501a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c48726d702c2052756e74696d653e003c00245265676973747261720400650501b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5265676973747261722c2052756e74696d653e00460014536c6f74730400690501a90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c536c6f74732c2052756e74696d653e0047002041756374696f6e7304006d0501b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c41756374696f6e732c2052756e74696d653e0048002443726f77646c6f616e0400750501b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c43726f77646c6f616e2c2052756e74696d653e004900000d020c4070616c6c65745f7363686564756c65721870616c6c65741043616c6c040454000118207363686564756c651001107768656e100138543a3a426c6f636b4e756d6265720001386d617962655f706572696f646963110201a04f7074696f6e3c7363686564756c653a3a506572696f643c543a3a426c6f636b4e756d6265723e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6c09020160426f783c3c5420617320436f6e6669673e3a3a43616c6c3e00002870416e6f6e796d6f75736c79207363686564756c652061207461736b2e002823203c7765696768743e9c2d2053203d204e756d626572206f6620616c7265616479207363686564756c65642063616c6c738c2d2042617365205765696768743a2032322e3239202b202e313236202a205320c2b573302d204442205765696768743a48202020202d20526561643a204167656e64614c202020202d2057726974653a204167656e646139012d2057696c6c20757365206261736520776569676874206f662032352077686963682073686f756c6420626520676f6f6420666f7220757020746f203330207363686564756c65642063616c6c732c23203c2f7765696768743e1863616e63656c0801107768656e100138543a3a426c6f636b4e756d626572000114696e64657810010c7533320001289443616e63656c20616e20616e6f6e796d6f75736c79207363686564756c6564207461736b2e002823203c7765696768743e9c2d2053203d204e756d626572206f6620616c7265616479207363686564756c65642063616c6c73902d2042617365205765696768743a2032322e3135202b20322e383639202a205320c2b573302d204442205765696768743a48202020202d20526561643a204167656e64616c202020202d2057726974653a204167656e64612c204c6f6f6b75703d012d2057696c6c20757365206261736520776569676874206f66203130302077686963682073686f756c6420626520676f6f6420666f7220757020746f203330207363686564756c65642063616c6c732c23203c2f7765696768743e387363686564756c655f6e616d6564140108696428011c5665633c75383e0001107768656e100138543a3a426c6f636b4e756d6265720001386d617962655f706572696f646963110201a04f7074696f6e3c7363686564756c653a3a506572696f643c543a3a426c6f636b4e756d6265723e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6c09020160426f783c3c5420617320436f6e6669673e3a3a43616c6c3e000228585363686564756c652061206e616d6564207461736b2e002823203c7765696768743e9c2d2053203d204e756d626572206f6620616c7265616479207363686564756c65642063616c6c73882d2042617365205765696768743a2032392e36202b202e313539202a205320c2b573302d204442205765696768743a68202020202d20526561643a204167656e64612c204c6f6f6b75706c202020202d2057726974653a204167656e64612c204c6f6f6b757049012d2057696c6c20757365206261736520776569676874206f662033352077686963682073686f756c6420626520676f6f6420666f72206d6f7265207468616e203330207363686564756c65642063616c6c732c23203c2f7765696768743e3063616e63656c5f6e616d6564040108696428011c5665633c75383e0003287843616e63656c2061206e616d6564207363686564756c6564207461736b2e002823203c7765696768743e9c2d2053203d204e756d626572206f6620616c7265616479207363686564756c65642063616c6c73902d2042617365205765696768743a2032342e3931202b20322e393037202a205320c2b573302d204442205765696768743a68202020202d20526561643a204167656e64612c204c6f6f6b75706c202020202d2057726974653a204167656e64612c204c6f6f6b75703d012d2057696c6c20757365206261736520776569676874206f66203130302077686963682073686f756c6420626520676f6f6420666f7220757020746f203330207363686564756c65642063616c6c732c23203c2f7765696768743e387363686564756c655f61667465721001146166746572100138543a3a426c6f636b4e756d6265720001386d617962655f706572696f646963110201a04f7074696f6e3c7363686564756c653a3a506572696f643c543a3a426c6f636b4e756d6265723e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6c09020160426f783c3c5420617320436f6e6669673e3a3a43616c6c3e000414a8416e6f6e796d6f75736c79207363686564756c652061207461736b20616674657220612064656c61792e002823203c7765696768743e5453616d65206173205b607363686564756c65605d2e2c23203c2f7765696768743e507363686564756c655f6e616d65645f6166746572140108696428011c5665633c75383e0001146166746572100138543a3a426c6f636b4e756d6265720001386d617962655f706572696f646963110201a04f7074696f6e3c7363686564756c653a3a506572696f643c543a3a426c6f636b4e756d6265723e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6c09020160426f783c3c5420617320436f6e6669673e3a3a43616c6c3e000514905363686564756c652061206e616d6564207461736b20616674657220612064656c61792e002823203c7765696768743ec453616d65206173205b607363686564756c655f6e616d6564605d2853656c663a3a7363686564756c655f6e616d6564292e2c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e110204184f7074696f6e04045401740108104e6f6e6500000010536f6d65040074000001000015020c2c70616c6c65745f626162651870616c6c65741043616c6c04045400010c4c7265706f72745f65717569766f636174696f6e08014865717569766f636174696f6e5f70726f6f6619020184426f783c45717569766f636174696f6e50726f6f663c543a3a4865616465723e3e00013c6b65795f6f776e65725f70726f6f662d020140543a3a4b65794f776e657250726f6f6600001009015265706f727420617574686f726974792065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667905017468652065717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f660d01616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63652077696c6c306265207265706f727465642e707265706f72745f65717569766f636174696f6e5f756e7369676e656408014865717569766f636174696f6e5f70726f6f6619020184426f783c45717569766f636174696f6e50726f6f663c543a3a4865616465723e3e00013c6b65795f6f776e65725f70726f6f662d020140543a3a4b65794f776e657250726f6f6600012009015265706f727420617574686f726974792065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667905017468652065717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f660d01616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63652077696c6c306265207265706f727465642e0d01546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c791501626c6f636b20617574686f72732077696c6c2063616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c2061732073756368150169662074686520626c6f636b20617574686f7220697320646566696e65642069742077696c6c20626520646566696e6564206173207468652065717569766f636174696f6e247265706f727465722e48706c616e5f636f6e6669675f6368616e6765040118636f6e666967310201504e657874436f6e66696744657363726970746f720002105d01506c616e20616e2065706f636820636f6e666967206368616e67652e205468652065706f636820636f6e666967206368616e6765206973207265636f7264656420616e642077696c6c20626520656e6163746564206f6e5101746865206e6578742063616c6c20746f2060656e6163745f65706f63685f6368616e6765602e2054686520636f6e6669672077696c6c20626520616374697661746564206f6e652065706f63682061667465722e59014d756c7469706c652063616c6c7320746f2074686973206d6574686f642077696c6c207265706c61636520616e79206578697374696e6720706c616e6e656420636f6e666967206368616e6765207468617420686164546e6f74206265656e20656e6163746564207965742e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e1902084873705f636f6e73656e7375735f736c6f74734445717569766f636174696f6e50726f6f660818486561646572011d02084964012502001001206f6666656e646572250201084964000110736c6f7429020110536c6f7400013066697273745f6865616465721d0201184865616465720001347365636f6e645f6865616465721d02011848656164657200001d02102873705f72756e74696d651c67656e65726963186865616465721848656164657208184e756d626572011010486173680121020014012c706172656e745f68617368240130486173683a3a4f75747075740001186e756d626572ad0101184e756d62657200012873746174655f726f6f74240130486173683a3a4f757470757400013c65787472696e736963735f726f6f74240130486173683a3a4f75747075740001186469676573742c01504469676573743c486173683a3a4f75747075743e000021020c2873705f72756e74696d65187472616974732c426c616b6554776f3235360000000025020c4473705f636f6e73656e7375735f626162650c617070185075626c696300000400bc013c737232353531393a3a5075626c696300002902084873705f636f6e73656e7375735f736c6f747310536c6f740000040020010c75363400002d02082873705f73657373696f6e3c4d656d6265727368697050726f6f6600000c011c73657373696f6e10013053657373696f6e496e646578000128747269655f6e6f646573c50101305665633c5665633c75383e3e00013c76616c696461746f725f636f756e7410013856616c696461746f72436f756e74000031020c4473705f636f6e73656e7375735f626162651c64696765737473504e657874436f6e66696744657363726970746f720001040856310801046335020128287536342c2075363429000134616c6c6f7765645f736c6f747339020130416c6c6f776564536c6f7473000100003502000004082020003902084473705f636f6e73656e7375735f6261626530416c6c6f776564536c6f747300010c305072696d617279536c6f7473000000745072696d617279416e645365636f6e64617279506c61696e536c6f74730001006c5072696d617279416e645365636f6e64617279565246536c6f7473000200003d020c4070616c6c65745f74696d657374616d701870616c6c65741043616c6c0404540001040c73657404010c6e6f7741020124543a3a4d6f6d656e7400004054536574207468652063757272656e742074696d652e005501546869732063616c6c2073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6ed470686173652c20696620746869732063616c6c206861736e2774206265656e20696e766f6b656420627920746861742074696d652e0041015468652074696d657374616d702073686f756c642062652067726561746572207468616e207468652070726576696f7573206f6e652062792074686520616d6f756e742073706563696669656420627940604d696e696d756d506572696f64602e00d4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652060496e686572656e74602e002823203c7765696768743e31012d20604f2831296020284e6f7465207468617420696d706c656d656e746174696f6e73206f6620604f6e54696d657374616d7053657460206d75737420616c736f20626520604f283129602961012d20312073746f72616765207265616420616e6420312073746f72616765206d75746174696f6e2028636f64656320604f28312960292e202862656361757365206f6620604469645570646174653a3a74616b656020696e402020606f6e5f66696e616c697a656029d42d2031206576656e742068616e646c657220606f6e5f74696d657374616d705f736574602e204d75737420626520604f283129602e2c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e4102000006200045020c3870616c6c65745f696e64696365731870616c6c65741043616c6c04045400011414636c61696d040114696e64657810013c543a3a4163636f756e74496e6465780000489841737369676e20616e2070726576696f75736c7920756e61737369676e656420696e6465782e00dc5061796d656e743a20604465706f736974602069732072657365727665642066726f6d207468652073656e646572206163636f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e00f02d2060696e646578603a2074686520696e64657820746f20626520636c61696d65642e2054686973206d757374206e6f7420626520696e207573652e0090456d6974732060496e64657841737369676e656460206966207375636365737366756c2e002823203c7765696768743e242d20604f283129602e982d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28312960292e602d204f6e652072657365727665206f7065726174696f6e2e302d204f6e65206576656e742e4c2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d902d204442205765696768743a203120526561642f577269746520284163636f756e7473292c23203c2f7765696768743e207472616e7366657208010c6e6577000130543a3a4163636f756e744964000114696e64657810013c543a3a4163636f756e74496e6465780001505d0141737369676e20616e20696e64657820616c7265616479206f776e6564206279207468652073656e64657220746f20616e6f74686572206163636f756e742e205468652062616c616e6365207265736572766174696f6eb86973206566666563746976656c79207472616e7366657272656420746f20746865206e6577206163636f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0025012d2060696e646578603a2074686520696e64657820746f2062652072652d61737369676e65642e2054686973206d757374206265206f776e6564206279207468652073656e6465722e5d012d20606e6577603a20746865206e6577206f776e6572206f662074686520696e6465782e20546869732066756e6374696f6e2069732061206e6f2d6f7020696620697420697320657175616c20746f2073656e6465722e0090456d6974732060496e64657841737369676e656460206966207375636365737366756c2e002823203c7765696768743e242d20604f283129602e982d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28312960292e642d204f6e65207472616e73666572206f7065726174696f6e2e302d204f6e65206576656e742e4c2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d302d204442205765696768743ae02020202d2052656164733a20496e6469636573204163636f756e74732c2053797374656d204163636f756e742028726563697069656e7429e42020202d205772697465733a20496e6469636573204163636f756e74732c2053797374656d204163636f756e742028726563697069656e74292c23203c2f7765696768743e1066726565040114696e64657810013c543a3a4163636f756e74496e646578000248944672656520757020616e20696e646578206f776e6564206279207468652073656e6465722e005d015061796d656e743a20416e792070726576696f7573206465706f73697420706c6163656420666f722074686520696e64657820697320756e726573657276656420696e207468652073656e646572206163636f756e742e005501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d757374206f776e2074686520696e6465782e000d012d2060696e646578603a2074686520696e64657820746f2062652066726565642e2054686973206d757374206265206f776e6564206279207468652073656e6465722e0084456d6974732060496e646578467265656460206966207375636365737366756c2e002823203c7765696768743e242d20604f283129602e982d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28312960292e602d204f6e652072657365727665206f7065726174696f6e2e302d204f6e65206576656e742e4c2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d902d204442205765696768743a203120526561642f577269746520284163636f756e7473292c23203c2f7765696768743e38666f7263655f7472616e736665720c010c6e6577000130543a3a4163636f756e744964000114696e64657810013c543a3a4163636f756e74496e646578000118667265657a65e80110626f6f6c0003545501466f72636520616e20696e64657820746f20616e206163636f756e742e205468697320646f65736e277420726571756972652061206465706f7369742e2049662074686520696e64657820697320616c7265616479e868656c642c207468656e20616e79206465706f736974206973207265696d62757273656420746f206974732063757272656e74206f776e65722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e00a42d2060696e646578603a2074686520696e64657820746f206265202872652d2961737369676e65642e5d012d20606e6577603a20746865206e6577206f776e6572206f662074686520696e6465782e20546869732066756e6374696f6e2069732061206e6f2d6f7020696620697420697320657175616c20746f2073656e6465722e41012d2060667265657a65603a2069662073657420746f206074727565602c2077696c6c20667265657a652074686520696e64657820736f2069742063616e6e6f74206265207472616e736665727265642e0090456d6974732060496e64657841737369676e656460206966207375636365737366756c2e002823203c7765696768743e242d20604f283129602e982d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28312960292e782d20557020746f206f6e652072657365727665206f7065726174696f6e2e302d204f6e65206576656e742e4c2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d302d204442205765696768743af42020202d2052656164733a20496e6469636573204163636f756e74732c2053797374656d204163636f756e7420286f726967696e616c206f776e657229f82020202d205772697465733a20496e6469636573204163636f756e74732c2053797374656d204163636f756e7420286f726967696e616c206f776e6572292c23203c2f7765696768743e18667265657a65040114696e64657810013c543a3a4163636f756e74496e6465780004484101467265657a6520616e20696e64657820736f2069742077696c6c20616c7761797320706f696e7420746f207468652073656e646572206163636f756e742e205468697320636f6e73756d657320746865206465706f7369742e005901546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d757374206861766520616c6e6f6e2d66726f7a656e206163636f756e742060696e646578602e00ac2d2060696e646578603a2074686520696e64657820746f2062652066726f7a656e20696e20706c6163652e0088456d6974732060496e64657846726f7a656e60206966207375636365737366756c2e002823203c7765696768743e242d20604f283129602e982d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28312960292e702d20557020746f206f6e6520736c617368206f7065726174696f6e2e302d204f6e65206576656e742e4c2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d902d204442205765696768743a203120526561642f577269746520284163636f756e7473292c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e49020c3c70616c6c65745f62616c616e6365731870616c6c65741043616c6c080454000449000118207472616e73666572080110646573744d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500011476616c7565cc0128543a3a42616c616e6365000070d45472616e7366657220736f6d65206c697175696420667265652062616c616e636520746f20616e6f74686572206163636f756e742e000501607472616e73666572602077696c6c207365742074686520604672656542616c616e636560206f66207468652073656e64657220616e642072656365697665722e1d0149742077696c6c2064656372656173652074686520746f74616c2069737375616e6365206f66207468652073797374656d2062792074686520605472616e73666572466565602e11014966207468652073656e6465722773206163636f756e742069732062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c74b06f6620746865207472616e736665722c20746865206163636f756e742077696c6c206265207265617065642e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520605369676e65646020627920746865207472616e736163746f722e002823203c7765696768743e61012d20446570656e64656e74206f6e20617267756d656e747320627574206e6f7420637269746963616c2c20676976656e2070726f70657220696d706c656d656e746174696f6e7320666f7220696e70757420636f6e66696794202074797065732e205365652072656c617465642066756e6374696f6e732062656c6f772e31012d20497420636f6e7461696e732061206c696d69746564206e756d626572206f6620726561647320616e642077726974657320696e7465726e616c6c7920616e64206e6f20636f6d706c6578382020636f6d7075746174696f6e2e004852656c617465642066756e6374696f6e733a004d0120202d2060656e737572655f63616e5f77697468647261776020697320616c776179732063616c6c656420696e7465726e616c6c792062757420686173206120626f756e64656420636f6d706c65786974792e290120202d205472616e7366657272696e672062616c616e63657320746f206163636f756e7473207468617420646964206e6f74206578697374206265666f72652077696c6c206361757365cc2020202060543a3a4f6e4e65774163636f756e743a3a6f6e5f6e65775f6163636f756e746020746f2062652063616c6c65642e5d0120202d2052656d6f76696e6720656e6f7567682066756e64732066726f6d20616e206163636f756e742077696c6c20747269676765722060543a3a4475737452656d6f76616c3a3a6f6e5f756e62616c616e636564602e5d0120202d20607472616e736665725f6b6565705f616c6976656020776f726b73207468652073616d652077617920617320607472616e73666572602c206275742068617320616e206164646974696f6e616c20636865636bdc202020207468617420746865207472616e736665722077696c6c206e6f74206b696c6c20746865206f726967696e206163636f756e742e842d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d41012d2042617365205765696768743a2037332e363420c2b5732c20776f7273742063617365207363656e6172696f20286163636f756e7420637265617465642c206163636f756e742072656d6f76656429d82d204442205765696768743a2031205265616420616e64203120577269746520746f2064657374696e6174696f6e206163636f756e7411012d204f726967696e206163636f756e7420697320616c726561647920696e206d656d6f72792c20736f206e6f204442206f7065726174696f6e7320666f72207468656d2e2c23203c2f7765696768743e2c7365745f62616c616e63650c010c77686f4d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001206e65775f66726565cc0128543a3a42616c616e63650001306e65775f7265736572766564cc0128543a3a42616c616e636500014890536574207468652062616c616e636573206f66206120676976656e206163636f756e742e001d01546869732077696c6c20616c74657220604672656542616c616e63656020616e642060526573657276656442616c616e63656020696e2073746f726167652e2069742077696c6c0501616c736f2064656372656173652074686520746f74616c2069737375616e6365206f66207468652073797374656d202860546f74616c49737375616e636560292e1501496620746865206e65772066726565206f722072657365727665642062616c616e63652069732062656c6f7720746865206578697374656e7469616c206465706f7369742cfc69742077696c6c20726573657420746865206163636f756e74206e6f6e63652028606672616d655f73797374656d3a3a4163636f756e744e6f6e636560292e00b0546865206469737061746368206f726967696e20666f7220746869732063616c6c2069732060726f6f74602e002823203c7765696768743e7c2d20496e646570656e64656e74206f662074686520617267756d656e74732ec02d20436f6e7461696e732061206c696d69746564206e756d626572206f6620726561647320616e64207772697465732e542d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d382d2042617365205765696768743a64202020202d204372656174696e673a2032372e353620c2b57360202020202d204b696c6c696e673a2033352e313120c2b573942d204442205765696768743a203120526561642c203120577269746520746f206077686f602c23203c2f7765696768743e38666f7263655f7472616e736665720c0118736f757263654d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365000110646573744d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500011476616c7565cc0128543a3a42616c616e63650002184d0145786163746c7920617320607472616e73666572602c2065786365707420746865206f726967696e206d75737420626520726f6f7420616e642074686520736f75726365206163636f756e74206d6179206265287370656369666965642e2823203c7765696768743e4d012d2053616d65206173207472616e736665722c20627574206164646974696f6e616c207265616420616e6420777269746520626563617573652074686520736f75726365206163636f756e74206973206e6f747c2020617373756d656420746f20626520696e20746865206f7665726c61792e2c23203c2f7765696768743e4c7472616e736665725f6b6565705f616c697665080110646573744d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500011476616c7565cc0128543a3a42616c616e636500032c4d0153616d6520617320746865205b607472616e73666572605d2063616c6c2c206275742077697468206120636865636b207468617420746865207472616e736665722077696c6c206e6f74206b696c6c207468653c6f726967696e206163636f756e742e00b8393925206f66207468652074696d6520796f752077616e74205b607472616e73666572605d20696e73746561642e00c05b607472616e73666572605d3a207374727563742e50616c6c65742e68746d6c236d6574686f642e7472616e736665722823203c7765696768743ee42d2043686561706572207468616e207472616e736665722062656361757365206163636f756e742063616e6e6f74206265206b696c6c65642e5c2d2042617365205765696768743a2035312e3420c2b57319012d204442205765696768743a2031205265616420616e64203120577269746520746f2064657374202873656e64657220697320696e206f7665726c617920616c72656164792928233c2f7765696768743e307472616e736665725f616c6c080110646573744d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001286b6565705f616c697665e80110626f6f6c00044405015472616e736665722074686520656e74697265207472616e7366657261626c652062616c616e63652066726f6d207468652063616c6c6572206163636f756e742e0059014e4f54453a20546869732066756e6374696f6e206f6e6c7920617474656d70747320746f207472616e73666572205f7472616e7366657261626c655f2062616c616e6365732e2054686973206d65616e7320746861746101616e79206c6f636b65642c2072657365727665642c206f72206578697374656e7469616c206465706f7369747320287768656e20606b6565705f616c6976656020697320607472756560292c2077696c6c206e6f742062655d017472616e7366657272656420627920746869732066756e6374696f6e2e20546f20656e73757265207468617420746869732066756e6374696f6e20726573756c747320696e2061206b696c6c6564206163636f756e742c4501796f75206d69676874206e65656420746f207072657061726520746865206163636f756e742062792072656d6f76696e6720616e79207265666572656e636520636f756e746572732c2073746f72616765406465706f736974732c206574632e2e2e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205369676e65642e00a02d206064657374603a2054686520726563697069656e74206f6620746865207472616e736665722e59012d20606b6565705f616c697665603a204120626f6f6c65616e20746f2064657465726d696e652069662074686520607472616e736665725f616c6c60206f7065726174696f6e2073686f756c642073656e6420616c6c4d0120206f66207468652066756e647320746865206163636f756e74206861732c2063617573696e67207468652073656e646572206163636f756e7420746f206265206b696c6c6564202866616c7365292c206f72590120207472616e736665722065766572797468696e6720657863657074206174206c6561737420746865206578697374656e7469616c206465706f7369742c2077686963682077696c6c2067756172616e74656520746fc820206b656570207468652073656e646572206163636f756e7420616c697665202874727565292e2023203c7765696768743e39012d204f2831292e204a757374206c696b65207472616e736665722c206275742072656164696e672074686520757365722773207472616e7366657261626c652062616c616e63652066697273742e302020233c2f7765696768743e3c666f7263655f756e7265736572766508010c77686f4d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365000118616d6f756e74180128543a3a42616c616e636500050cb0556e7265736572766520736f6d652062616c616e63652066726f6d2061207573657220627920666f7263652e006c43616e206f6e6c792062652063616c6c656420627920524f4f542e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e4d020c2873705f72756e74696d65306d756c746961646472657373304d756c74694164647265737308244163636f756e7449640100304163636f756e74496e6465780180011408496404000001244163636f756e74496400000014496e6465780400510201304163636f756e74496e6465780001000c526177040028011c5665633c75383e0002002441646472657373333204000401205b75383b2033325d0003002441646472657373323004000d0101205b75383b2032305d000400005102000006800055020c4470616c6c65745f617574686f72736869701870616c6c65741043616c6c040454000104287365745f756e636c65730401286e65775f756e636c6573590201385665633c543a3a4865616465723e0000046050726f76696465206120736574206f6620756e636c65732e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e59020000021d02005d02103870616c6c65745f7374616b696e671870616c6c65741870616c6c65741043616c6c04045400016410626f6e640c0128636f6e74726f6c6c65724d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500011476616c7565cc013042616c616e63654f663c543e00011470617965656102017c52657761726444657374696e6174696f6e3c543a3a4163636f756e7449643e000044610154616b6520746865206f726967696e206163636f756e74206173206120737461736820616e64206c6f636b207570206076616c756560206f66206974732062616c616e63652e2060636f6e74726f6c6c6572602077696c6c80626520746865206163636f756e74207468617420636f6e74726f6c732069742e002d016076616c756560206d757374206265206d6f7265207468616e2074686520606d696e696d756d5f62616c616e636560207370656369666965642062792060543a3a43757272656e6379602e002101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20627920746865207374617368206163636f756e742e003c456d6974732060426f6e646564602e2823203c7765696768743ed02d20496e646570656e64656e74206f662074686520617267756d656e74732e204d6f64657261746520636f6d706c65786974792e1c2d204f2831292e642d20546872656520657874726120444220656e74726965732e004d014e4f54453a2054776f206f66207468652073746f726167652077726974657320286053656c663a3a626f6e646564602c206053656c663a3a7061796565602920617265205f6e657665725f20636c65616e65643d01756e6c6573732074686520606f726967696e602066616c6c732062656c6f77205f6578697374656e7469616c206465706f7369745f20616e6420676574732072656d6f76656420617320647573742e482d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2c23203c2f7765696768743e28626f6e645f65787472610401386d61785f6164646974696f6e616ccc013042616c616e63654f663c543e00013c610141646420736f6d6520657874726120616d6f756e742074686174206861766520617070656172656420696e207468652073746173682060667265655f62616c616e63656020696e746f207468652062616c616e636520757030666f72207374616b696e672e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c65722e004d01557365207468697320696620746865726520617265206164646974696f6e616c2066756e647320696e20796f7572207374617368206163636f756e74207468617420796f75207769736820746f20626f6e642e5501556e6c696b65205b60626f6e64605d2853656c663a3a626f6e6429206f72205b60756e626f6e64605d2853656c663a3a756e626f6e642920746869732066756e6374696f6e20646f6573206e6f7420696d706f7365bc616e79206c696d69746174696f6e206f6e2074686520616d6f756e7420746861742063616e2062652061646465642e003c456d6974732060426f6e646564602e002823203c7765696768743ee42d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e1c2d204f2831292e2c23203c2f7765696768743e18756e626f6e6404011476616c7565cc013042616c616e63654f663c543e00024c51015363686564756c65206120706f7274696f6e206f662074686520737461736820746f20626520756e6c6f636b656420726561647920666f72207472616e73666572206f75742061667465722074686520626f6e64fc706572696f6420656e64732e2049662074686973206c656176657320616e20616d6f756e74206163746976656c7920626f6e646564206c657373207468616e2101543a3a43757272656e63793a3a6d696e696d756d5f62616c616e636528292c207468656e20697420697320696e6372656173656420746f207468652066756c6c20616d6f756e742e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0045014f6e63652074686520756e6c6f636b20706572696f6420697320646f6e652c20796f752063616e2063616c6c206077697468647261775f756e626f6e6465646020746f2061637475616c6c79206d6f7665bc7468652066756e6473206f7574206f66206d616e6167656d656e7420726561647920666f72207472616e736665722e0039014e6f206d6f7265207468616e2061206c696d69746564206e756d626572206f6620756e6c6f636b696e67206368756e6b73202873656520604d41585f554e4c4f434b494e475f4348554e4b536029390163616e20636f2d657869737473206174207468652073616d652074696d652e20496e207468617420636173652c205b6043616c6c3a3a77697468647261775f756e626f6e646564605d206e656564f8746f2062652063616c6c656420666972737420746f2072656d6f766520736f6d65206f6620746865206368756e6b732028696620706f737369626c65292e00390149662061207573657220656e636f756e74657273207468652060496e73756666696369656e74426f6e6460206572726f72207768656e2063616c6c696e6720746869732065787472696e7369632c1901746865792073686f756c642063616c6c20606368696c6c6020666972737420696e206f7264657220746f206672656520757020746865697220626f6e6465642066756e64732e0044456d6974732060556e626f6e646564602e009453656520616c736f205b6043616c6c3a3a77697468647261775f756e626f6e646564605d2e4477697468647261775f756e626f6e6465640401486e756d5f736c617368696e675f7370616e7310010c75333200033c290152656d6f766520616e7920756e6c6f636b6564206368756e6b732066726f6d207468652060756e6c6f636b696e67602071756575652066726f6d206f7572206d616e6167656d656e742e0031015468697320657373656e7469616c6c7920667265657320757020746861742062616c616e636520746f206265207573656420627920746865207374617368206163636f756e7420746f20646f4877686174657665722069742077616e74732e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722e0048456d697473206057697468647261776e602e006853656520616c736f205b6043616c6c3a3a756e626f6e64605d2e002823203c7765696768743e0501436f6d706c6578697479204f285329207768657265205320697320746865206e756d626572206f6620736c617368696e67207370616e7320746f2072656d6f766509014e4f54453a2057656967687420616e6e6f746174696f6e20697320746865206b696c6c207363656e6172696f2c20776520726566756e64206f74686572776973652e2c23203c2f7765696768743e2076616c696461746504011470726566736502013856616c696461746f725072656673000414e44465636c617265207468652064657369726520746f2076616c696461746520666f7220746865206f726967696e20636f6e74726f6c6c65722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e206e6f6d696e61746504011c746172676574736d0201a05665633c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653e00052c0d014465636c617265207468652064657369726520746f206e6f6d696e6174652060746172676574736020666f7220746865206f726967696e20636f6e74726f6c6c65722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e002823203c7765696768743e2d012d20546865207472616e73616374696f6e277320636f6d706c65786974792069732070726f706f7274696f6e616c20746f207468652073697a65206f662060746172676574736020284e29fc77686963682069732063617070656420617420436f6d7061637441737369676e6d656e74733a3a4c494d495420284d41585f4e4f4d494e4154494f4e53292ed42d20426f74682074686520726561647320616e642077726974657320666f6c6c6f7720612073696d696c6172207061747465726e2e2c23203c2f7765696768743e146368696c6c00062cc44465636c617265206e6f2064657369726520746f206569746865722076616c6964617465206f72206e6f6d696e6174652e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e002823203c7765696768743ee42d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e502d20436f6e7461696e73206f6e6520726561642ec42d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e2c23203c2f7765696768743e247365745f706179656504011470617965656102017c52657761726444657374696e6174696f6e3c543a3a4163636f756e7449643e000740b42852652d2973657420746865207061796d656e742074617267657420666f72206120636f6e74726f6c6c65722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e002823203c7765696768743ee42d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e942d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec42d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e242d2d2d2d2d2d2d2d2d382d205765696768743a204f283129302d204442205765696768743a48202020202d20526561643a204c656467657248202020202d2057726974653a2050617965652c23203c2f7765696768743e387365745f636f6e74726f6c6c6572040128636f6e74726f6c6c65724d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650008408c2852652d297365742074686520636f6e74726f6c6c6572206f6620612073746173682e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c65722e002823203c7765696768743ee42d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e942d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec42d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e282d2d2d2d2d2d2d2d2d2d305765696768743a204f283129284442205765696768743af02d20526561643a20426f6e6465642c204c6564676572204e657720436f6e74726f6c6c65722c204c6564676572204f6c6420436f6e74726f6c6c6572f42d2057726974653a20426f6e6465642c204c6564676572204e657720436f6e74726f6c6c65722c204c6564676572204f6c6420436f6e74726f6c6c65722c23203c2f7765696768743e4c7365745f76616c696461746f725f636f756e7404010c6e6577ad01010c75333200092090536574732074686520696465616c206e756d626572206f662076616c696461746f72732e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002823203c7765696768743e305765696768743a204f2831295857726974653a2056616c696461746f7220436f756e742c23203c2f7765696768743e60696e6372656173655f76616c696461746f725f636f756e740401286164646974696f6e616cad01010c753332000a1ca8496e6372656d656e74732074686520696465616c206e756d626572206f662076616c696461746f72732e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002823203c7765696768743e9853616d65206173205b6053656c663a3a7365745f76616c696461746f725f636f756e74605d2e2c23203c2f7765696768743e547363616c655f76616c696461746f725f636f756e74040118666163746f727102011c50657263656e74000b1cd05363616c652075702074686520696465616c206e756d626572206f662076616c696461746f7273206279206120666163746f722e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002823203c7765696768743e9853616d65206173205b6053656c663a3a7365745f76616c696461746f725f636f756e74605d2e2c23203c2f7765696768743e34666f7263655f6e6f5f65726173000c3cac466f72636520746865726520746f206265206e6f206e6577206572617320696e646566696e6974656c792e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002423205761726e696e6700190154686520656c656374696f6e2070726f6365737320737461727473206d756c7469706c6520626c6f636b73206265666f72652074686520656e64206f6620746865206572612e3901546875732074686520656c656374696f6e2070726f63657373206d6179206265206f6e676f696e67207768656e20746869732069732063616c6c65642e20496e2074686973206361736520746865dc656c656374696f6e2077696c6c20636f6e74696e756520756e74696c20746865206e65787420657261206973207472696767657265642e002823203c7765696768743e3c2d204e6f20617267756d656e74732e382d205765696768743a204f283129442d2057726974653a20466f7263654572612c23203c2f7765696768743e34666f7263655f6e65775f657261000d404901466f72636520746865726520746f2062652061206e6577206572612061742074686520656e64206f6620746865206e6578742073657373696f6e2e20416674657220746869732c2069742077696c6c2062659c726573657420746f206e6f726d616c20286e6f6e2d666f7263656429206265686176696f75722e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002423205761726e696e6700190154686520656c656374696f6e2070726f6365737320737461727473206d756c7469706c6520626c6f636b73206265666f72652074686520656e64206f6620746865206572612e4901496620746869732069732063616c6c6564206a757374206265666f72652061206e657720657261206973207472696767657265642c2074686520656c656374696f6e2070726f63657373206d6179206e6f748c6861766520656e6f75676820626c6f636b7320746f20676574206120726573756c742e002823203c7765696768743e3c2d204e6f20617267756d656e74732e382d205765696768743a204f283129402d20577269746520466f7263654572612c23203c2f7765696768743e447365745f696e76756c6e657261626c6573040134696e76756c6e657261626c6573dc01445665633c543a3a4163636f756e7449643e000e20c8536574207468652076616c696461746f72732077686f2063616e6e6f7420626520736c61736865642028696620616e79292e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002823203c7765696768743e182d204f285629582d2057726974653a20496e76756c6e657261626c65732c23203c2f7765696768743e34666f7263655f756e7374616b650801147374617368000130543a3a4163636f756e7449640001486e756d5f736c617368696e675f7370616e7310010c753332000f280901466f72636520612063757272656e74207374616b657220746f206265636f6d6520636f6d706c6574656c7920756e7374616b65642c20696d6d6564696174656c792e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002823203c7765696768743ee84f285329207768657265205320697320746865206e756d626572206f6620736c617368696e67207370616e7320746f2062652072656d6f766564b452656164733a20426f6e6465642c20536c617368696e67205370616e732c204163636f756e742c204c6f636b7345015772697465733a20426f6e6465642c20536c617368696e67205370616e73202869662053203e2030292c204c65646765722c2050617965652c2056616c696461746f72732c204e6f6d696e61746f72732ca44163636f756e742c204c6f636b732057726974657320456163683a205370616e536c617368202a20532c23203c2f7765696768743e50666f7263655f6e65775f6572615f616c776179730010380101466f72636520746865726520746f2062652061206e6577206572612061742074686520656e64206f662073657373696f6e7320696e646566696e6974656c792e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002423205761726e696e6700190154686520656c656374696f6e2070726f6365737320737461727473206d756c7469706c6520626c6f636b73206265666f72652074686520656e64206f6620746865206572612e4901496620746869732069732063616c6c6564206a757374206265666f72652061206e657720657261206973207472696767657265642c2074686520656c656374696f6e2070726f63657373206d6179206e6f748c6861766520656e6f75676820626c6f636b7320746f20676574206120726573756c742e002823203c7765696768743e382d205765696768743a204f283129442d2057726974653a20466f7263654572612c23203c2f7765696768743e5463616e63656c5f64656665727265645f736c61736808010c657261100120457261496e646578000134736c6173685f696e6469636573750201205665633c7533323e0011349443616e63656c20656e6163746d656e74206f66206120646566657272656420736c6173682e00b043616e2062652063616c6c6564206279207468652060543a3a536c61736843616e63656c4f726967696e602e000101506172616d65746572733a2065726120616e6420696e6469636573206f662074686520736c617368657320666f7220746861742065726120746f206b696c6c2e002823203c7765696768743e50436f6d706c65786974793a204f2855202b205329b477697468205520756e6170706c69656420736c6173686573207765696768746564207769746820553d31303030d0616e64205320697320746865206e756d626572206f6620736c61736820696e646963657320746f2062652063616e63656c65642e642d20526561643a20556e6170706c69656420536c6173686573682d2057726974653a20556e6170706c69656420536c61736865732c23203c2f7765696768743e387061796f75745f7374616b65727308013c76616c696461746f725f7374617368000130543a3a4163636f756e74496400010c657261100120457261496e6465780012540d01506179206f757420616c6c20746865207374616b65727320626568696e6420612073696e676c652076616c696461746f7220666f7220612073696e676c65206572612e0049012d206076616c696461746f725f73746173686020697320746865207374617368206163636f756e74206f66207468652076616c696461746f722e205468656972206e6f6d696e61746f72732c20757020746f2501202060543a3a4d61784e6f6d696e61746f72526577617264656450657256616c696461746f72602c2077696c6c20616c736f207265636569766520746865697220726577617264732e31012d206065726160206d617920626520616e7920657261206265747765656e20605b63757272656e745f657261202d20686973746f72795f64657074683b2063757272656e745f6572615d602e005501546865206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e20416e79206163636f756e742063616e2063616c6c20746869732066756e6374696f6e2c206576656e206966746974206973206e6f74206f6e65206f6620746865207374616b6572732e002823203c7765696768743efc2d2054696d6520636f6d706c65786974793a206174206d6f7374204f284d61784e6f6d696e61746f72526577617264656450657256616c696461746f72292ec02d20436f6e7461696e732061206c696d69746564206e756d626572206f6620726561647320616e64207772697465732e2c2d2d2d2d2d2d2d2d2d2d2d19014e20697320746865204e756d626572206f66207061796f75747320666f72207468652076616c696461746f722028696e636c7564696e67207468652076616c696461746f72291c5765696768743a842d205265776172642044657374696e6174696f6e205374616b65643a204f284e29c02d205265776172642044657374696e6174696f6e20436f6e74726f6c6c657220284372656174696e67293a204f284e29004d0120204e4f54453a20776569676874732061726520617373756d696e672074686174207061796f75747320617265206d61646520746f20616c697665207374617368206163636f756e7420285374616b6564292e55012020506179696e67206576656e2061206465616420636f6e74726f6c6c65722069732063686561706572207765696768742d776973652e20576520646f6e277420646f20616e7920726566756e647320686572652e2c23203c2f7765696768743e187265626f6e6404011476616c7565cc013042616c616e63654f663c543e001324dc5265626f6e64206120706f7274696f6e206f6620746865207374617368207363686564756c656420746f20626520756e6c6f636b65642e00d4546865206469737061746368206f726967696e206d757374206265207369676e65642062792074686520636f6e74726f6c6c65722e002823203c7765696768743ed02d2054696d6520636f6d706c65786974793a204f284c292c207768657265204c20697320756e6c6f636b696e67206368756e6b73902d20426f756e64656420627920604d41585f554e4c4f434b494e475f4348554e4b53602ef02d2053746f72616765206368616e6765733a2043616e277420696e6372656173652073746f726167652c206f6e6c792064656372656173652069742e2c23203c2f7765696768743e447365745f686973746f72795f64657074680801446e65775f686973746f72795f6465707468ad010120457261496e6465780001446572615f6974656d735f64656c65746564ad01010c7533320014582d015365742060486973746f72794465707468602076616c75652e20546869732066756e6374696f6e2077696c6c2064656c65746520616e7920686973746f727920696e666f726d6174696f6e7c7768656e2060486973746f727944657074686020697320726564756365642e002c506172616d65746572733a0d012d20606e65775f686973746f72795f6465707468603a20546865206e657720686973746f727920646570746820796f7520776f756c64206c696b6520746f207365742e59012d20606572615f6974656d735f64656c65746564603a20546865206e756d626572206f66206974656d7320746861742077696c6c2062652064656c6574656420627920746869732064697370617463682e20546869735d01202073686f756c64207265706f727420616c6c207468652073746f72616765206974656d7320746861742077696c6c2062652064656c6574656420627920636c656172696e67206f6c642065726120686973746f72792e590120204e656564656420746f207265706f727420616e2061636375726174652077656967687420666f72207468652064697370617463682e20547275737465642062792060526f6f746020746f207265706f727420616e4820206163637572617465206e756d6265722e00504f726967696e206d75737420626520726f6f742e002823203c7765696768743edc2d20453a204e756d626572206f6620686973746f7279206465707468732072656d6f7665642c20692e652e203130202d3e2037203d2033382d205765696768743a204f284529302d204442205765696768743a9c202020202d2052656164733a2043757272656e74204572612c20486973746f72792044657074686c202020202d205772697465733a20486973746f72792044657074682d01202020202d20436c6561722050726566697820456163683a20457261205374616b6572732c204572615374616b657273436c69707065642c204572617356616c696461746f7250726566732501202020202d2057726974657320456163683a204572617356616c696461746f725265776172642c2045726173526577617264506f696e74732c2045726173546f74616c5374616b652c6c20202020202045726173537461727453657373696f6e496e6465782c23203c2f7765696768743e28726561705f73746173680801147374617368000130543a3a4163636f756e7449640001486e756d5f736c617368696e675f7370616e7310010c7533320015405d0152656d6f766520616c6c20646174612073747275637475726520636f6e6365726e696e672061207374616b65722f7374617368206f6e6365206974732062616c616e636520697320617420746865206d696e696d756d2e5d015468697320697320657373656e7469616c6c79206571756976616c656e7420746f206077697468647261775f756e626f6e64656460206578636570742069742063616e2062652063616c6c656420627920616e796f6e65f4616e6420746865207461726765742060737461736860206d7573742068617665206e6f2066756e6473206c656674206265796f6e64207468652045442e008c546869732063616e2062652063616c6c65642066726f6d20616e79206f726967696e2e00fc2d20607374617368603a20546865207374617368206163636f756e7420746f20726561702e204974732062616c616e6365206d757374206265207a65726f2e002823203c7765696768743e2101436f6d706c65786974793a204f285329207768657265205320697320746865206e756d626572206f6620736c617368696e67207370616e73206f6e20746865206163636f756e742e284442205765696768743ad42d2052656164733a205374617368204163636f756e742c20426f6e6465642c20536c617368696e67205370616e732c204c6f636b734d012d205772697465733a20426f6e6465642c20536c617368696e67205370616e73202869662053203e2030292c204c65646765722c2050617965652c2056616c696461746f72732c204e6f6d696e61746f72732c5820205374617368204163636f756e742c204c6f636b73702d2057726974657320456163683a205370616e536c617368202a20532c23203c2f7765696768743e106b69636b04010c77686f6d0201a05665633c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653e00162ce052656d6f76652074686520676976656e206e6f6d696e6174696f6e732066726f6d207468652063616c6c696e672076616c696461746f722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e004d012d206077686f603a2041206c697374206f66206e6f6d696e61746f72207374617368206163636f756e74732077686f20617265206e6f6d696e6174696e6720746869732076616c696461746f72207768696368c0202073686f756c64206e6f206c6f6e676572206265206e6f6d696e6174696e6720746869732076616c696461746f722e0055014e6f74653a204d616b696e6720746869732063616c6c206f6e6c79206d616b65732073656e736520696620796f7520666972737420736574207468652076616c696461746f7220707265666572656e63657320746f78626c6f636b20616e792066757274686572206e6f6d696e6174696f6e732e487365745f7374616b696e675f6c696d6974731401486d696e5f6e6f6d696e61746f725f626f6e6418013042616c616e63654f663c543e0001486d696e5f76616c696461746f725f626f6e6418013042616c616e63654f663c543e00014c6d61785f6e6f6d696e61746f725f636f756e747902012c4f7074696f6e3c7533323e00014c6d61785f76616c696461746f725f636f756e747902012c4f7074696f6e3c7533323e0001247468726573686f6c647d02013c4f7074696f6e3c50657263656e743e001734b85570646174652074686520766172696f7573207374616b696e67206c696d69747320746869732070616c6c65742e0025012a20606d696e5f6e6f6d696e61746f725f626f6e64603a20546865206d696e696d756d2061637469766520626f6e64206e656564656420746f2062652061206e6f6d696e61746f722e25012a20606d696e5f76616c696461746f725f626f6e64603a20546865206d696e696d756d2061637469766520626f6e64206e656564656420746f20626520612076616c696461746f722e55012a20606d61785f6e6f6d696e61746f725f636f756e74603a20546865206d6178206e756d626572206f662075736572732077686f2063616e2062652061206e6f6d696e61746f72206174206f6e63652e205768656e98202073657420746f20604e6f6e65602c206e6f206c696d697420697320656e666f726365642e55012a20606d61785f76616c696461746f725f636f756e74603a20546865206d6178206e756d626572206f662075736572732077686f2063616e20626520612076616c696461746f72206174206f6e63652e205768656e98202073657420746f20604e6f6e65602c206e6f206c696d697420697320656e666f726365642e00a84f726967696e206d75737420626520526f6f7420746f2063616c6c20746869732066756e6374696f6e2e0035014e4f54453a204578697374696e67206e6f6d696e61746f727320616e642076616c696461746f72732077696c6c206e6f742062652061666665637465642062792074686973207570646174652e1101746f206b69636b2070656f706c6520756e64657220746865206e6577206c696d6974732c20606368696c6c5f6f74686572602073686f756c642062652063616c6c65642e2c6368696c6c5f6f74686572040128636f6e74726f6c6c6572000130543a3a4163636f756e74496400185441014465636c61726520612060636f6e74726f6c6c65726020746f2073746f702070617274696369706174696e672061732065697468657220612076616c696461746f72206f72206e6f6d696e61746f722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e004101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2c206275742063616e2062652063616c6c656420627920616e796f6e652e0059014966207468652063616c6c6572206973207468652073616d652061732074686520636f6e74726f6c6c6572206265696e672074617267657465642c207468656e206e6f206675727468657220636865636b7320617265d8656e666f726365642c20616e6420746869732066756e6374696f6e2062656861766573206a757374206c696b6520606368696c6c602e005d014966207468652063616c6c657220697320646966666572656e74207468616e2074686520636f6e74726f6c6c6572206265696e672074617267657465642c2074686520666f6c6c6f77696e6720636f6e646974696f6e73306d757374206265206d65743a3d012a204120604368696c6c5468726573686f6c6460206d7573742062652073657420616e6420636865636b656420776869636820646566696e657320686f7720636c6f736520746f20746865206d6178550120206e6f6d696e61746f7273206f722076616c696461746f7273207765206d757374207265616368206265666f72652075736572732063616e207374617274206368696c6c696e67206f6e652d616e6f746865722e59012a204120604d61784e6f6d696e61746f72436f756e746020616e6420604d617856616c696461746f72436f756e7460206d75737420626520736574207768696368206973207573656420746f2064657465726d696e65902020686f7720636c6f73652077652061726520746f20746865207468726573686f6c642e5d012a204120604d696e4e6f6d696e61746f72426f6e646020616e6420604d696e56616c696461746f72426f6e6460206d7573742062652073657420616e6420636865636b65642c2077686963682064657465726d696e65735101202069662074686973206973206120706572736f6e20746861742073686f756c64206265206368696c6c6564206265636175736520746865792068617665206e6f74206d657420746865207468726573686f6c64402020626f6e642072657175697265642e005501546869732063616e2062652068656c7066756c20696620626f6e6420726571756972656d656e74732061726520757064617465642c20616e64207765206e65656420746f2072656d6f7665206f6c642075736572739877686f20646f206e6f74207361746973667920746865736520726571756972656d656e74732e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e6102083870616c6c65745f7374616b696e674452657761726444657374696e6174696f6e04244163636f756e74496401000114185374616b656400000014537461736800010028436f6e74726f6c6c65720002001c4163636f756e7404000001244163636f756e744964000300104e6f6e65000400006502083870616c6c65745f7374616b696e673856616c696461746f7250726566730000080128636f6d6d697373696f6e6902011c50657262696c6c00011c626c6f636b6564e80110626f6f6c00006902000006b901006d020000024d020071020c3473705f61726974686d65746963287065725f7468696e67731c50657263656e74000004000801087538000075020000021000790204184f7074696f6e04045401100108104e6f6e6500000010536f6d6504001000000100007d0204184f7074696f6e0404540171020108104e6f6e6500000010536f6d6504007102000001000081020c3870616c6c65745f73657373696f6e1870616c6c65741043616c6c040454000108207365745f6b6579730801106b6579738502011c543a3a4b65797300011470726f6f6628011c5665633c75383e000038e453657473207468652073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c657220746f20606b657973602e1d01416c6c6f777320616e206163636f756e7420746f20736574206974732073657373696f6e206b6579207072696f7220746f206265636f6d696e6720612076616c696461746f722ec05468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e00d0546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265207369676e65642e002823203c7765696768743e11012d20436f6d706c65786974793a20604f283129602e2041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f6698202060543a3a4b6579733a3a6b65795f6964732829602077686963682069732066697865642eec2d20446252656164733a20606f726967696e206163636f756e74602c2060543a3a56616c696461746f7249644f66602c20604e6578744b65797360a02d2044625772697465733a20606f726967696e206163636f756e74602c20604e6578744b65797360802d204462526561647320706572206b65792069643a20604b65794f776e657260842d20446257726974657320706572206b65792069643a20604b65794f776e6572602c23203c2f7765696768743e2870757267655f6b657973000130c852656d6f76657320616e792073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c65722ec05468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e00d0546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265207369676e65642e002823203c7765696768743e61012d20436f6d706c65786974793a20604f2831296020696e206e756d626572206f66206b65792074797065732e2041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468a420206f662060543a3a4b6579733a3a6b65795f6964732829602077686963682069732066697865642eec2d20446252656164733a2060543a3a56616c696461746f7249644f66602c20604e6578744b657973602c20606f726967696e206163636f756e7460a02d2044625772697465733a20604e6578744b657973602c20606f726967696e206163636f756e7460842d20446257726974657320706572206b65792069643a20604b65794f776e6572602c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e85020840706f6c6b61646f745f72756e74696d652c53657373696f6e4b657973000018011c6772616e647061ac01d03c4772616e647061206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c696300011062616265250201c43c42616265206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c6963000124696d5f6f6e6c696e65b801d43c496d4f6e6c696e65206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c6963000138706172615f76616c696461746f72890201e03c496e697469616c697a6572206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c696300013c706172615f61737369676e6d656e748d0201f03c5061726153657373696f6e496e666f206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c696300014c617574686f726974795f646973636f76657279910201fc3c417574686f72697479446973636f76657279206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c696300008902104c706f6c6b61646f745f7072696d6974697665730876303476616c696461746f725f617070185075626c696300000400bc013c737232353531393a3a5075626c696300008d02104c706f6c6b61646f745f7072696d6974697665730876313861737369676e6d656e745f617070185075626c696300000400bc013c737232353531393a3a5075626c6963000091020c5873705f617574686f726974795f646973636f766572790c617070185075626c696300000400bc013c737232353531393a3a5075626c6963000095020c3870616c6c65745f6772616e6470611870616c6c65741043616c6c04045400010c4c7265706f72745f65717569766f636174696f6e08014865717569766f636174696f6e5f70726f6f66990201bc426f783c45717569766f636174696f6e50726f6f663c543a3a486173682c20543a3a426c6f636b4e756d6265723e3e00013c6b65795f6f776e65725f70726f6f662d020140543a3a4b65794f776e657250726f6f6600001009015265706f727420766f7465722065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667920746865f465717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66f8616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63654477696c6c206265207265706f727465642e707265706f72745f65717569766f636174696f6e5f756e7369676e656408014865717569766f636174696f6e5f70726f6f66990201bc426f783c45717569766f636174696f6e50726f6f663c543a3a486173682c20543a3a426c6f636b4e756d6265723e3e00013c6b65795f6f776e65725f70726f6f662d020140543a3a4b65794f776e657250726f6f6600012409015265706f727420766f7465722065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667920746865f465717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66f8616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63654477696c6c206265207265706f727465642e000d01546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c791501626c6f636b20617574686f72732077696c6c2063616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c2061732073756368150169662074686520626c6f636b20617574686f7220697320646566696e65642069742077696c6c20626520646566696e6564206173207468652065717569766f636174696f6e247265706f727465722e306e6f74655f7374616c6c656408011464656c6179100138543a3a426c6f636b4e756d62657200016c626573745f66696e616c697a65645f626c6f636b5f6e756d626572100138543a3a426c6f636b4e756d62657200021c19014e6f74652074686174207468652063757272656e7420617574686f7269747920736574206f6620746865204752414e4450412066696e616c697479206761646765742068617325017374616c6c65642e20546869732077696c6c2074726967676572206120666f7263656420617574686f7269747920736574206368616e67652061742074686520626567696e6e696e671d016f6620746865206e6578742073657373696f6e2c20746f20626520656e6163746564206064656c61796020626c6f636b7320616674657220746861742e205468652064656c6179110173686f756c64206265206869676820656e6f75676820746f20736166656c7920617373756d6520746861742074686520626c6f636b207369676e616c6c696e67207468652501666f72636564206368616e67652077696c6c206e6f742062652072652d6f726765642028652e672e203130303020626c6f636b73292e20546865204752414e44504120766f74657273250177696c6c20737461727420746865206e657720617574686f7269747920736574207573696e672074686520676976656e2066696e616c697a656420626c6f636b20617320626173652e584f6e6c792063616c6c61626c6520627920726f6f742e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e9902084c73705f66696e616c6974795f6772616e6470614445717569766f636174696f6e50726f6f660804480124044e0110000801187365745f6964200114536574496400013065717569766f636174696f6e9d02014845717569766f636174696f6e3c482c204e3e00009d02084c73705f66696e616c6974795f6772616e6470613045717569766f636174696f6e0804480124044e011001081c507265766f74650400a1020139016772616e6470613a3a45717569766f636174696f6e3c417574686f7269747949642c206772616e6470613a3a507265766f74653c482c204e3e2c0a417574686f726974795369676e61747572653e00000024507265636f6d6d69740400b5020141016772616e6470613a3a45717569766f636174696f6e3c417574686f7269747949642c206772616e6470613a3a507265636f6d6d69743c482c204e3e2c0a417574686f726974795369676e61747572653e00010000a102084066696e616c6974795f6772616e6470613045717569766f636174696f6e0c08496401ac045601a502045301a90200100130726f756e645f6e756d62657220010c7536340001206964656e74697479ac010849640001146669727374b102011828562c2053290001187365636f6e64b102011828562c2053290000a502084066696e616c6974795f6772616e6470611c507265766f74650804480124044e01100008012c7461726765745f68617368240104480001347461726765745f6e756d6265721001044e0000a9020c4c73705f66696e616c6974795f6772616e6470610c617070245369676e617475726500000400ad020148656432353531393a3a5369676e61747572650000ad020c1c73705f636f72651c65643235353139245369676e617475726500000400610101205b75383b2036345d0000b10200000408a502a90200b502084066696e616c6974795f6772616e6470613045717569766f636174696f6e0c08496401ac045601b902045301a90200100130726f756e645f6e756d62657220010c7536340001206964656e74697479ac010849640001146669727374bd02011828562c2053290001187365636f6e64bd02011828562c2053290000b902084066696e616c6974795f6772616e64706124507265636f6d6d69740804480124044e01100008012c7461726765745f68617368240104480001347461726765745f6e756d6265721001044e0000bd0200000408b902a90200c1020c4070616c6c65745f696d5f6f6e6c696e651870616c6c65741043616c6c04045400010424686561727462656174080124686561727462656174c50201644865617274626561743c543a3a426c6f636b4e756d6265723e0001247369676e6174757265d90201bc3c543a3a417574686f7269747949642061732052756e74696d654170705075626c69633e3a3a5369676e61747572650000242823203c7765696768743e61012d20436f6d706c65786974793a20604f284b202b20452960207768657265204b206973206c656e677468206f6620604b6579736020286865617274626561742e76616c696461746f72735f6c656e2920616e642045206973d820206c656e677468206f6620606865617274626561742e6e6574776f726b5f73746174652e65787465726e616c5f61646472657373608820202d20604f284b29603a206465636f64696e67206f66206c656e67746820604b60ac20202d20604f284529603a206465636f64696e672f656e636f64696e67206f66206c656e6774682060456039012d20446252656164733a2070616c6c65745f73657373696f6e206056616c696461746f7273602c2070616c6c65745f73657373696f6e206043757272656e74496e646578602c20604b657973602c5820206052656365697665644865617274626561747360802d2044625772697465733a2060526563656976656448656172746265617473602c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ec502084070616c6c65745f696d5f6f6e6c696e6524486561727462656174042c426c6f636b4e756d626572011000140130626c6f636b5f6e756d62657210012c426c6f636b4e756d6265720001346e6574776f726b5f7374617465c90201484f70617175654e6574776f726b537461746500013473657373696f6e5f696e64657810013053657373696f6e496e64657800013c617574686f726974795f696e64657810012441757468496e64657800013876616c696461746f72735f6c656e10010c7533320000c9020c1c73705f636f7265206f6666636861696e484f70617175654e6574776f726b5374617465000008011c706565725f6964cd0201304f706171756550656572496400014865787465726e616c5f616464726573736573d10201505665633c4f70617175654d756c7469616464723e0000cd02081c73705f636f7265304f70617175655065657249640000040028011c5665633c75383e0000d102000002d50200d5020c1c73705f636f7265206f6666636861696e3c4f70617175654d756c7469616464720000040028011c5665633c75383e0000d902104070616c6c65745f696d5f6f6e6c696e651c737232353531392c6170705f73723235353139245369676e6174757265000004005d010148737232353531393a3a5369676e61747572650000dd020c4070616c6c65745f64656d6f63726163791870616c6c65741043616c6c0404540001641c70726f706f736508013470726f706f73616c5f6861736824011c543a3a4861736800011476616c7565cc013042616c616e63654f663c543e00002c9c50726f706f736520612073656e73697469766520616374696f6e20746f2062652074616b656e2e001501546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737480686176652066756e647320746f20636f76657220746865206465706f7369742e00d42d206070726f706f73616c5f68617368603a205468652068617368206f66207468652070726f706f73616c20707265696d6167652e15012d206076616c7565603a2054686520616d6f756e74206f66206465706f73697420286d757374206265206174206c6561737420604d696e696d756d4465706f73697460292e0044456d697473206050726f706f736564602e00385765696768743a20604f28702960187365636f6e6408012070726f706f73616cad01012450726f70496e64657800014c7365636f6e64735f75707065725f626f756e64ad01010c753332000128b45369676e616c732061677265656d656e742077697468206120706172746963756c61722070726f706f73616c2e000101546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e64657211016d75737420686176652066756e647320746f20636f76657220746865206465706f7369742c20657175616c20746f20746865206f726967696e616c206465706f7369742e00c82d206070726f706f73616c603a2054686520696e646578206f66207468652070726f706f73616c20746f207365636f6e642e41012d20607365636f6e64735f75707065725f626f756e64603a20616e20757070657220626f756e64206f6e207468652063757272656e74206e756d626572206f66207365636f6e6473206f6e20746869732501202070726f706f73616c2e2045787472696e736963206973207765696768746564206163636f7264696e6720746f20746869732076616c75652077697468206e6f20726566756e642e001d015765696768743a20604f28532960207768657265205320697320746865206e756d626572206f66207365636f6e647320612070726f706f73616c20616c7265616479206861732e10766f74650801247265665f696e646578ad01013c5265666572656e64756d496e646578000110766f7465e10201644163636f756e74566f74653c42616c616e63654f663c543e3e0002243101566f746520696e2061207265666572656e64756d2e2049662060766f74652e69735f6179652829602c2074686520766f746520697320746f20656e616374207468652070726f706f73616c3bb86f7468657277697365206974206973206120766f746520746f206b65657020746865207374617475732071756f2e00c8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00dc2d20607265665f696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f20766f746520666f722e842d2060766f7465603a2054686520766f746520636f6e66696775726174696f6e2e002d015765696768743a20604f28522960207768657265205220697320746865206e756d626572206f66207265666572656e64756d732074686520766f7465722068617320766f746564206f6e2e40656d657267656e63795f63616e63656c0401247265665f696e64657810013c5265666572656e64756d496e6465780003204d015363686564756c6520616e20656d657267656e63792063616e63656c6c6174696f6e206f662061207265666572656e64756d2e2043616e6e6f742068617070656e20747769636520746f207468652073616d652c7265666572656e64756d2e00f8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265206043616e63656c6c6174696f6e4f726967696e602e00d02d607265665f696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f2063616e63656c2e003c5765696768743a20604f283129602e4065787465726e616c5f70726f706f736504013470726f706f73616c5f6861736824011c543a3a486173680004242d015363686564756c652061207265666572656e64756d20746f206265207461626c6564206f6e6365206974206973206c6567616c20746f207363686564756c6520616e2065787465726e616c2c7265666572656e64756d2e00e8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265206045787465726e616c4f726967696e602e00d42d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f66207468652070726f706f73616c2e0015015765696768743a20604f2856296020776974682056206e756d626572206f66207665746f65727320696e2074686520626c61636b6c697374206f662070726f706f73616c2eb820204465636f64696e6720766563206f66206c656e67746820562e2043686172676564206173206d6178696d756d6465787465726e616c5f70726f706f73655f6d616a6f7269747904013470726f706f73616c5f6861736824011c543a3a4861736800052c55015363686564756c652061206d616a6f726974792d63617272696573207265666572656e64756d20746f206265207461626c6564206e657874206f6e6365206974206973206c6567616c20746f207363686564756c655c616e2065787465726e616c207265666572656e64756d2e00ec546865206469737061746368206f6620746869732063616c6c206d757374206265206045787465726e616c4d616a6f726974794f726967696e602e00d42d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f66207468652070726f706f73616c2e004901556e6c696b65206065787465726e616c5f70726f706f7365602c20626c61636b6c697374696e6720686173206e6f20656666656374206f6e207468697320616e64206974206d6179207265706c6163652061987072652d7363686564756c6564206065787465726e616c5f70726f706f7365602063616c6c2e00385765696768743a20604f283129606065787465726e616c5f70726f706f73655f64656661756c7404013470726f706f73616c5f6861736824011c543a3a4861736800062c45015363686564756c652061206e656761746976652d7475726e6f75742d62696173207265666572656e64756d20746f206265207461626c6564206e657874206f6e6365206974206973206c6567616c20746f807363686564756c6520616e2065787465726e616c207265666572656e64756d2e00e8546865206469737061746368206f6620746869732063616c6c206d757374206265206045787465726e616c44656661756c744f726967696e602e00d42d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f66207468652070726f706f73616c2e004901556e6c696b65206065787465726e616c5f70726f706f7365602c20626c61636b6c697374696e6720686173206e6f20656666656374206f6e207468697320616e64206974206d6179207265706c6163652061987072652d7363686564756c6564206065787465726e616c5f70726f706f7365602063616c6c2e00385765696768743a20604f2831296028666173745f747261636b0c013470726f706f73616c5f6861736824011c543a3a48617368000134766f74696e675f706572696f64100138543a3a426c6f636b4e756d62657200011464656c6179100138543a3a426c6f636b4e756d62657200073c4d015363686564756c65207468652063757272656e746c792065787465726e616c6c792d70726f706f736564206d616a6f726974792d63617272696573207265666572656e64756d20746f206265207461626c65646101696d6d6564696174656c792e204966207468657265206973206e6f2065787465726e616c6c792d70726f706f736564207265666572656e64756d2063757272656e746c792c206f72206966207468657265206973206f6e65e8627574206974206973206e6f742061206d616a6f726974792d63617272696573207265666572656e64756d207468656e206974206661696c732e00d0546865206469737061746368206f6620746869732063616c6c206d757374206265206046617374547261636b4f726967696e602e00f42d206070726f706f73616c5f68617368603a205468652068617368206f66207468652063757272656e742065787465726e616c2070726f706f73616c2e5d012d2060766f74696e675f706572696f64603a2054686520706572696f64207468617420697320616c6c6f77656420666f7220766f74696e67206f6e20746869732070726f706f73616c2e20496e6372656173656420746f9420206046617374547261636b566f74696e67506572696f646020696620746f6f206c6f772e51012d206064656c6179603a20546865206e756d626572206f6620626c6f636b20616674657220766f74696e672068617320656e64656420696e20617070726f76616c20616e6420746869732073686f756c64206265b82020656e61637465642e205468697320646f65736e277420686176652061206d696e696d756d20616d6f756e742e0040456d697473206053746172746564602e00385765696768743a20604f28312960347665746f5f65787465726e616c04013470726f706f73616c5f6861736824011c543a3a48617368000824b85665746f20616e6420626c61636b6c697374207468652065787465726e616c2070726f706f73616c20686173682e00d8546865206469737061746368206f726967696e206f6620746869732063616c6c206d75737420626520605665746f4f726967696e602e002d012d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f66207468652070726f706f73616c20746f207665746f20616e6420626c61636b6c6973742e003c456d69747320605665746f6564602e00fc5765696768743a20604f2856202b206c6f6728562929602077686572652056206973206e756d626572206f6620606578697374696e67207665746f657273604463616e63656c5f7265666572656e64756d0401247265665f696e646578ad01013c5265666572656e64756d496e64657800091c5052656d6f76652061207265666572656e64756d2e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f526f6f745f2e00d42d20607265665f696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f2063616e63656c2e004423205765696768743a20604f283129602e3463616e63656c5f717565756564040114776869636810013c5265666572656e64756d496e646578000a1c9c43616e63656c20612070726f706f73616c2071756575656420666f7220656e6163746d656e742e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f526f6f745f2e00c42d20607768696368603a2054686520696e646578206f6620746865207265666572656e64756d20746f2063616e63656c2e0049015765696768743a20604f284429602077686572652060446020697320746865206974656d7320696e207468652064697370617463682071756575652e205765696768746564206173206044203d203130602e2064656c65676174650c0108746f000130543a3a4163636f756e744964000128636f6e76696374696f6ee9020128436f6e76696374696f6e00011c62616c616e636518013042616c616e63654f663c543e000b50390144656c65676174652074686520766f74696e6720706f77657220287769746820736f6d6520676976656e20636f6e76696374696f6e29206f66207468652073656e64696e67206163636f756e742e0055015468652062616c616e63652064656c656761746564206973206c6f636b656420666f72206173206c6f6e6720617320697427732064656c6567617465642c20616e64207468657265616674657220666f7220746865c874696d6520617070726f70726961746520666f722074686520636f6e76696374696f6e2773206c6f636b20706572696f642e005d01546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2c20616e6420746865207369676e696e67206163636f756e74206d757374206569746865723a7420202d2062652064656c65676174696e6720616c72656164793b206f72590120202d2068617665206e6f20766f74696e67206163746976697479202869662074686572652069732c207468656e2069742077696c6c206e65656420746f2062652072656d6f7665642f636f6e736f6c69646174656494202020207468726f7567682060726561705f766f746560206f722060756e766f746560292e0045012d2060746f603a20546865206163636f756e742077686f736520766f74696e6720746865206074617267657460206163636f756e74277320766f74696e6720706f7765722077696c6c20666f6c6c6f772e55012d2060636f6e76696374696f6e603a2054686520636f6e76696374696f6e20746861742077696c6c20626520617474616368656420746f207468652064656c65676174656420766f7465732e205768656e20746865410120206163636f756e7420697320756e64656c6567617465642c207468652066756e64732077696c6c206265206c6f636b656420666f722074686520636f72726573706f6e64696e6720706572696f642e61012d206062616c616e6365603a2054686520616d6f756e74206f6620746865206163636f756e7427732062616c616e636520746f206265207573656420696e2064656c65676174696e672e2054686973206d757374206e6f74b420206265206d6f7265207468616e20746865206163636f756e7427732063757272656e742062616c616e63652e0048456d697473206044656c656761746564602e003d015765696768743a20604f28522960207768657265205220697320746865206e756d626572206f66207265666572656e64756d732074686520766f7465722064656c65676174696e6720746f20686173c82020766f746564206f6e2e205765696768742069732063686172676564206173206966206d6178696d756d20766f7465732e28756e64656c6567617465000c30cc556e64656c65676174652074686520766f74696e6720706f776572206f66207468652073656e64696e67206163636f756e742e005d01546f6b656e73206d617920626520756e6c6f636b656420666f6c6c6f77696e67206f6e636520616e20616d6f756e74206f662074696d6520636f6e73697374656e74207769746820746865206c6f636b20706572696f64dc6f662074686520636f6e76696374696f6e2077697468207768696368207468652064656c65676174696f6e20776173206973737565642e004501546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d7573742062655463757272656e746c792064656c65676174696e672e0050456d6974732060556e64656c656761746564602e003d015765696768743a20604f28522960207768657265205220697320746865206e756d626572206f66207265666572656e64756d732074686520766f7465722064656c65676174696e6720746f20686173c82020766f746564206f6e2e205765696768742069732063686172676564206173206966206d6178696d756d20766f7465732e58636c6561725f7075626c69635f70726f706f73616c73000d1470436c6561727320616c6c207075626c69632070726f706f73616c732e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f526f6f745f2e003c5765696768743a20604f283129602e346e6f74655f707265696d616765040140656e636f6465645f70726f706f73616c28011c5665633c75383e000e285d0152656769737465722074686520707265696d61676520666f7220616e207570636f6d696e672070726f706f73616c2e205468697320646f65736e27742072657175697265207468652070726f706f73616c20746f2062652101696e207468652064697370617463682071756575652062757420646f657320726571756972652061206465706f7369742c2072657475726e6564206f6e636520656e61637465642e00c8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00c42d2060656e636f6465645f70726f706f73616c603a2054686520707265696d616765206f6620612070726f706f73616c2e0058456d6974732060507265696d6167654e6f746564602e004d015765696768743a20604f28452960207769746820452073697a65206f662060656e636f6465645f70726f706f73616c60202870726f7465637465642062792061207265717569726564206465706f736974292e646e6f74655f707265696d6167655f6f7065726174696f6e616c040140656e636f6465645f70726f706f73616c28011c5665633c75383e000f04090153616d6520617320606e6f74655f707265696d6167656020627574206f726967696e20697320604f7065726174696f6e616c507265696d6167654f726967696e602e586e6f74655f696d6d696e656e745f707265696d616765040140656e636f6465645f70726f706f73616c28011c5665633c75383e001030410152656769737465722074686520707265696d61676520666f7220616e207570636f6d696e672070726f706f73616c2e2054686973207265717569726573207468652070726f706f73616c20746f2062653d01696e207468652064697370617463682071756575652e204e6f206465706f736974206973206e65656465642e205768656e20746869732063616c6c206973207375636365737366756c2c20692e652e350174686520707265696d61676520686173206e6f74206265656e2075706c6f61646564206265666f726520616e64206d61746368657320736f6d6520696d6d696e656e742070726f706f73616c2c3c6e6f2066656520697320706169642e00c8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00c42d2060656e636f6465645f70726f706f73616c603a2054686520707265696d616765206f6620612070726f706f73616c2e0058456d6974732060507265696d6167654e6f746564602e004d015765696768743a20604f28452960207769746820452073697a65206f662060656e636f6465645f70726f706f73616c60202870726f7465637465642062792061207265717569726564206465706f736974292e886e6f74655f696d6d696e656e745f707265696d6167655f6f7065726174696f6e616c040140656e636f6465645f70726f706f73616c28011c5665633c75383e0011042d0153616d6520617320606e6f74655f696d6d696e656e745f707265696d6167656020627574206f726967696e20697320604f7065726174696f6e616c507265696d6167654f726967696e602e34726561705f707265696d61676508013470726f706f73616c5f6861736824011c543a3a4861736800016070726f706f73616c5f6c656e5f75707065725f626f756e64ad01010c75333200123cf052656d6f766520616e20657870697265642070726f706f73616c20707265696d61676520616e6420636f6c6c65637420746865206465706f7369742e00c8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00cc2d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f6620612070726f706f73616c2e5d012d206070726f706f73616c5f6c656e6774685f75707065725f626f756e64603a20616e20757070657220626f756e64206f6e206c656e677468206f66207468652070726f706f73616c2e2045787472696e736963206973c820207765696768746564206163636f7264696e6720746f20746869732076616c75652077697468206e6f20726566756e642e004d01546869732077696c6c206f6e6c7920776f726b2061667465722060566f74696e67506572696f646020626c6f636b732066726f6d207468652074696d6520746861742074686520707265696d6167652077617359016e6f7465642c2069662069742773207468652073616d65206163636f756e7420646f696e672069742e2049662069742773206120646966666572656e74206163636f756e742c207468656e206974276c6c206f6e6c79ac776f726b20616e206164646974696f6e616c2060456e6163746d656e74506572696f6460206c617465722e005c456d6974732060507265696d616765526561706564602e00b45765696768743a20604f284429602077686572652044206973206c656e677468206f662070726f706f73616c2e18756e6c6f636b040118746172676574000130543a3a4163636f756e74496400131ca0556e6c6f636b20746f6b656e732074686174206861766520616e2065787069726564206c6f636b2e00c8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00b82d2060746172676574603a20546865206163636f756e7420746f2072656d6f766520746865206c6f636b206f6e2e00bc5765696768743a20604f2852296020776974682052206e756d626572206f6620766f7465206f66207461726765742e2c72656d6f76655f766f7465040114696e64657810013c5265666572656e64756d496e64657800146c7c52656d6f7665206120766f746520666f722061207265666572656e64756d2e000c49663a882d20746865207265666572656e64756d207761732063616e63656c6c65642c206f727c2d20746865207265666572656e64756d206973206f6e676f696e672c206f72902d20746865207265666572656e64756d2068617320656e64656420737563682074686174fc20202d2074686520766f7465206f6620746865206163636f756e742077617320696e206f70706f736974696f6e20746f2074686520726573756c743b206f72d420202d20746865726520776173206e6f20636f6e76696374696f6e20746f20746865206163636f756e74277320766f74653b206f728420202d20746865206163636f756e74206d61646520612073706c697420766f74655d012e2e2e7468656e2074686520766f74652069732072656d6f76656420636c65616e6c7920616e64206120666f6c6c6f77696e672063616c6c20746f2060756e6c6f636b60206d617920726573756c7420696e206d6f72655866756e6473206265696e6720617661696c61626c652e00a849662c20686f77657665722c20746865207265666572656e64756d2068617320656e64656420616e643aec2d2069742066696e697368656420636f72726573706f6e64696e6720746f2074686520766f7465206f6620746865206163636f756e742c20616e64dc2d20746865206163636f756e74206d6164652061207374616e6461726420766f7465207769746820636f6e76696374696f6e2c20616e64bc2d20746865206c6f636b20706572696f64206f662074686520636f6e76696374696f6e206973206e6f74206f76657259012e2e2e7468656e20746865206c6f636b2077696c6c206265206167677265676174656420696e746f20746865206f766572616c6c206163636f756e742773206c6f636b2c207768696368206d617920696e766f6c766559012a6f7665726c6f636b696e672a20287768657265207468652074776f206c6f636b732061726520636f6d62696e656420696e746f20612073696e676c65206c6f636b207468617420697320746865206d6178696d756de46f6620626f74682074686520616d6f756e74206c6f636b656420616e64207468652074696d65206973206974206c6f636b656420666f72292e004901546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2c20616e6420746865207369676e6572206d7573742068617665206120766f7465887265676973746572656420666f72207265666572656e64756d2060696e646578602e00f42d2060696e646578603a2054686520696e646578206f66207265666572656e64756d206f662074686520766f746520746f2062652072656d6f7665642e0055015765696768743a20604f2852202b206c6f6720522960207768657265205220697320746865206e756d626572206f66207265666572656e646120746861742060746172676574602068617320766f746564206f6e2ed820205765696768742069732063616c63756c6174656420666f7220746865206d6178696d756d206e756d626572206f6620766f74652e4472656d6f76655f6f746865725f766f7465080118746172676574000130543a3a4163636f756e744964000114696e64657810013c5265666572656e64756d496e64657800153c7c52656d6f7665206120766f746520666f722061207265666572656e64756d2e004d0149662074686520607461726765746020697320657175616c20746f20746865207369676e65722c207468656e20746869732066756e6374696f6e2069732065786163746c79206571756976616c656e7420746f2d016072656d6f76655f766f7465602e204966206e6f7420657175616c20746f20746865207369676e65722c207468656e2074686520766f7465206d757374206861766520657870697265642c5501656974686572206265636175736520746865207265666572656e64756d207761732063616e63656c6c65642c20626563617573652074686520766f746572206c6f737420746865207265666572656e64756d206f7298626563617573652074686520636f6e76696374696f6e20706572696f64206973206f7665722e00c8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e004d012d2060746172676574603a20546865206163636f756e74206f662074686520766f746520746f2062652072656d6f7665643b2074686973206163636f756e74206d757374206861766520766f74656420666f725420207265666572656e64756d2060696e646578602ef42d2060696e646578603a2054686520696e646578206f66207265666572656e64756d206f662074686520766f746520746f2062652072656d6f7665642e0055015765696768743a20604f2852202b206c6f6720522960207768657265205220697320746865206e756d626572206f66207265666572656e646120746861742060746172676574602068617320766f746564206f6e2ed820205765696768742069732063616c63756c6174656420666f7220746865206d6178696d756d206e756d626572206f6620766f74652e38656e6163745f70726f706f73616c08013470726f706f73616c5f6861736824011c543a3a48617368000114696e64657810013c5265666572656e64756d496e6465780016044d01456e61637420612070726f706f73616c2066726f6d2061207265666572656e64756d2e20466f72206e6f77207765206a757374206d616b65207468652077656967687420626520746865206d6178696d756d2e24626c61636b6c69737408013470726f706f73616c5f6861736824011c543a3a4861736800013c6d617962655f7265665f696e6465787902015c4f7074696f6e3c5265666572656e64756d496e6465783e00173c45015065726d616e656e746c7920706c61636520612070726f706f73616c20696e746f2074686520626c61636b6c6973742e20546869732070726576656e74732069742066726f6d2065766572206265696e673c70726f706f73656420616761696e2e00510149662063616c6c6564206f6e206120717565756564207075626c6963206f722065787465726e616c2070726f706f73616c2c207468656e20746869732077696c6c20726573756c7420696e206974206265696e67510172656d6f7665642e2049662074686520607265665f696e6465786020737570706c69656420697320616e20616374697665207265666572656e64756d2077697468207468652070726f706f73616c20686173682c687468656e2069742077696c6c2062652063616e63656c6c65642e00ec546865206469737061746368206f726967696e206f6620746869732063616c6c206d7573742062652060426c61636b6c6973744f726967696e602e00f82d206070726f706f73616c5f68617368603a205468652070726f706f73616c206861736820746f20626c61636b6c697374207065726d616e656e746c792e45012d20607265665f696e646578603a20416e206f6e676f696e67207265666572656e64756d2077686f73652068617368206973206070726f706f73616c5f68617368602c2077686963682077696c6c2062652863616e63656c6c65642e0041015765696768743a20604f28702960202874686f756768206173207468697320697320616e20686967682d70726976696c6567652064697370617463682c20776520617373756d65206974206861732061502020726561736f6e61626c652076616c7565292e3c63616e63656c5f70726f706f73616c04012870726f705f696e646578ad01012450726f70496e64657800181c4852656d6f766520612070726f706f73616c2e000101546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265206043616e63656c50726f706f73616c4f726967696e602e00d02d206070726f705f696e646578603a2054686520696e646578206f66207468652070726f706f73616c20746f2063616e63656c2e00e45765696768743a20604f28702960207768657265206070203d205075626c696350726f70733a3a3c543e3a3a6465636f64655f6c656e282960042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ee1020c4070616c6c65745f64656d6f637261637910766f74652c4163636f756e74566f7465041c42616c616e636501180108205374616e64617264080110766f7465e5020110566f746500011c62616c616e636518011c42616c616e63650000001453706c697408010c61796518011c42616c616e636500010c6e617918011c42616c616e636500010000e5020c4070616c6c65745f64656d6f637261637910766f746510566f74650000040008000000e9020c4070616c6c65745f64656d6f637261637928636f6e76696374696f6e28436f6e76696374696f6e00011c104e6f6e65000000204c6f636b65643178000100204c6f636b65643278000200204c6f636b65643378000300204c6f636b65643478000400204c6f636b65643578000500204c6f636b6564367800060000ed020c4470616c6c65745f636f6c6c6563746976651870616c6c65741043616c6c0804540004490001182c7365745f6d656d626572730c012c6e65775f6d656d62657273dc01445665633c543a3a4163636f756e7449643e0001147072696d65f10201504f7074696f6e3c543a3a4163636f756e7449643e0001246f6c645f636f756e7410012c4d656d626572436f756e74000064805365742074686520636f6c6c6563746976652773206d656d626572736869702e0045012d20606e65775f6d656d62657273603a20546865206e6577206d656d626572206c6973742e204265206e69636520746f2074686520636861696e20616e642070726f7669646520697420736f727465642ee02d20607072696d65603a20546865207072696d65206d656d6265722077686f736520766f74652073657473207468652064656661756c742e59012d20606f6c645f636f756e74603a2054686520757070657220626f756e6420666f72207468652070726576696f7573206e756d626572206f66206d656d6265727320696e2073746f726167652e205573656420666f7250202077656967687420657374696d6174696f6e2e0054526571756972657320726f6f74206f726967696e2e0051014e4f54453a20446f6573206e6f7420656e666f7263652074686520657870656374656420604d61784d656d6265727360206c696d6974206f6e2074686520616d6f756e74206f66206d656d626572732c2062757421012020202020207468652077656967687420657374696d6174696f6e732072656c79206f6e20697420746f20657374696d61746520646973706174636861626c65207765696768742e002823203c7765696768743e24232320576569676874502d20604f284d50202b204e29602077686572653ae020202d20604d60206f6c642d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429e020202d20604e60206e65772d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e646564299820202d206050602070726f706f73616c732d636f756e742028636f64652d626f756e64656429142d2044423a510120202d20312073746f72616765206d75746174696f6e2028636f64656320604f284d296020726561642c20604f284e29602077726974652920666f722072656164696e6720616e642077726974696e67207468652c202020206d656d62657273ec20202d20312073746f7261676520726561642028636f64656320604f285029602920666f722072656164696e67207468652070726f706f73616c73450120202d206050602073746f72616765206d75746174696f6e732028636f64656320604f284d29602920666f72207570646174696e672074686520766f74657320666f7220656163682070726f706f73616c5d0120202d20312073746f726167652077726974652028636f64656320604f283129602920666f722064656c6574696e6720746865206f6c6420607072696d656020616e642073657474696e6720746865206e6577206f6e652c23203c2f7765696768743e1c6578656375746508012070726f706f73616c0902017c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e0001306c656e6774685f626f756e64ad01010c75333200012cf0446973706174636820612070726f706f73616c2066726f6d2061206d656d626572207573696e672074686520604d656d62657260206f726967696e2e00a84f726967696e206d7573742062652061206d656d626572206f662074686520636f6c6c6563746976652e002823203c7765696768743e2423232057656967687455012d20604f284d202b2050296020776865726520604d60206d656d626572732d636f756e742028636f64652d626f756e6465642920616e642060506020636f6d706c6578697479206f66206469737061746368696e673020206070726f706f73616c60d42d2044423a203120726561642028636f64656320604f284d296029202b20444220616363657373206f66206070726f706f73616c60242d2031206576656e742c23203c2f7765696768743e1c70726f706f73650c01247468726573686f6c64ad01012c4d656d626572436f756e7400012070726f706f73616c0902017c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e0001306c656e6774685f626f756e64ad01010c75333200026cf84164642061206e65772070726f706f73616c20746f2065697468657220626520766f746564206f6e206f72206578656375746564206469726563746c792e00845265717569726573207468652073656e64657220746f206265206d656d6265722e004101607468726573686f6c64602064657465726d696e65732077686574686572206070726f706f73616c60206973206578656375746564206469726563746c792028607468726573686f6c64203c20326029546f722070757420757020666f7220766f74696e672e002823203c7765696768743e24232320576569676874ac2d20604f2842202b204d202b2050312960206f7220604f2842202b204d202b20503229602077686572653ae020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429dc20202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429c420202d206272616e6368696e6720697320696e666c75656e63656420627920607468726573686f6c64602077686572653af4202020202d20605031602069732070726f706f73616c20657865637574696f6e20636f6d706c65786974792028607468726573686f6c64203c20326029fc202020202d20605032602069732070726f706f73616c732d636f756e742028636f64652d626f756e646564292028607468726573686f6c64203e3d20326029142d2044423ab420202d20312073746f726167652072656164206069735f6d656d626572602028636f64656320604f284d296029f020202d20312073746f726167652072656164206050726f706f73616c4f663a3a636f6e7461696e735f6b6579602028636f64656320604f2831296029a820202d20444220616363657373657320696e666c75656e63656420627920607468726573686f6c64603a0901202020202d204549544845522073746f7261676520616363657373657320646f6e65206279206070726f706f73616c602028607468726573686f6c64203c20326029b8202020202d204f522070726f706f73616c20696e73657274696f6e2028607468726573686f6c64203c3d20326029d82020202020202d20312073746f72616765206d75746174696f6e206050726f706f73616c73602028636f64656320604f285032296029e42020202020202d20312073746f72616765206d75746174696f6e206050726f706f73616c436f756e74602028636f64656320604f2831296029cc2020202020202d20312073746f72616765207772697465206050726f706f73616c4f66602028636f64656320604f2842296029bc2020202020202d20312073746f726167652077726974652060566f74696e67602028636f64656320604f284d2960292c20202d2031206576656e742c23203c2f7765696768743e10766f74650c012070726f706f73616c24011c543a3a48617368000114696e646578ad01013450726f706f73616c496e64657800011c617070726f7665e80110626f6f6c00033cf041646420616e20617965206f72206e617920766f746520666f72207468652073656e64657220746f2074686520676976656e2070726f706f73616c2e008c5265717569726573207468652073656e64657220746f2062652061206d656d6265722e0049015472616e73616374696f6e20666565732077696c6c2062652077616976656420696620746865206d656d62657220697320766f74696e67206f6e20616e7920706172746963756c61722070726f706f73616c5101666f72207468652066697273742074696d6520616e64207468652063616c6c206973207375636365737366756c2e2053756273657175656e7420766f7465206368616e6765732077696c6c206368617267652061106665652e2823203c7765696768743e2423232057656967687409012d20604f284d296020776865726520604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429142d2044423aac20202d20312073746f72616765207265616420604d656d62657273602028636f64656320604f284d296029b820202d20312073746f72616765206d75746174696f6e2060566f74696e67602028636f64656320604f284d296029242d2031206576656e742c23203c2f7765696768743e14636c6f736510013470726f706f73616c5f6861736824011c543a3a48617368000114696e646578ad01013450726f706f73616c496e64657800015470726f706f73616c5f7765696768745f626f756e64410201185765696768740001306c656e6774685f626f756e64ad01010c7533320004804d01436c6f7365206120766f746520746861742069732065697468657220617070726f7665642c20646973617070726f766564206f722077686f736520766f74696e6720706572696f642068617320656e6465642e0055014d61792062652063616c6c656420627920616e79207369676e6564206163636f756e7420696e206f7264657220746f2066696e69736820766f74696e6720616e6420636c6f7365207468652070726f706f73616c2e00490149662063616c6c6564206265666f72652074686520656e64206f662074686520766f74696e6720706572696f642069742077696c6c206f6e6c7920636c6f73652074686520766f7465206966206974206973bc68617320656e6f75676820766f74657320746f20626520617070726f766564206f7220646973617070726f7665642e00490149662063616c6c65642061667465722074686520656e64206f662074686520766f74696e6720706572696f642061627374656e74696f6e732061726520636f756e7465642061732072656a656374696f6e732501756e6c6573732074686572652069732061207072696d65206d656d6265722073657420616e6420746865207072696d65206d656d626572206361737420616e20617070726f76616c2e00610149662074686520636c6f7365206f7065726174696f6e20636f6d706c65746573207375636365737366756c6c79207769746820646973617070726f76616c2c20746865207472616e73616374696f6e206665652077696c6c5d016265207761697665642e204f746865727769736520657865637574696f6e206f662074686520617070726f766564206f7065726174696f6e2077696c6c206265206368617267656420746f207468652063616c6c65722e0061012b206070726f706f73616c5f7765696768745f626f756e64603a20546865206d6178696d756d20616d6f756e74206f662077656967687420636f6e73756d656420627920657865637574696e672074686520636c6f7365642470726f706f73616c2e61012b20606c656e6774685f626f756e64603a2054686520757070657220626f756e6420666f7220746865206c656e677468206f66207468652070726f706f73616c20696e2073746f726167652e20436865636b65642076696135016073746f726167653a3a726561646020736f206974206973206073697a655f6f663a3a3c7533323e2829203d3d203460206c6172676572207468616e207468652070757265206c656e6774682e002823203c7765696768743e24232320576569676874742d20604f2842202b204d202b205031202b20503229602077686572653ae020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429dc20202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429c820202d20605031602069732074686520636f6d706c6578697479206f66206070726f706f73616c6020707265696d6167652ea420202d20605032602069732070726f706f73616c2d636f756e742028636f64652d626f756e64656429142d2044423a0d01202d20322073746f726167652072656164732028604d656d62657273603a20636f64656320604f284d29602c20605072696d65603a20636f64656320604f28312960295901202d2033206d75746174696f6e73202860566f74696e67603a20636f64656320604f284d29602c206050726f706f73616c4f66603a20636f64656320604f284229602c206050726f706f73616c73603a20636f6465632c202020604f285032296029dc202d20616e79206d75746174696f6e7320646f6e65207768696c6520657865637574696e67206070726f706f73616c6020286050316029402d20757020746f2033206576656e74732c23203c2f7765696768743e4c646973617070726f76655f70726f706f73616c04013470726f706f73616c5f6861736824011c543a3a486173680005385901446973617070726f766520612070726f706f73616c2c20636c6f73652c20616e642072656d6f76652069742066726f6d207468652073797374656d2c207265676172646c657373206f66206974732063757272656e741873746174652e00884d7573742062652063616c6c65642062792074686520526f6f74206f726967696e2e002c506172616d65746572733a1d012a206070726f706f73616c5f68617368603a205468652068617368206f66207468652070726f706f73616c20746861742073686f756c6420626520646973617070726f7665642e002823203c7765696768743edc436f6d706c65786974793a204f285029207768657265205020697320746865206e756d626572206f66206d61782070726f706f73616c73284442205765696768743a482a2052656164733a2050726f706f73616c739c2a205772697465733a20566f74696e672c2050726f706f73616c732c2050726f706f73616c4f662c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ef10204184f7074696f6e04045401000108104e6f6e6500000010536f6d650400000000010000f5020c4470616c6c65745f636f6c6c6563746976651870616c6c65741043616c6c0804540004490001182c7365745f6d656d626572730c012c6e65775f6d656d62657273dc01445665633c543a3a4163636f756e7449643e0001147072696d65f10201504f7074696f6e3c543a3a4163636f756e7449643e0001246f6c645f636f756e7410012c4d656d626572436f756e74000064805365742074686520636f6c6c6563746976652773206d656d626572736869702e0045012d20606e65775f6d656d62657273603a20546865206e6577206d656d626572206c6973742e204265206e69636520746f2074686520636861696e20616e642070726f7669646520697420736f727465642ee02d20607072696d65603a20546865207072696d65206d656d6265722077686f736520766f74652073657473207468652064656661756c742e59012d20606f6c645f636f756e74603a2054686520757070657220626f756e6420666f72207468652070726576696f7573206e756d626572206f66206d656d6265727320696e2073746f726167652e205573656420666f7250202077656967687420657374696d6174696f6e2e0054526571756972657320726f6f74206f726967696e2e0051014e4f54453a20446f6573206e6f7420656e666f7263652074686520657870656374656420604d61784d656d6265727360206c696d6974206f6e2074686520616d6f756e74206f66206d656d626572732c2062757421012020202020207468652077656967687420657374696d6174696f6e732072656c79206f6e20697420746f20657374696d61746520646973706174636861626c65207765696768742e002823203c7765696768743e24232320576569676874502d20604f284d50202b204e29602077686572653ae020202d20604d60206f6c642d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429e020202d20604e60206e65772d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e646564299820202d206050602070726f706f73616c732d636f756e742028636f64652d626f756e64656429142d2044423a510120202d20312073746f72616765206d75746174696f6e2028636f64656320604f284d296020726561642c20604f284e29602077726974652920666f722072656164696e6720616e642077726974696e67207468652c202020206d656d62657273ec20202d20312073746f7261676520726561642028636f64656320604f285029602920666f722072656164696e67207468652070726f706f73616c73450120202d206050602073746f72616765206d75746174696f6e732028636f64656320604f284d29602920666f72207570646174696e672074686520766f74657320666f7220656163682070726f706f73616c5d0120202d20312073746f726167652077726974652028636f64656320604f283129602920666f722064656c6574696e6720746865206f6c6420607072696d656020616e642073657474696e6720746865206e6577206f6e652c23203c2f7765696768743e1c6578656375746508012070726f706f73616c0902017c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e0001306c656e6774685f626f756e64ad01010c75333200012cf0446973706174636820612070726f706f73616c2066726f6d2061206d656d626572207573696e672074686520604d656d62657260206f726967696e2e00a84f726967696e206d7573742062652061206d656d626572206f662074686520636f6c6c6563746976652e002823203c7765696768743e2423232057656967687455012d20604f284d202b2050296020776865726520604d60206d656d626572732d636f756e742028636f64652d626f756e6465642920616e642060506020636f6d706c6578697479206f66206469737061746368696e673020206070726f706f73616c60d42d2044423a203120726561642028636f64656320604f284d296029202b20444220616363657373206f66206070726f706f73616c60242d2031206576656e742c23203c2f7765696768743e1c70726f706f73650c01247468726573686f6c64ad01012c4d656d626572436f756e7400012070726f706f73616c0902017c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e0001306c656e6774685f626f756e64ad01010c75333200026cf84164642061206e65772070726f706f73616c20746f2065697468657220626520766f746564206f6e206f72206578656375746564206469726563746c792e00845265717569726573207468652073656e64657220746f206265206d656d6265722e004101607468726573686f6c64602064657465726d696e65732077686574686572206070726f706f73616c60206973206578656375746564206469726563746c792028607468726573686f6c64203c20326029546f722070757420757020666f7220766f74696e672e002823203c7765696768743e24232320576569676874ac2d20604f2842202b204d202b2050312960206f7220604f2842202b204d202b20503229602077686572653ae020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429dc20202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429c420202d206272616e6368696e6720697320696e666c75656e63656420627920607468726573686f6c64602077686572653af4202020202d20605031602069732070726f706f73616c20657865637574696f6e20636f6d706c65786974792028607468726573686f6c64203c20326029fc202020202d20605032602069732070726f706f73616c732d636f756e742028636f64652d626f756e646564292028607468726573686f6c64203e3d20326029142d2044423ab420202d20312073746f726167652072656164206069735f6d656d626572602028636f64656320604f284d296029f020202d20312073746f726167652072656164206050726f706f73616c4f663a3a636f6e7461696e735f6b6579602028636f64656320604f2831296029a820202d20444220616363657373657320696e666c75656e63656420627920607468726573686f6c64603a0901202020202d204549544845522073746f7261676520616363657373657320646f6e65206279206070726f706f73616c602028607468726573686f6c64203c20326029b8202020202d204f522070726f706f73616c20696e73657274696f6e2028607468726573686f6c64203c3d20326029d82020202020202d20312073746f72616765206d75746174696f6e206050726f706f73616c73602028636f64656320604f285032296029e42020202020202d20312073746f72616765206d75746174696f6e206050726f706f73616c436f756e74602028636f64656320604f2831296029cc2020202020202d20312073746f72616765207772697465206050726f706f73616c4f66602028636f64656320604f2842296029bc2020202020202d20312073746f726167652077726974652060566f74696e67602028636f64656320604f284d2960292c20202d2031206576656e742c23203c2f7765696768743e10766f74650c012070726f706f73616c24011c543a3a48617368000114696e646578ad01013450726f706f73616c496e64657800011c617070726f7665e80110626f6f6c00033cf041646420616e20617965206f72206e617920766f746520666f72207468652073656e64657220746f2074686520676976656e2070726f706f73616c2e008c5265717569726573207468652073656e64657220746f2062652061206d656d6265722e0049015472616e73616374696f6e20666565732077696c6c2062652077616976656420696620746865206d656d62657220697320766f74696e67206f6e20616e7920706172746963756c61722070726f706f73616c5101666f72207468652066697273742074696d6520616e64207468652063616c6c206973207375636365737366756c2e2053756273657175656e7420766f7465206368616e6765732077696c6c206368617267652061106665652e2823203c7765696768743e2423232057656967687409012d20604f284d296020776865726520604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429142d2044423aac20202d20312073746f72616765207265616420604d656d62657273602028636f64656320604f284d296029b820202d20312073746f72616765206d75746174696f6e2060566f74696e67602028636f64656320604f284d296029242d2031206576656e742c23203c2f7765696768743e14636c6f736510013470726f706f73616c5f6861736824011c543a3a48617368000114696e646578ad01013450726f706f73616c496e64657800015470726f706f73616c5f7765696768745f626f756e64410201185765696768740001306c656e6774685f626f756e64ad01010c7533320004804d01436c6f7365206120766f746520746861742069732065697468657220617070726f7665642c20646973617070726f766564206f722077686f736520766f74696e6720706572696f642068617320656e6465642e0055014d61792062652063616c6c656420627920616e79207369676e6564206163636f756e7420696e206f7264657220746f2066696e69736820766f74696e6720616e6420636c6f7365207468652070726f706f73616c2e00490149662063616c6c6564206265666f72652074686520656e64206f662074686520766f74696e6720706572696f642069742077696c6c206f6e6c7920636c6f73652074686520766f7465206966206974206973bc68617320656e6f75676820766f74657320746f20626520617070726f766564206f7220646973617070726f7665642e00490149662063616c6c65642061667465722074686520656e64206f662074686520766f74696e6720706572696f642061627374656e74696f6e732061726520636f756e7465642061732072656a656374696f6e732501756e6c6573732074686572652069732061207072696d65206d656d6265722073657420616e6420746865207072696d65206d656d626572206361737420616e20617070726f76616c2e00610149662074686520636c6f7365206f7065726174696f6e20636f6d706c65746573207375636365737366756c6c79207769746820646973617070726f76616c2c20746865207472616e73616374696f6e206665652077696c6c5d016265207761697665642e204f746865727769736520657865637574696f6e206f662074686520617070726f766564206f7065726174696f6e2077696c6c206265206368617267656420746f207468652063616c6c65722e0061012b206070726f706f73616c5f7765696768745f626f756e64603a20546865206d6178696d756d20616d6f756e74206f662077656967687420636f6e73756d656420627920657865637574696e672074686520636c6f7365642470726f706f73616c2e61012b20606c656e6774685f626f756e64603a2054686520757070657220626f756e6420666f7220746865206c656e677468206f66207468652070726f706f73616c20696e2073746f726167652e20436865636b65642076696135016073746f726167653a3a726561646020736f206974206973206073697a655f6f663a3a3c7533323e2829203d3d203460206c6172676572207468616e207468652070757265206c656e6774682e002823203c7765696768743e24232320576569676874742d20604f2842202b204d202b205031202b20503229602077686572653ae020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429dc20202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429c820202d20605031602069732074686520636f6d706c6578697479206f66206070726f706f73616c6020707265696d6167652ea420202d20605032602069732070726f706f73616c2d636f756e742028636f64652d626f756e64656429142d2044423a0d01202d20322073746f726167652072656164732028604d656d62657273603a20636f64656320604f284d29602c20605072696d65603a20636f64656320604f28312960295901202d2033206d75746174696f6e73202860566f74696e67603a20636f64656320604f284d29602c206050726f706f73616c4f66603a20636f64656320604f284229602c206050726f706f73616c73603a20636f6465632c202020604f285032296029dc202d20616e79206d75746174696f6e7320646f6e65207768696c6520657865637574696e67206070726f706f73616c6020286050316029402d20757020746f2033206576656e74732c23203c2f7765696768743e4c646973617070726f76655f70726f706f73616c04013470726f706f73616c5f6861736824011c543a3a486173680005385901446973617070726f766520612070726f706f73616c2c20636c6f73652c20616e642072656d6f76652069742066726f6d207468652073797374656d2c207265676172646c657373206f66206974732063757272656e741873746174652e00884d7573742062652063616c6c65642062792074686520526f6f74206f726967696e2e002c506172616d65746572733a1d012a206070726f706f73616c5f68617368603a205468652068617368206f66207468652070726f706f73616c20746861742073686f756c6420626520646973617070726f7665642e002823203c7765696768743edc436f6d706c65786974793a204f285029207768657265205020697320746865206e756d626572206f66206d61782070726f706f73616c73284442205765696768743a482a2052656164733a2050726f706f73616c739c2a205772697465733a20566f74696e672c2050726f706f73616c732c2050726f706f73616c4f662c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ef9020c6470616c6c65745f656c656374696f6e735f70687261676d656e1870616c6c65741043616c6c04045400011810766f7465080114766f746573dc01445665633c543a3a4163636f756e7449643e00011476616c7565cc013042616c616e63654f663c543e00005c5901566f746520666f72206120736574206f662063616e6469646174657320666f7220746865207570636f6d696e6720726f756e64206f6620656c656374696f6e2e20546869732063616e2062652063616c6c656420746fe07365742074686520696e697469616c20766f7465732c206f722075706461746520616c7265616479206578697374696e6720766f7465732e005d0155706f6e20696e697469616c20766f74696e672c206076616c75656020756e697473206f66206077686f6027732062616c616e6365206973206c6f636b656420616e642061206465706f73697420616d6f756e742069734d0172657365727665642e20546865206465706f736974206973206261736564206f6e20746865206e756d626572206f6620766f74657320616e642063616e2062652075706461746564206f7665722074696d652e004c5468652060766f746573602073686f756c643a4420202d206e6f7420626520656d7074792e550120202d206265206c657373207468616e20746865206e756d626572206f6620706f737369626c652063616e646964617465732e204e6f7465207468617420616c6c2063757272656e74206d656d6265727320616e6411012020202072756e6e6572732d75702061726520616c736f206175746f6d61746963616c6c792063616e6469646174657320666f7220746865206e65787420726f756e642e004d014966206076616c756560206973206d6f7265207468616e206077686f60277320746f74616c2062616c616e63652c207468656e20746865206d6178696d756d206f66207468652074776f20697320757365642e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e65642e002c232323205761726e696e6700550149742069732074686520726573706f6e736962696c697479206f66207468652063616c6c657220746f202a2a4e4f542a2a20706c61636520616c6c206f662074686569722062616c616e636520696e746f20746865a86c6f636b20616e64206b65657020736f6d6520666f722066757274686572206f7065726174696f6e732e002823203c7765696768743e5101576520617373756d6520746865206d6178696d756d2077656967687420616d6f6e6720616c6c20332063617365733a20766f74655f657175616c2c20766f74655f6d6f726520616e6420766f74655f6c6573732e2c23203c2f7765696768743e3072656d6f76655f766f7465720001146c52656d6f766520606f726967696e60206173206120766f7465722e00b8546869732072656d6f76657320746865206c6f636b20616e642072657475726e7320746865206465706f7369742e00fc546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e656420616e64206265206120766f7465722e407375626d69745f63616e64696461637904013c63616e6469646174655f636f756e74ad01010c75333200023c11015375626d6974206f6e6573656c6620666f722063616e6469646163792e204120666978656420616d6f756e74206f66206465706f736974206973207265636f726465642e005d01416c6c2063616e64696461746573206172652077697065642061742074686520656e64206f6620746865207465726d2e205468657920656974686572206265636f6d652061206d656d6265722f72756e6e65722d75702ccc6f72206c65617665207468652073797374656d207768696c65207468656972206465706f73697420697320736c61736865642e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e65642e002c232323205761726e696e67005d014576656e20696620612063616e64696461746520656e6473207570206265696e672061206d656d6265722c2074686579206d7573742063616c6c205b6043616c6c3a3a72656e6f756e63655f63616e646964616379605d5901746f20676574207468656972206465706f736974206261636b2e204c6f73696e67207468652073706f7420696e20616e20656c656374696f6e2077696c6c20616c77617973206c65616420746f206120736c6173682e002823203c7765696768743e0901546865206e756d626572206f662063757272656e742063616e64696461746573206d7573742062652070726f7669646564206173207769746e65737320646174612e2c23203c2f7765696768743e4872656e6f756e63655f63616e64696461637904012872656e6f756e63696e67fd02012852656e6f756e63696e670003484d0152656e6f756e6365206f6e65277320696e74656e74696f6e20746f20626520612063616e64696461746520666f7220746865206e65787420656c656374696f6e20726f756e642e203320706f74656e7469616c3c6f7574636f6d65732065786973743a0049012d20606f726967696e6020697320612063616e64696461746520616e64206e6f7420656c656374656420696e20616e79207365742e20496e207468697320636173652c20746865206465706f736974206973f02020756e72657365727665642c2072657475726e656420616e64206f726967696e2069732072656d6f76656420617320612063616e6469646174652e61012d20606f726967696e6020697320612063757272656e742072756e6e65722d75702e20496e207468697320636173652c20746865206465706f73697420697320756e72657365727665642c2072657475726e656420616e648c20206f726967696e2069732072656d6f76656420617320612072756e6e65722d75702e55012d20606f726967696e6020697320612063757272656e74206d656d6265722e20496e207468697320636173652c20746865206465706f73697420697320756e726573657276656420616e64206f726967696e2069735501202072656d6f7665642061732061206d656d6265722c20636f6e73657175656e746c79206e6f74206265696e6720612063616e64696461746520666f7220746865206e65787420726f756e6420616e796d6f72652e6101202053696d696c617220746f205b6072656d6f76655f6d656d626572605d2853656c663a3a72656d6f76655f6d656d626572292c206966207265706c6163656d656e742072756e6e657273206578697374732c20746865795901202061726520696d6d6564696174656c7920757365642e20496620746865207072696d652069732072656e6f756e63696e672c207468656e206e6f207072696d652077696c6c20657869737420756e74696c207468653420206e65787420726f756e642e004501546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e65642c20616e642068617665206f6e65206f66207468652061626f766520726f6c65732e002823203c7765696768743ee05468652074797065206f662072656e6f756e63696e67206d7573742062652070726f7669646564206173207769746e65737320646174612e2c23203c2f7765696768743e3472656d6f76655f6d656d62657208010c77686f4d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500013c6861735f7265706c6163656d656e74e80110626f6f6c000438590152656d6f7665206120706172746963756c6172206d656d6265722066726f6d20746865207365742e20546869732069732065666665637469766520696d6d6564696174656c7920616e642074686520626f6e64206f667c746865206f7574676f696e67206d656d62657220697320736c61736865642e005501496620612072756e6e65722d757020697320617661696c61626c652c207468656e2074686520626573742072756e6e65722d75702077696c6c2062652072656d6f76656420616e64207265706c6163657320746865fc6f7574676f696e67206d656d6265722e204f74686572776973652c2061206e65772070687261676d656e20656c656374696f6e20697320737461727465642e00b8546865206469737061746368206f726967696e206f6620746869732063616c6c206d75737420626520726f6f742e0041014e6f74652074686174207468697320646f6573206e6f7420616666656374207468652064657369676e6174656420626c6f636b206e756d626572206f6620746865206e65787420656c656374696f6e2e002823203c7765696768743e5101496620776520686176652061207265706c6163656d656e742c20776520757365206120736d616c6c207765696768742e20456c73652c2073696e63652074686973206973206120726f6f742063616c6c20616e64d077696c6c20676f20696e746f2070687261676d656e2c20776520617373756d652066756c6c20626c6f636b20666f72206e6f772e2c23203c2f7765696768743e50636c65616e5f646566756e63745f766f746572730801286e756d5f766f7465727310010c75333200012c6e756d5f646566756e637410010c7533320005284501436c65616e20616c6c20766f746572732077686f2061726520646566756e63742028692e652e207468657920646f206e6f7420736572766520616e7920707572706f736520617420616c6c292e20546865ac6465706f736974206f66207468652072656d6f76656420766f74657273206172652072657475726e65642e0001015468697320697320616e20726f6f742066756e6374696f6e20746f2062652075736564206f6e6c7920666f7220636c65616e696e67207468652073746174652e00b8546865206469737061746368206f726967696e206f6620746869732063616c6c206d75737420626520726f6f742e002823203c7765696768743e5d0154686520746f74616c206e756d626572206f6620766f7465727320616e642074686f736520746861742061726520646566756e6374206d7573742062652070726f7669646564206173207769746e65737320646174612e2c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632efd02086470616c6c65745f656c656374696f6e735f70687261676d656e2852656e6f756e63696e6700010c184d656d6265720000002052756e6e657255700001002443616e6469646174650400ad01010c7533320002000001030c4470616c6c65745f6d656d626572736869701870616c6c65741043616c6c08045400044900011c286164645f6d656d62657204010c77686f000130543a3a4163636f756e74496400000c784164642061206d656d626572206077686f6020746f20746865207365742e009c4d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a4164644f726967696e602e3472656d6f76655f6d656d62657204010c77686f000130543a3a4163636f756e74496400010c8c52656d6f76652061206d656d626572206077686f602066726f6d20746865207365742e00a84d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a52656d6f76654f726967696e602e2c737761705f6d656d62657208011872656d6f7665000130543a3a4163636f756e74496400010c616464000130543a3a4163636f756e744964000214bc53776170206f7574206f6e65206d656d626572206072656d6f76656020666f7220616e6f746865722060616464602e00a04d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a537761704f726967696e602e000d015072696d65206d656d62657273686970206973202a6e6f742a207061737365642066726f6d206072656d6f76656020746f2060616464602c20696620657874616e742e3472657365745f6d656d6265727304011c6d656d62657273dc01445665633c543a3a4163636f756e7449643e00031055014368616e676520746865206d656d6265727368697020746f2061206e6577207365742c20646973726567617264696e6720746865206578697374696e67206d656d626572736869702e204265206e69636520616e64687061737320606d656d6265727360207072652d736f727465642e00a44d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a52657365744f726967696e602e286368616e67655f6b657904010c6e6577000130543a3a4163636f756e744964000414d453776170206f7574207468652073656e64696e67206d656d62657220666f7220736f6d65206f74686572206b657920606e6577602e00f04d6179206f6e6c792062652063616c6c65642066726f6d20605369676e656460206f726967696e206f6620612063757272656e74206d656d6265722e001d015072696d65206d656d62657273686970206973207061737365642066726f6d20746865206f726967696e206163636f756e7420746f20606e6577602c20696620657874616e742e247365745f7072696d6504010c77686f000130543a3a4163636f756e74496400050cbc53657420746865207072696d65206d656d6265722e204d75737420626520612063757272656e74206d656d6265722e00a44d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a5072696d654f726967696e602e2c636c6561725f7072696d6500060c9452656d6f766520746865207072696d65206d656d626572206966206974206578697374732e00a44d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a5072696d654f726967696e602e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e05030c3c70616c6c65745f74726561737572791870616c6c65741043616c6c08045400044900010c3470726f706f73655f7370656e6408011476616c7565cc013c42616c616e63654f663c542c20493e00012c62656e65666963696172794d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365000024290150757420666f727761726420612073756767657374696f6e20666f72207370656e64696e672e2041206465706f7369742070726f706f7274696f6e616c20746f207468652076616c75653101697320726573657276656420616e6420736c6173686564206966207468652070726f706f73616c2069732072656a65637465642e2049742069732072657475726e6564206f6e6365207468655070726f706f73616c20697320617761726465642e002823203c7765696768743e482d20436f6d706c65786974793a204f283129b02d20446252656164733a206050726f706f73616c436f756e74602c20606f726967696e206163636f756e7460e82d2044625772697465733a206050726f706f73616c436f756e74602c206050726f706f73616c73602c20606f726967696e206163636f756e74602c23203c2f7765696768743e3c72656a6563745f70726f706f73616c04012c70726f706f73616c5f6964ad01013450726f706f73616c496e646578000124f852656a65637420612070726f706f736564207370656e642e20546865206f726967696e616c206465706f7369742077696c6c20626520736c61736865642e00a84d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a52656a6563744f726967696e602e002823203c7765696768743e482d20436f6d706c65786974793a204f283129cc2d20446252656164733a206050726f706f73616c73602c206072656a65637465642070726f706f736572206163636f756e7460d02d2044625772697465733a206050726f706f73616c73602c206072656a65637465642070726f706f736572206163636f756e74602c23203c2f7765696768743e40617070726f76655f70726f706f73616c04012c70726f706f73616c5f6964ad01013450726f706f73616c496e6465780002285901417070726f766520612070726f706f73616c2e2041742061206c617465722074696d652c207468652070726f706f73616c2077696c6c20626520616c6c6f636174656420746f207468652062656e6566696369617279a8616e6420746865206f726967696e616c206465706f7369742077696c6c2062652072657475726e65642e00ac4d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a417070726f76654f726967696e602e002823203c7765696768743e4c2d20436f6d706c65786974793a204f2831292e8c2d20446252656164733a206050726f706f73616c73602c2060417070726f76616c7360582d20446257726974653a2060417070726f76616c73602c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e0903105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e18636c61696d731870616c6c65741043616c6c04045400011414636c61696d08011064657374000130543a3a4163636f756e744964000148657468657265756d5f7369676e61747572650d03013845636473615369676e6174757265000060884d616b65206120636c61696d20746f20636f6c6c65637420796f757220444f54732e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f4e6f6e655f2e0050556e7369676e65642056616c69646174696f6e3a0501412063616c6c20746f20636c61696d206973206465656d65642076616c696420696620746865207369676e61747572652070726f7669646564206d6174636865737c746865206578706563746564207369676e6564206d657373616765206f663a00683e20457468657265756d205369676e6564204d6573736167653a943e2028636f6e666967757265642070726566697820737472696e672928616464726573732900a4616e6420606164647265737360206d6174636865732074686520606465737460206163636f756e742e002c506172616d65746572733ad82d206064657374603a205468652064657374696e6174696f6e206163636f756e7420746f207061796f75742074686520636c61696d2e0d012d2060657468657265756d5f7369676e6174757265603a20546865207369676e6174757265206f6620616e20657468657265756d207369676e6564206d6573736167659c2020206d61746368696e672074686520666f726d6174206465736372696265642061626f76652e00203c7765696768743efc54686520776569676874206f6620746869732063616c6c20697320696e76617269616e74206f7665722074686520696e70757420706172616d65746572732ee057656967687420696e636c75646573206c6f67696320746f2076616c696461746520756e7369676e65642060636c61696d602063616c6c2e0058546f74616c20436f6d706c65786974793a204f283129243c2f7765696768743e286d696e745f636c61696d10010c77686f0901013c457468657265756d4164647265737300011476616c756518013042616c616e63654f663c543e00014076657374696e675f7363686564756c65150301d04f7074696f6e3c2842616c616e63654f663c543e2c2042616c616e63654f663c543e2c20543a3a426c6f636b4e756d626572293e00012473746174656d656e741d0301544f7074696f6e3c53746174656d656e744b696e643e00013c844d696e742061206e657720636c61696d20746f20636f6c6c65637420444f54732e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e002c506172616d65746572733af02d206077686f603a2054686520457468657265756d206164647265737320616c6c6f77656420746f20636f6c6c656374207468697320636c61696d2ecc2d206076616c7565603a20546865206e756d626572206f6620444f547320746861742077696c6c20626520636c61696d65642e09012d206076657374696e675f7363686564756c65603a20416e206f7074696f6e616c2076657374696e67207363686564756c6520666f7220746865736520444f54732e00203c7765696768743efc54686520776569676874206f6620746869732063616c6c20697320696e76617269616e74206f7665722074686520696e70757420706172616d65746572732e1d01576520617373756d6520776f7273742063617365207468617420626f74682076657374696e6720616e642073746174656d656e74206973206265696e6720696e7365727465642e0058546f74616c20436f6d706c65786974793a204f283129243c2f7765696768743e30636c61696d5f6174746573740c011064657374000130543a3a4163636f756e744964000148657468657265756d5f7369676e61747572650d03013845636473615369676e617475726500012473746174656d656e7428011c5665633c75383e000268e44d616b65206120636c61696d20746f20636f6c6c65637420796f757220444f5473206279207369676e696e6720612073746174656d656e742e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f4e6f6e655f2e0050556e7369676e65642056616c69646174696f6e3a2901412063616c6c20746f2060636c61696d5f61747465737460206973206465656d65642076616c696420696620746865207369676e61747572652070726f7669646564206d6174636865737c746865206578706563746564207369676e6564206d657373616765206f663a00683e20457468657265756d205369676e6564204d6573736167653ac03e2028636f6e666967757265642070726566697820737472696e67292861646472657373292873746174656d656e7429004901616e6420606164647265737360206d6174636865732074686520606465737460206163636f756e743b20746865206073746174656d656e7460206d757374206d617463682074686174207768696368206973c06578706563746564206163636f7264696e6720746f20796f757220707572636861736520617272616e67656d656e742e002c506172616d65746572733ad82d206064657374603a205468652064657374696e6174696f6e206163636f756e7420746f207061796f75742074686520636c61696d2e0d012d2060657468657265756d5f7369676e6174757265603a20546865207369676e6174757265206f6620616e20657468657265756d207369676e6564206d6573736167659c2020206d61746368696e672074686520666f726d6174206465736372696265642061626f76652e65012d206073746174656d656e74603a20546865206964656e74697479206f66207468652073746174656d656e74207768696368206973206265696e6720617474657374656420746f20696e20746865207369676e61747572652e00203c7765696768743efc54686520776569676874206f6620746869732063616c6c20697320696e76617269616e74206f7665722074686520696e70757420706172616d65746572732efc57656967687420696e636c75646573206c6f67696320746f2076616c696461746520756e7369676e65642060636c61696d5f617474657374602063616c6c2e0058546f74616c20436f6d706c65786974793a204f283129243c2f7765696768743e1861747465737404012473746174656d656e7428011c5665633c75383e000344f441747465737420746f20612073746174656d656e742c206e656564656420746f2066696e616c697a652074686520636c61696d732070726f636573732e0065015741524e494e473a20496e73656375726520756e6c65737320796f757220636861696e20696e636c75646573206050726576616c69646174654174746573747360206173206120605369676e6564457874656e73696f6e602e0050556e7369676e65642056616c69646174696f6e3a2901412063616c6c20746f20617474657374206973206465656d65642076616c6964206966207468652073656e6465722068617320612060507265636c61696d602072656769737465726564f4616e642070726f76696465732061206073746174656d656e746020776869636820697320657870656374656420666f7220746865206163636f756e742e002c506172616d65746572733a65012d206073746174656d656e74603a20546865206964656e74697479206f66207468652073746174656d656e74207768696368206973206265696e6720617474657374656420746f20696e20746865207369676e61747572652e00203c7765696768743efc54686520776569676874206f6620746869732063616c6c20697320696e76617269616e74206f7665722074686520696e70757420706172616d65746572732ef057656967687420696e636c75646573206c6f67696320746f20646f207072652d76616c69646174696f6e206f6e2060617474657374602063616c6c2e0058546f74616c20436f6d706c65786974793a204f283129243c2f7765696768743e286d6f76655f636c61696d0c010c6f6c640901013c457468657265756d4164647265737300010c6e65770901013c457468657265756d416464726573730001386d617962655f707265636c61696df10201504f7074696f6e3c543a3a4163636f756e7449643e000400042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e0d030c5c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e18636c61696d733845636473615369676e617475726500000400110301205b75383b2036355d00001103000003410000000800150304184f7074696f6e0404540119030108104e6f6e6500000010536f6d6504001903000001000019030000040c181810001d0304184f7074696f6e0404540121030108104e6f6e6500000010536f6d6504002103000001000021030c5c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e18636c61696d733453746174656d656e744b696e640001081c526567756c617200000010536166740001000025030c3870616c6c65745f76657374696e671870616c6c65741043616c6c0404540001141076657374000034b8556e6c6f636b20616e79207665737465642066756e6473206f66207468652073656e646572206163636f756e742e005d01546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652066756e6473207374696c6c646c6f636b656420756e64657220746869732070616c6c65742e00d0456d69747320656974686572206056657374696e67436f6d706c6574656460206f72206056657374696e6755706461746564602e002823203c7765696768743e242d20604f283129602e742d2044625765696768743a20322052656164732c203220577269746573f8202020202d2052656164733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c205b53656e646572204163636f756e745dfc202020202d205772697465733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c205b53656e646572204163636f756e745d2c23203c2f7765696768743e28766573745f6f746865720401187461726765744d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500013cb8556e6c6f636b20616e79207665737465642066756e6473206f662061206074617267657460206163636f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0051012d2060746172676574603a20546865206163636f756e742077686f7365207665737465642066756e64732073686f756c6420626520756e6c6f636b65642e204d75737420686176652066756e6473207374696c6c646c6f636b656420756e64657220746869732070616c6c65742e00d0456d69747320656974686572206056657374696e67436f6d706c6574656460206f72206056657374696e6755706461746564602e002823203c7765696768743e242d20604f283129602e742d2044625765696768743a20332052656164732c203320577269746573f0202020202d2052656164733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e74f4202020202d205772697465733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e742c23203c2f7765696768743e3c7665737465645f7472616e736665720801187461726765744d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001207363686564756c65290301a456657374696e67496e666f3c42616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265723e00024464437265617465206120766573746564207472616e736665722e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e00cc2d2060746172676574603a20546865206163636f756e7420726563656976696e6720746865207665737465642066756e64732ef02d20607363686564756c65603a205468652076657374696e67207363686564756c6520617474616368656420746f20746865207472616e736665722e005c456d697473206056657374696e6743726561746564602e00fc4e4f54453a20546869732077696c6c20756e6c6f636b20616c6c207363686564756c6573207468726f756768207468652063757272656e7420626c6f636b2e002823203c7765696768743e242d20604f283129602e742d2044625765696768743a20332052656164732c2033205772697465733901202020202d2052656164733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e742c205b53656e646572204163636f756e745d3d01202020202d205772697465733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e742c205b53656e646572204163636f756e745d2c23203c2f7765696768743e54666f7263655f7665737465645f7472616e736665720c0118736f757263654d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001187461726765744d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001207363686564756c65290301a456657374696e67496e666f3c42616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265723e00034860466f726365206120766573746564207472616e736665722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e00e82d2060736f75726365603a20546865206163636f756e742077686f73652066756e64732073686f756c64206265207472616e736665727265642e11012d2060746172676574603a20546865206163636f756e7420746861742073686f756c64206265207472616e7366657272656420746865207665737465642066756e64732ef02d20607363686564756c65603a205468652076657374696e67207363686564756c6520617474616368656420746f20746865207472616e736665722e005c456d697473206056657374696e6743726561746564602e00fc4e4f54453a20546869732077696c6c20756e6c6f636b20616c6c207363686564756c6573207468726f756768207468652063757272656e7420626c6f636b2e002823203c7765696768743e242d20604f283129602e742d2044625765696768743a20342052656164732c2034205772697465733101202020202d2052656164733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e742c20536f75726365204163636f756e743501202020202d205772697465733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e742c20536f75726365204163636f756e742c23203c2f7765696768743e3c6d657267655f7363686564756c657308013c7363686564756c65315f696e64657810010c75333200013c7363686564756c65325f696e64657810010c7533320004545d014d657267652074776f2076657374696e67207363686564756c657320746f6765746865722c206372656174696e672061206e65772076657374696e67207363686564756c65207468617420756e6c6f636b73206f7665725501746865206869676865737420706f737369626c6520737461727420616e6420656e6420626c6f636b732e20496620626f7468207363686564756c6573206861766520616c7265616479207374617274656420746865590163757272656e7420626c6f636b2077696c6c206265207573656420617320746865207363686564756c652073746172743b207769746820746865206361766561742074686174206966206f6e65207363686564756c655d0169732066696e6973686564206279207468652063757272656e7420626c6f636b2c20746865206f746865722077696c6c206265207472656174656420617320746865206e6577206d6572676564207363686564756c652c2c756e6d6f6469666965642e00f84e4f54453a20496620607363686564756c65315f696e646578203d3d207363686564756c65325f696e6465786020746869732069732061206e6f2d6f702e41014e4f54453a20546869732077696c6c20756e6c6f636b20616c6c207363686564756c6573207468726f756768207468652063757272656e7420626c6f636b207072696f7220746f206d657267696e672e61014e4f54453a20496620626f7468207363686564756c6573206861766520656e646564206279207468652063757272656e7420626c6f636b2c206e6f206e6577207363686564756c652077696c6c206265206372656174656464616e6420626f74682077696c6c2062652072656d6f7665642e006c4d6572676564207363686564756c6520617474726962757465733a35012d20607374617274696e675f626c6f636b603a20604d4158287363686564756c65312e7374617274696e675f626c6f636b2c207363686564756c6564322e7374617274696e675f626c6f636b2c48202063757272656e745f626c6f636b29602e21012d2060656e64696e675f626c6f636b603a20604d4158287363686564756c65312e656e64696e675f626c6f636b2c207363686564756c65322e656e64696e675f626c6f636b29602e59012d20606c6f636b6564603a20607363686564756c65312e6c6f636b65645f61742863757272656e745f626c6f636b29202b207363686564756c65322e6c6f636b65645f61742863757272656e745f626c6f636b29602e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e00e82d20607363686564756c65315f696e646578603a20696e646578206f6620746865206669727374207363686564756c6520746f206d657267652eec2d20607363686564756c65325f696e646578603a20696e646578206f6620746865207365636f6e64207363686564756c6520746f206d657267652e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e29030c3870616c6c65745f76657374696e673076657374696e675f696e666f2c56657374696e67496e666f081c42616c616e636501182c426c6f636b4e756d6265720110000c01186c6f636b656418011c42616c616e63650001247065725f626c6f636b18011c42616c616e63650001387374617274696e675f626c6f636b10012c426c6f636b4e756d62657200002d030c3870616c6c65745f7574696c6974791870616c6c65741043616c6c04045400010c14626174636804011463616c6c73310301605665633c3c5420617320436f6e6669673e3a3a43616c6c3e00004c7c53656e642061206261746368206f662064697370617463682063616c6c732e00784d61792062652063616c6c65642066726f6d20616e79206f726967696e2e005d012d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f74390120206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e005d014966206f726967696e20697320726f6f74207468656e2063616c6c2061726520646973706174636820776974686f757420636865636b696e67206f726967696e2066696c7465722e20285468697320696e636c75646573c8627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e002823203c7765696768743e01012d20436f6d706c65786974793a204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e2c23203c2f7765696768743e005501546869732077696c6c2072657475726e20604f6b6020696e20616c6c2063697263756d7374616e6365732e20546f2064657465726d696e65207468652073756363657373206f66207468652062617463682c20616e31016576656e74206973206465706f73697465642e20496620612063616c6c206661696c656420616e64207468652062617463682077617320696e7465727275707465642c207468656e207468655501604261746368496e74657272757074656460206576656e74206973206465706f73697465642c20616c6f6e67207769746820746865206e756d626572206f66207375636365737366756c2063616c6c73206d6164654d01616e6420746865206572726f72206f6620746865206661696c65642063616c6c2e20496620616c6c2077657265207375636365737366756c2c207468656e2074686520604261746368436f6d706c65746564604c6576656e74206973206465706f73697465642e3461735f64657269766174697665080114696e6465782501010c75313600011063616c6c09020160426f783c3c5420617320436f6e6669673e3a3a43616c6c3e000134dc53656e6420612063616c6c207468726f75676820616e20696e64657865642070736575646f6e796d206f66207468652073656e6465722e00550146696c7465722066726f6d206f726967696e206172652070617373656420616c6f6e672e205468652063616c6c2077696c6c2062652064697370617463686564207769746820616e206f726967696e207768696368bc757365207468652073616d652066696c74657220617320746865206f726967696e206f6620746869732063616c6c2e0045014e4f54453a20496620796f75206e65656420746f20656e73757265207468617420616e79206163636f756e742d62617365642066696c746572696e67206973206e6f7420686f6e6f7265642028692e652e61016265636175736520796f7520657870656374206070726f78796020746f2068617665206265656e2075736564207072696f7220696e207468652063616c6c20737461636b20616e6420796f7520646f206e6f742077616e7451017468652063616c6c207265737472696374696f6e7320746f206170706c7920746f20616e79207375622d6163636f756e7473292c207468656e20757365206061735f6d756c74695f7468726573686f6c645f31607c696e20746865204d756c74697369672070616c6c657420696e73746561642e00f44e4f54453a205072696f7220746f2076657273696f6e202a31322c2074686973207761732063616c6c6564206061735f6c696d697465645f737562602e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e2462617463685f616c6c04011463616c6c73310301605665633c3c5420617320436f6e6669673e3a3a43616c6c3e000238ec53656e642061206261746368206f662064697370617463682063616c6c7320616e642061746f6d6963616c6c792065786563757465207468656d2e21015468652077686f6c65207472616e73616374696f6e2077696c6c20726f6c6c6261636b20616e64206661696c20696620616e79206f66207468652063616c6c73206661696c65642e00784d61792062652063616c6c65642066726f6d20616e79206f726967696e2e005d012d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f74390120206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e005d014966206f726967696e20697320726f6f74207468656e2063616c6c2061726520646973706174636820776974686f757420636865636b696e67206f726967696e2066696c7465722e20285468697320696e636c75646573c8627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e002823203c7765696768743e01012d20436f6d706c65786974793a204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e2c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e310300000209020035030c3c70616c6c65745f6964656e746974791870616c6c65741043616c6c04045400013c346164645f72656769737472617204011c6163636f756e74000130543a3a4163636f756e7449640000347841646420612072656769737472617220746f207468652073797374656d2e00fc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652060543a3a5265676973747261724f726967696e602e00a82d20606163636f756e74603a20746865206163636f756e74206f6620746865207265676973747261722e0094456d6974732060526567697374726172416464656460206966207375636365737366756c2e002823203c7765696768743e25012d20604f2852296020776865726520605260207265676973747261722d636f756e742028676f7665726e616e63652d626f756e64656420616e6420636f64652d626f756e646564292e982d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28522960292e302d204f6e65206576656e742e2c23203c2f7765696768743e307365745f6964656e74697479040110696e666f390301a4426f783c4964656e74697479496e666f3c543a3a4d61784164646974696f6e616c4669656c64733e3e00014c290153657420616e206163636f756e742773206964656e7469747920696e666f726d6174696f6e20616e6420726573657276652074686520617070726f707269617465206465706f7369742e005501496620746865206163636f756e7420616c726561647920686173206964656e7469747920696e666f726d6174696f6e2c20746865206465706f7369742069732074616b656e2061732070617274207061796d656e7450666f7220746865206e6577206465706f7369742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e008c2d2060696e666f603a20546865206964656e7469747920696e666f726d6174696f6e2e0088456d69747320604964656e7469747953657460206966207375636365737366756c2e002823203c7765696768743e442d20604f2858202b205827202b205229601d0120202d20776865726520605860206164646974696f6e616c2d6669656c642d636f756e7420286465706f7369742d626f756e64656420616e6420636f64652d626f756e64656429e020202d20776865726520605260206a756467656d656e74732d636f756e7420287265676973747261722d636f756e742d626f756e64656429802d204f6e652062616c616e63652072657365727665206f7065726174696f6e2e21012d204f6e652073746f72616765206d75746174696f6e2028636f6465632d7265616420604f285827202b205229602c20636f6465632d777269746520604f2858202b20522960292e302d204f6e65206576656e742e2c23203c2f7765696768743e207365745f7375627304011073756273c10301645665633c28543a3a4163636f756e7449642c2044617461293e0002548c53657420746865207375622d6163636f756e7473206f66207468652073656e6465722e0055015061796d656e743a20416e79206167677265676174652062616c616e63652072657365727665642062792070726576696f757320607365745f73756273602063616c6c732077696c6c2062652072657475726e65642d01616e6420616e20616d6f756e7420605375624163636f756e744465706f736974602077696c6c20626520726573657276656420666f722065616368206974656d20696e206073756273602e006101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d757374206861766520612072656769737465726564246964656e746974792e00b02d206073756273603a20546865206964656e74697479277320286e657729207375622d6163636f756e74732e002823203c7765696768743e302d20604f2850202b20532960e420202d20776865726520605060206f6c642d737562732d636f756e742028686172642d20616e64206465706f7369742d626f756e646564292ed420202d2077686572652060536020737562732d636f756e742028686172642d20616e64206465706f7369742d626f756e646564292e842d204174206d6f7374206f6e652062616c616e6365206f7065726174696f6e732e142d2044423adc20202d206050202b2053602073746f72616765206d75746174696f6e732028636f64656320636f6d706c657869747920604f2831296029bc20202d204f6e652073746f7261676520726561642028636f64656320636f6d706c657869747920604f28502960292ec020202d204f6e652073746f726167652077726974652028636f64656320636f6d706c657869747920604f28532960292ed020202d204f6e652073746f726167652d6578697374732028604964656e746974794f663a3a636f6e7461696e735f6b657960292e2c23203c2f7765696768743e38636c6561725f6964656e746974790003483901436c65617220616e206163636f756e742773206964656e7469747920696e666f20616e6420616c6c207375622d6163636f756e747320616e642072657475726e20616c6c206465706f736974732e00ec5061796d656e743a20416c6c2072657365727665642062616c616e636573206f6e20746865206163636f756e74206172652072657475726e65642e006101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d757374206861766520612072656769737465726564246964656e746974792e0098456d69747320604964656e74697479436c656172656460206966207375636365737366756c2e002823203c7765696768743e402d20604f2852202b2053202b20582960cc20202d20776865726520605260207265676973747261722d636f756e742028676f7665726e616e63652d626f756e646564292ed420202d2077686572652060536020737562732d636f756e742028686172642d20616e64206465706f7369742d626f756e646564292e210120202d20776865726520605860206164646974696f6e616c2d6669656c642d636f756e7420286465706f7369742d626f756e64656420616e6420636f64652d626f756e646564292e882d204f6e652062616c616e63652d756e72657365727665206f7065726174696f6e2ec82d206032602073746f7261676520726561647320616e64206053202b2032602073746f726167652064656c6574696f6e732e302d204f6e65206576656e742e2c23203c2f7765696768743e44726571756573745f6a756467656d656e740801247265675f696e646578ad010138526567697374726172496e64657800011c6d61785f666565cc013042616c616e63654f663c543e00045c94526571756573742061206a756467656d656e742066726f6d2061207265676973747261722e0055015061796d656e743a204174206d6f737420606d61785f666565602077696c6c20626520726573657276656420666f72207061796d656e7420746f2074686520726567697374726172206966206a756467656d656e7418676976656e2e003501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d757374206861766520615072656769737465726564206964656e746974792e001d012d20607265675f696e646578603a2054686520696e646578206f6620746865207265676973747261722077686f7365206a756467656d656e74206973207265717565737465642e55012d20606d61785f666565603a20546865206d6178696d756d206665652074686174206d617920626520706169642e20546869732073686f756c64206a757374206265206175746f2d706f70756c617465642061733a00306060606e6f636f6d70696c65b853656c663a3a7265676973747261727328292e676574287265675f696e646578292e756e7772617028292e6665650c60606000a4456d69747320604a756467656d656e7452657175657374656460206966207375636365737366756c2e002823203c7765696768743e342d20604f2852202b205829602e802d204f6e652062616c616e63652d72657365727665206f7065726174696f6e2eb82d2053746f726167653a2031207265616420604f285229602c2031206d757461746520604f2858202b205229602e302d204f6e65206576656e742e2c23203c2f7765696768743e3863616e63656c5f726571756573740401247265675f696e646578100138526567697374726172496e6465780005446843616e63656c20612070726576696f757320726571756573742e00f85061796d656e743a20412070726576696f75736c79207265736572766564206465706f7369742069732072657475726e6564206f6e20737563636573732e003501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d757374206861766520615072656769737465726564206964656e746974792e0045012d20607265675f696e646578603a2054686520696e646578206f6620746865207265676973747261722077686f7365206a756467656d656e74206973206e6f206c6f6e676572207265717565737465642e00ac456d69747320604a756467656d656e74556e72657175657374656460206966207375636365737366756c2e002823203c7765696768743e342d20604f2852202b205829602e802d204f6e652062616c616e63652d72657365727665206f7065726174696f6e2e882d204f6e652073746f72616765206d75746174696f6e20604f2852202b205829602e2c2d204f6e65206576656e742c23203c2f7765696768743e1c7365745f666565080114696e646578ad010138526567697374726172496e64657800010c666565cc013042616c616e63654f663c543e0006341901536574207468652066656520726571756972656420666f722061206a756467656d656e7420746f206265207265717565737465642066726f6d2061207265676973747261722e005501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74a06f6620746865207265676973747261722077686f736520696e6465782069732060696e646578602e00f42d2060696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f73652066656520697320746f206265207365742e542d2060666565603a20746865206e6577206665652e002823203c7765696768743e242d20604f285229602e782d204f6e652073746f72616765206d75746174696f6e20604f285229602ee42d2042656e63686d61726b3a20372e333135202b2052202a20302e33323920c2b57320286d696e207371756172657320616e616c79736973292c23203c2f7765696768743e387365745f6163636f756e745f6964080114696e646578ad010138526567697374726172496e64657800010c6e6577000130543a3a4163636f756e744964000734bc4368616e676520746865206163636f756e74206173736f63696174656420776974682061207265676973747261722e005501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74a06f6620746865207265676973747261722077686f736520696e6465782069732060696e646578602e00f42d2060696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f73652066656520697320746f206265207365742e702d20606e6577603a20746865206e6577206163636f756e742049442e002823203c7765696768743e242d20604f285229602e782d204f6e652073746f72616765206d75746174696f6e20604f285229602ee02d2042656e63686d61726b3a20382e383233202b2052202a20302e333220c2b57320286d696e207371756172657320616e616c79736973292c23203c2f7765696768743e287365745f6669656c6473080114696e646578ad010138526567697374726172496e6465780001186669656c6473c90301384964656e746974794669656c6473000834a853657420746865206669656c6420696e666f726d6174696f6e20666f722061207265676973747261722e005501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74a06f6620746865207265676973747261722077686f736520696e6465782069732060696e646578602e00f42d2060696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f73652066656520697320746f206265207365742e0d012d20606669656c6473603a20746865206669656c64732074686174207468652072656769737472617220636f6e6365726e73207468656d73656c76657320776974682e002823203c7765696768743e242d20604f285229602e782d204f6e652073746f72616765206d75746174696f6e20604f285229602ee42d2042656e63686d61726b3a20372e343634202b2052202a20302e33323520c2b57320286d696e207371756172657320616e616c79736973292c23203c2f7765696768743e4470726f766964655f6a756467656d656e740c01247265675f696e646578ad010138526567697374726172496e6465780001187461726765744d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001246a756467656d656e74d103015c4a756467656d656e743c42616c616e63654f663c543e3e00094cb850726f766964652061206a756467656d656e7420666f7220616e206163636f756e742773206964656e746974792e005501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74b06f6620746865207265676973747261722077686f736520696e64657820697320607265675f696e646578602e0021012d20607265675f696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f7365206a756467656d656e74206973206265696e67206d6164652e55012d2060746172676574603a20746865206163636f756e742077686f7365206964656e7469747920746865206a756467656d656e742069732075706f6e2e2054686973206d75737420626520616e206163636f756e747420207769746820612072656769737465726564206964656e746974792e49012d20606a756467656d656e74603a20746865206a756467656d656e74206f662074686520726567697374726172206f6620696e64657820607265675f696e646578602061626f75742060746172676574602e0094456d69747320604a756467656d656e74476976656e60206966207375636365737366756c2e002823203c7765696768743e342d20604f2852202b205829602e842d204f6e652062616c616e63652d7472616e73666572206f7065726174696f6e2e942d20557020746f206f6e65206163636f756e742d6c6f6f6b7570206f7065726174696f6e2eb82d2053746f726167653a2031207265616420604f285229602c2031206d757461746520604f2852202b205829602e302d204f6e65206576656e742e2c23203c2f7765696768743e346b696c6c5f6964656e746974790401187461726765744d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365000a4c410152656d6f766520616e206163636f756e742773206964656e7469747920616e64207375622d6163636f756e7420696e666f726d6174696f6e20616e6420736c61736820746865206465706f736974732e0061015061796d656e743a2052657365727665642062616c616e6365732066726f6d20607365745f737562736020616e6420607365745f6964656e74697479602061726520736c617368656420616e642068616e646c6564206279450160536c617368602e20566572696669636174696f6e2072657175657374206465706f7369747320617265206e6f742072657475726e65643b20746865792073686f756c642062652063616e63656c6c6564806d616e75616c6c79207573696e67206063616e63656c5f72657175657374602e00f8546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206d617463682060543a3a466f7263654f726967696e602e0055012d2060746172676574603a20746865206163636f756e742077686f7365206964656e7469747920746865206a756467656d656e742069732075706f6e2e2054686973206d75737420626520616e206163636f756e747420207769746820612072656769737465726564206964656e746974792e0094456d69747320604964656e746974794b696c6c656460206966207375636365737366756c2e002823203c7765696768743e442d20604f2852202b2053202b205829602e802d204f6e652062616c616e63652d72657365727665206f7065726174696f6e2e702d206053202b2032602073746f72616765206d75746174696f6e732e302d204f6e65206576656e742e2c23203c2f7765696768743e1c6164645f73756208010c7375624d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365000110646174614503011044617461000b1cac4164642074686520676976656e206163636f756e7420746f207468652073656e646572277320737562732e005d015061796d656e743a2042616c616e636520726573657276656420627920612070726576696f757320607365745f73756273602063616c6c20666f72206f6e65207375622077696c6c20626520726570617472696174656438746f207468652073656e6465722e006101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652061207265676973746572656458737562206964656e74697479206f662060737562602e2872656e616d655f73756208010c7375624d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365000110646174614503011044617461000c10cc416c74657220746865206173736f636961746564206e616d65206f662074686520676976656e207375622d6163636f756e742e006101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652061207265676973746572656458737562206964656e74697479206f662060737562602e2872656d6f76655f73756204010c7375624d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365000d1cc052656d6f76652074686520676976656e206163636f756e742066726f6d207468652073656e646572277320737562732e005d015061796d656e743a2042616c616e636520726573657276656420627920612070726576696f757320607365745f73756273602063616c6c20666f72206f6e65207375622077696c6c20626520726570617472696174656438746f207468652073656e6465722e006101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652061207265676973746572656458737562206964656e74697479206f662060737562602e20717569745f737562000e288c52656d6f7665207468652073656e6465722061732061207375622d6163636f756e742e005d015061796d656e743a2042616c616e636520726573657276656420627920612070726576696f757320607365745f73756273602063616c6c20666f72206f6e65207375622077696c6c206265207265706174726961746564b4746f207468652073656e64657220282a6e6f742a20746865206f726967696e616c206465706f7369746f72292e006101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d7573742068617665206120726567697374657265643c73757065722d6964656e746974792e0045014e4f54453a20546869732073686f756c64206e6f74206e6f726d616c6c7920626520757365642c206275742069732070726f766964656420696e207468652063617365207468617420746865206e6f6e2d1101636f6e74726f6c6c6572206f6620616e206163636f756e74206973206d616c6963696f75736c7920726567697374657265642061732061207375622d6163636f756e742e04704964656e746974792070616c6c6574206465636c61726174696f6e2e39030c3c70616c6c65745f6964656e74697479147479706573304964656e74697479496e666f04284669656c644c696d697400002401286164646974696f6e616c3d030190426f756e6465645665633c28446174612c2044617461292c204669656c644c696d69743e00011c646973706c617945030110446174610001146c6567616c450301104461746100010c776562450301104461746100011072696f744503011044617461000114656d61696c450301104461746100013c7067705f66696e6765727072696e74bd0301404f7074696f6e3c5b75383b2032305d3e000114696d616765450301104461746100011c74776974746572450301104461746100003d0310346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e646564566563080454014103045300000400b90301185665633c543e0000410300000408450345030045030c3c70616c6c65745f6964656e746974791474797065731044617461000198104e6f6e6500000010526177300400490300000100105261773104004d0300000200105261773204005103000003001052617733040055030000040010526177340400380000050010526177350400590300000600105261773604005d03000007001052617737040061030000080010526177380400f5010000090010526177390400650300000a001452617731300400690300000b0014526177313104006d0300000c001452617731320400710300000d001452617731330400750300000e001452617731340400790300000f0014526177313504007d03000010001452617731360400980000110014526177313704008103000012001452617731380400850300001300145261773139040089030000140014526177323004000d010000150014526177323104008d030000160014526177323204009103000017001452617732330400950300001800145261773234040099030000190014526177323504009d0300001a001452617732360400a10300001b001452617732370400a50300001c001452617732380400a90300001d001452617732390400ad0300001e001452617733300400b10300001f001452617733310400b50300002000145261773332040004000021002c426c616b6554776f323536040004000022001853686132353604000400002300244b656363616b323536040004000024002c5368615468726565323536040004000025000049030000030000000008004d030000030100000008005103000003020000000800550300000303000000080059030000030500000008005d030000030600000008006103000003070000000800650300000309000000080069030000030a00000008006d030000030b000000080071030000030c000000080075030000030d000000080079030000030e00000008007d030000030f00000008008103000003110000000800850300000312000000080089030000031300000008008d030000031500000008009103000003160000000800950300000317000000080099030000031800000008009d03000003190000000800a1030000031a0000000800a5030000031b0000000800a9030000031c0000000800ad030000031d0000000800b1030000031e0000000800b5030000031f0000000800b903000002410300bd0304184f7074696f6e040454010d010108104e6f6e6500000010536f6d6504000d010000010000c103000002c50300c5030000040800450300c9030c3c70616c6c65745f6964656e7469747914747970657320426974466c61677304045401cd030004002001344964656e746974794669656c640000cd030c3c70616c6c65745f6964656e74697479147479706573344964656e746974794669656c640001201c446973706c6179000100144c6567616c0002000c5765620004001052696f7400080014456d61696c0010003850677046696e6765727072696e7400200014496d6167650040001c5477697474657200800000d1030c3c70616c6c65745f6964656e74697479147479706573244a756467656d656e74041c42616c616e63650118011c1c556e6b6e6f776e0000001c46656550616964040018011c42616c616e636500010028526561736f6e61626c65000200244b6e6f776e476f6f64000300244f75744f6644617465000400284c6f775175616c697479000500244572726f6e656f757300060000d5030c3070616c6c65745f70726f78791870616c6c65741043616c6c0404540001281470726f78790c01107265616c000130543a3a4163636f756e744964000140666f7263655f70726f78795f74797065d90301504f7074696f6e3c543a3a50726f7879547970653e00011063616c6c09020160426f783c3c5420617320436f6e6669673e3a3a43616c6c3e00003c4d0144697370617463682074686520676976656e206063616c6c602066726f6d20616e206163636f756e742074686174207468652073656e64657220697320617574686f726973656420666f72207468726f75676830606164645f70726f7879602e00a852656d6f76657320616e7920636f72726573706f6e64696e6720616e6e6f756e63656d656e742873292e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a0d012d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e61012d2060666f7263655f70726f78795f74797065603a2053706563696679207468652065786163742070726f7879207479706520746f206265207573656420616e6420636865636b656420666f7220746869732063616c6c2ed02d206063616c6c603a205468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e002823203c7765696768743efc57656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e2c23203c2f7765696768743e246164645f70726f78790c012064656c6567617465000130543a3a4163636f756e74496400012870726f78795f7479706521010130543a3a50726f78795479706500011464656c6179100138543a3a426c6f636b4e756d6265720001344501526567697374657220612070726f7879206163636f756e7420666f72207468652073656e64657220746861742069732061626c6520746f206d616b652063616c6c73206f6e2069747320626568616c662e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a11012d206070726f7879603a20546865206163636f756e74207468617420746865206063616c6c65726020776f756c64206c696b6520746f206d616b6520612070726f78792efc2d206070726f78795f74797065603a20546865207065726d697373696f6e7320616c6c6f77656420666f7220746869732070726f7879206163636f756e742e4d012d206064656c6179603a2054686520616e6e6f756e63656d656e7420706572696f64207265717569726564206f662074686520696e697469616c2070726f78792e2057696c6c2067656e6572616c6c79206265147a65726f2e002823203c7765696768743efc57656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e2c23203c2f7765696768743e3072656d6f76655f70726f78790c012064656c6567617465000130543a3a4163636f756e74496400012870726f78795f7479706521010130543a3a50726f78795479706500011464656c6179100138543a3a426c6f636b4e756d62657200022ca8556e726567697374657220612070726f7879206163636f756e7420666f72207468652073656e6465722e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a25012d206070726f7879603a20546865206163636f756e74207468617420746865206063616c6c65726020776f756c64206c696b6520746f2072656d6f766520617320612070726f78792e41012d206070726f78795f74797065603a20546865207065726d697373696f6e732063757272656e746c7920656e61626c656420666f72207468652072656d6f7665642070726f7879206163636f756e742e002823203c7765696768743efc57656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e2c23203c2f7765696768743e3872656d6f76655f70726f78696573000328b4556e726567697374657220616c6c2070726f7879206163636f756e747320666f72207468652073656e6465722e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0055015741524e494e473a2054686973206d61792062652063616c6c6564206f6e206163636f756e747320637265617465642062792060616e6f6e796d6f7573602c20686f776576657220696620646f6e652c207468656e590174686520756e726573657276656420666565732077696c6c20626520696e61636365737369626c652e202a2a416c6c2061636365737320746f2074686973206163636f756e742077696c6c206265206c6f73742e2a2a002823203c7765696768743efc57656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e2c23203c2f7765696768743e24616e6f6e796d6f75730c012870726f78795f7479706521010130543a3a50726f78795479706500011464656c6179100138543a3a426c6f636b4e756d626572000114696e6465782501010c75313600045c3901537061776e2061206672657368206e6577206163636f756e7420746861742069732067756172616e7465656420746f206265206f746865727769736520696e61636365737369626c652c20616e64fc696e697469616c697a65206974207769746820612070726f7879206f66206070726f78795f747970656020666f7220606f726967696e602073656e6465722e006c5265717569726573206120605369676e656460206f726967696e2e0051012d206070726f78795f74797065603a205468652074797065206f66207468652070726f78792074686174207468652073656e6465722077696c6c2062652072656769737465726564206173206f766572207468654d016e6577206163636f756e742e20546869732077696c6c20616c6d6f737420616c7761797320626520746865206d6f7374207065726d697373697665206050726f7879547970656020706f737369626c6520746f78616c6c6f7720666f72206d6178696d756d20666c65786962696c6974792e51012d2060696e646578603a204120646973616d626967756174696f6e20696e6465782c20696e206361736520746869732069732063616c6c6564206d756c7469706c652074696d657320696e207468652073616d655d017472616e73616374696f6e2028652e672e207769746820607574696c6974793a3a626174636860292e20556e6c65737320796f75277265207573696e67206062617463686020796f752070726f6261626c79206a7573744077616e7420746f20757365206030602e4d012d206064656c6179603a2054686520616e6e6f756e63656d656e7420706572696f64207265717569726564206f662074686520696e697469616c2070726f78792e2057696c6c2067656e6572616c6c79206265147a65726f2e0051014661696c73207769746820604475706c69636174656020696620746869732068617320616c7265616479206265656e2063616c6c656420696e2074686973207472616e73616374696f6e2c2066726f6d207468659873616d652073656e6465722c2077697468207468652073616d6520706172616d65746572732e00e44661696c732069662074686572652061726520696e73756666696369656e742066756e647320746f2070617920666f72206465706f7369742e002823203c7765696768743efc57656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e2c23203c2f7765696768743e8c544f444f3a204d69676874206265206f76657220636f756e74696e6720312072656164386b696c6c5f616e6f6e796d6f757314011c737061776e6572000130543a3a4163636f756e74496400012870726f78795f7479706521010130543a3a50726f787954797065000114696e6465782501010c753136000118686569676874ad010138543a3a426c6f636b4e756d6265720001246578745f696e646578ad01010c753332000550b452656d6f76657320612070726576696f75736c7920737061776e656420616e6f6e796d6f75732070726f78792e0049015741524e494e473a202a2a416c6c2061636365737320746f2074686973206163636f756e742077696c6c206265206c6f73742e2a2a20416e792066756e64732068656c6420696e2069742077696c6c20626534696e61636365737369626c652e0059015265717569726573206120605369676e656460206f726967696e2c20616e64207468652073656e646572206163636f756e74206d7573742068617665206265656e206372656174656420627920612063616c6c20746fa860616e6f6e796d6f757360207769746820636f72726573706f6e64696e6720706172616d65746572732e004d012d2060737061776e6572603a20546865206163636f756e742074686174206f726967696e616c6c792063616c6c65642060616e6f6e796d6f75736020746f206372656174652074686973206163636f756e742e4d012d2060696e646578603a2054686520646973616d626967756174696f6e20696e646578206f726967696e616c6c792070617373656420746f2060616e6f6e796d6f7573602e2050726f6261626c79206030602e01012d206070726f78795f74797065603a205468652070726f78792074797065206f726967696e616c6c792070617373656420746f2060616e6f6e796d6f7573602e3d012d2060686569676874603a2054686520686569676874206f662074686520636861696e207768656e207468652063616c6c20746f2060616e6f6e796d6f757360207761732070726f6365737365642e49012d20606578745f696e646578603a205468652065787472696e73696320696e64657820696e207768696368207468652063616c6c20746f2060616e6f6e796d6f757360207761732070726f6365737365642e0049014661696c73207769746820604e6f5065726d697373696f6e6020696e2063617365207468652063616c6c6572206973206e6f7420612070726576696f75736c79206372656174656420616e6f6e796d6f7573f06163636f756e742077686f73652060616e6f6e796d6f7573602063616c6c2068617320636f72726573706f6e64696e6720706172616d65746572732e002823203c7765696768743efc57656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e2c23203c2f7765696768743e20616e6e6f756e63650801107265616c000130543a3a4163636f756e74496400012463616c6c5f6861736824013443616c6c486173684f663c543e00065405015075626c697368207468652068617368206f6620612070726f78792d63616c6c20746861742077696c6c206265206d61646520696e20746865206675747572652e005d0154686973206d7573742062652063616c6c656420736f6d65206e756d626572206f6620626c6f636b73206265666f72652074686520636f72726573706f6e64696e67206070726f78796020697320617474656d7074656425016966207468652064656c6179206173736f6369617465642077697468207468652070726f78792072656c6174696f6e736869702069732067726561746572207468616e207a65726f2e0011014e6f206d6f7265207468616e20604d617850656e64696e676020616e6e6f756e63656d656e7473206d6179206265206d61646520617420616e79206f6e652074696d652e000901546869732077696c6c2074616b652061206465706f736974206f662060416e6e6f756e63656d656e744465706f736974466163746f72602061732077656c6c206173190160416e6e6f756e63656d656e744465706f736974426173656020696620746865726520617265206e6f206f746865722070656e64696e6720616e6e6f756e63656d656e74732e002501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420612070726f7879206f6620607265616c602e002c506172616d65746572733a0d012d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e15012d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e002823203c7765696768743e6057656967687420697320612066756e6374696f6e206f663a982d20413a20746865206e756d626572206f6620616e6e6f756e63656d656e7473206d6164652ea02d20503a20746865206e756d626572206f662070726f78696573207468652075736572206861732e2c23203c2f7765696768743e4c72656d6f76655f616e6e6f756e63656d656e740801107265616c000130543a3a4163636f756e74496400012463616c6c5f6861736824013443616c6c486173684f663c543e0007407052656d6f7665206120676976656e20616e6e6f756e63656d656e742e0059014d61792062652063616c6c656420627920612070726f7879206163636f756e7420746f2072656d6f766520612063616c6c20746865792070726576696f75736c7920616e6e6f756e63656420616e642072657475726e30746865206465706f7369742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a0d012d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e15012d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e002823203c7765696768743e6057656967687420697320612066756e6374696f6e206f663a982d20413a20746865206e756d626572206f6620616e6e6f756e63656d656e7473206d6164652ea02d20503a20746865206e756d626572206f662070726f78696573207468652075736572206861732e2c23203c2f7765696768743e4c72656a6563745f616e6e6f756e63656d656e7408012064656c6567617465000130543a3a4163636f756e74496400012463616c6c5f6861736824013443616c6c486173684f663c543e000840b052656d6f76652074686520676976656e20616e6e6f756e63656d656e74206f6620612064656c65676174652e0061014d61792062652063616c6c6564206279206120746172676574202870726f7869656429206163636f756e7420746f2072656d6f766520612063616c6c2074686174206f6e65206f662074686569722064656c6567617465732501286064656c656761746560292068617320616e6e6f756e63656420746865792077616e7420746f20657865637574652e20546865206465706f7369742069732072657475726e65642e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733af42d206064656c6567617465603a20546865206163636f756e7420746861742070726576696f75736c7920616e6e6f756e636564207468652063616c6c2ebc2d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f206265206d6164652e002823203c7765696768743e6057656967687420697320612066756e6374696f6e206f663a982d20413a20746865206e756d626572206f6620616e6e6f756e63656d656e7473206d6164652ea02d20503a20746865206e756d626572206f662070726f78696573207468652075736572206861732e2c23203c2f7765696768743e3c70726f78795f616e6e6f756e63656410012064656c6567617465000130543a3a4163636f756e7449640001107265616c000130543a3a4163636f756e744964000140666f7263655f70726f78795f74797065d90301504f7074696f6e3c543a3a50726f7879547970653e00011063616c6c09020160426f783c3c5420617320436f6e6669673e3a3a43616c6c3e0009444d0144697370617463682074686520676976656e206063616c6c602066726f6d20616e206163636f756e742074686174207468652073656e64657220697320617574686f72697a656420666f72207468726f75676830606164645f70726f7879602e00a852656d6f76657320616e7920636f72726573706f6e64696e6720616e6e6f756e63656d656e742873292e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a0d012d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e61012d2060666f7263655f70726f78795f74797065603a2053706563696679207468652065786163742070726f7879207479706520746f206265207573656420616e6420636865636b656420666f7220746869732063616c6c2ed02d206063616c6c603a205468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e002823203c7765696768743e6057656967687420697320612066756e6374696f6e206f663a982d20413a20746865206e756d626572206f6620616e6e6f756e63656d656e7473206d6164652ea02d20503a20746865206e756d626572206f662070726f78696573207468652075736572206861732e2c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ed90304184f7074696f6e0404540121010108104e6f6e6500000010536f6d65040021010000010000dd030c3c70616c6c65745f6d756c74697369671870616c6c65741043616c6c0404540001105061735f6d756c74695f7468726573686f6c645f310801446f746865725f7369676e61746f72696573dc01445665633c543a3a4163636f756e7449643e00011063616c6c09020160426f783c3c5420617320436f6e6669673e3a3a43616c6c3e0000405101496d6d6564696174656c792064697370617463682061206d756c74692d7369676e61747572652063616c6c207573696e6720612073696e676c6520617070726f76616c2066726f6d207468652063616c6c65722e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003d012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f206172652070617274206f662074686501016d756c74692d7369676e61747572652c2062757420646f206e6f7420706172746963697061746520696e2074686520617070726f76616c2070726f636573732e882d206063616c6c603a205468652063616c6c20746f2062652065786563757465642e00b8526573756c74206973206571756976616c656e7420746f20746865206469737061746368656420726573756c742e002823203c7765696768743e19014f285a202b204329207768657265205a20697320746865206c656e677468206f66207468652063616c6c20616e6420432069747320657865637574696f6e207765696768742e7c2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d442d204442205765696768743a204e6f6e65482d20506c75732043616c6c205765696768742c23203c2f7765696768743e2061735f6d756c74691801247468726573686f6c642501010c7531360001446f746865725f7369676e61746f72696573dc01445665633c543a3a4163636f756e7449643e00013c6d617962655f74696d65706f696e74e10301844f7074696f6e3c54696d65706f696e743c543a3a426c6f636b4e756d6265723e3e00011063616c6c2801284f706171756543616c6c00012873746f72655f63616c6ce80110626f6f6c0001286d61785f7765696768742001185765696768740001b45501526567697374657220617070726f76616c20666f72206120646973706174636820746f206265206d6164652066726f6d20612064657465726d696e697374696320636f6d706f73697465206163636f756e74206966f8617070726f766564206279206120746f74616c206f6620607468726573686f6c64202d203160206f6620606f746865725f7369676e61746f72696573602e00b049662074686572652061726520656e6f7567682c207468656e206469737061746368207468652063616c6c2e002d015061796d656e743a20604465706f73697442617365602077696c6c20626520726573657276656420696620746869732069732074686520666972737420617070726f76616c2c20706c75733d01607468726573686f6c64602074696d657320604465706f736974466163746f72602e2049742069732072657475726e6564206f6e636520746869732064697370617463682068617070656e73206f723469732063616e63656c6c65642e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0055012d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e41012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f766520746869736c64697370617463682e204d6179206e6f7420626520656d7074792e59012d20606d617962655f74696d65706f696e74603a20496620746869732069732074686520666972737420617070726f76616c2c207468656e2074686973206d75737420626520604e6f6e65602e20496620697420697351016e6f742074686520666972737420617070726f76616c2c207468656e206974206d7573742062652060536f6d65602c2077697468207468652074696d65706f696e742028626c6f636b206e756d62657220616e64d47472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c207472616e73616374696f6e2e882d206063616c6c603a205468652063616c6c20746f2062652065786563757465642e001d014e4f54453a20556e6c6573732074686973206973207468652066696e616c20617070726f76616c2c20796f752077696c6c2067656e6572616c6c792077616e7420746f20757365190160617070726f76655f61735f6d756c74696020696e73746561642c2073696e6365206974206f6e6c7920726571756972657320612068617368206f66207468652063616c6c2e005901526573756c74206973206571756976616c656e7420746f20746865206469737061746368656420726573756c7420696620607468726573686f6c64602069732065786163746c79206031602e204f746865727769736555016f6e20737563636573732c20726573756c7420697320604f6b6020616e642074686520726573756c742066726f6d2074686520696e746572696f722063616c6c2c206966206974207761732065786563757465642cdc6d617920626520666f756e6420696e20746865206465706f736974656420604d756c7469736967457865637574656460206576656e742e002823203c7765696768743e502d20604f2853202b205a202b2043616c6c29602ecc2d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e3d012d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f66450120207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2e21012d204f6e652063616c6c20656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285a296020776865726520605a602069732074782d6c656e2ebc2d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602ed42d20557020746f206f6e652062696e6172792073656172636820616e6420696e736572742028604f286c6f6753202b20532960292ef82d20492f4f3a2031207265616420604f285329602c20757020746f2031206d757461746520604f285329602e20557020746f206f6e652072656d6f76652e302d204f6e65206576656e742e6c2d2054686520776569676874206f6620746865206063616c6c602e4d012d2053746f726167653a20696e7365727473206f6e65206974656d2c2076616c75652073697a6520626f756e64656420627920604d61785369676e61746f72696573602c20776974682061206465706f7369741901202074616b656e20666f7220697473206c69666574696d65206f6620604465706f73697442617365202b207468726573686f6c64202a204465706f736974466163746f72602e7c2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d302d204442205765696768743a2101202020202d2052656164733a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d2c2043616c6c7320286966206073746f72655f63616c6c60292501202020202d205772697465733a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d2c2043616c6c7320286966206073746f72655f63616c6c6029482d20506c75732043616c6c205765696768742c23203c2f7765696768743e40617070726f76655f61735f6d756c74691401247468726573686f6c642501010c7531360001446f746865725f7369676e61746f72696573dc01445665633c543a3a4163636f756e7449643e00013c6d617962655f74696d65706f696e74e10301844f7074696f6e3c54696d65706f696e743c543a3a426c6f636b4e756d6265723e3e00012463616c6c5f686173680401205b75383b2033325d0001286d61785f77656967687420011857656967687400028c5501526567697374657220617070726f76616c20666f72206120646973706174636820746f206265206d6164652066726f6d20612064657465726d696e697374696320636f6d706f73697465206163636f756e74206966f8617070726f766564206279206120746f74616c206f6620607468726573686f6c64202d203160206f6620606f746865725f7369676e61746f72696573602e002d015061796d656e743a20604465706f73697442617365602077696c6c20626520726573657276656420696620746869732069732074686520666972737420617070726f76616c2c20706c75733d01607468726573686f6c64602074696d657320604465706f736974466163746f72602e2049742069732072657475726e6564206f6e636520746869732064697370617463682068617070656e73206f723469732063616e63656c6c65642e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0055012d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e41012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f766520746869736c64697370617463682e204d6179206e6f7420626520656d7074792e59012d20606d617962655f74696d65706f696e74603a20496620746869732069732074686520666972737420617070726f76616c2c207468656e2074686973206d75737420626520604e6f6e65602e20496620697420697351016e6f742074686520666972737420617070726f76616c2c207468656e206974206d7573742062652060536f6d65602c2077697468207468652074696d65706f696e742028626c6f636b206e756d62657220616e64d47472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c207472616e73616374696f6e2ecc2d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f2062652065786563757465642e0035014e4f54453a2049662074686973206973207468652066696e616c20617070726f76616c2c20796f752077696c6c2077616e7420746f20757365206061735f6d756c74696020696e73746561642e002823203c7765696768743e242d20604f285329602ecc2d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e3d012d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f66450120207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2ebc2d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602ed42d20557020746f206f6e652062696e6172792073656172636820616e6420696e736572742028604f286c6f6753202b20532960292ef82d20492f4f3a2031207265616420604f285329602c20757020746f2031206d757461746520604f285329602e20557020746f206f6e652072656d6f76652e302d204f6e65206576656e742e4d012d2053746f726167653a20696e7365727473206f6e65206974656d2c2076616c75652073697a6520626f756e64656420627920604d61785369676e61746f72696573602c20776974682061206465706f7369741901202074616b656e20666f7220697473206c69666574696d65206f6620604465706f73697442617365202b207468726573686f6c64202a204465706f736974466163746f72602e882d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d302d204442205765696768743ab8202020202d20526561643a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745dbc202020202d2057726974653a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d2c23203c2f7765696768743e3c63616e63656c5f61735f6d756c74691001247468726573686f6c642501010c7531360001446f746865725f7369676e61746f72696573dc01445665633c543a3a4163636f756e7449643e00012474696d65706f696e742d01016454696d65706f696e743c543a3a426c6f636b4e756d6265723e00012463616c6c5f686173680401205b75383b2033325d000368550143616e63656c2061207072652d6578697374696e672c206f6e2d676f696e67206d756c7469736967207472616e73616374696f6e2e20416e79206465706f7369742072657365727665642070726576696f75736c79c4666f722074686973206f7065726174696f6e2077696c6c20626520756e7265736572766564206f6e20737563636573732e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0055012d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e41012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f766520746869736c64697370617463682e204d6179206e6f7420626520656d7074792e5d012d206074696d65706f696e74603a205468652074696d65706f696e742028626c6f636b206e756d62657220616e64207472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c787472616e73616374696f6e20666f7220746869732064697370617463682ecc2d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f2062652065786563757465642e002823203c7765696768743e242d20604f285329602ecc2d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e3d012d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f66450120207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2ebc2d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602e302d204f6e65206576656e742e842d20492f4f3a2031207265616420604f285329602c206f6e652072656d6f76652e702d2053746f726167653a2072656d6f766573206f6e65206974656d2e882d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d302d204442205765696768743a1501202020202d20526561643a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d2c20526566756e64204163636f756e742c2043616c6c731901202020202d2057726974653a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d2c20526566756e64204163636f756e742c2043616c6c732c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ee10304184f7074696f6e040454012d010108104e6f6e6500000010536f6d6504002d010000010000e5030c3c70616c6c65745f626f756e746965731870616c6c65741043616c6c0404540001243870726f706f73655f626f756e747908011476616c7565cc013042616c616e63654f663c543e00012c6465736372697074696f6e28011c5665633c75383e0000305450726f706f73652061206e657720626f756e74792e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0051015061796d656e743a20605469705265706f72744465706f73697442617365602077696c6c2062652072657365727665642066726f6d20746865206f726967696e206163636f756e742c2061732077656c6c206173510160446174614465706f736974506572427974656020666f722065616368206279746520696e2060726561736f6e602e2049742077696c6c20626520756e72657365727665642075706f6e20617070726f76616c2c646f7220736c6173686564207768656e2072656a65637465642e00f82d206063757261746f72603a205468652063757261746f72206163636f756e742077686f6d2077696c6c206d616e616765207468697320626f756e74792e642d2060666565603a205468652063757261746f72206665652e25012d206076616c7565603a2054686520746f74616c207061796d656e7420616d6f756e74206f66207468697320626f756e74792c2063757261746f722066656520696e636c756465642ec02d20606465736372697074696f6e603a20546865206465736372697074696f6e206f66207468697320626f756e74792e38617070726f76655f626f756e7479040124626f756e74795f6964ad01012c426f756e7479496e6465780001205d01417070726f7665206120626f756e74792070726f706f73616c2e2041742061206c617465722074696d652c2074686520626f756e74792077696c6c2062652066756e64656420616e64206265636f6d6520616374697665a8616e6420746865206f726967696e616c206465706f7369742077696c6c2062652072657475726e65642e00ac4d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a417070726f76654f726967696e602e002823203c7765696768743e1c2d204f2831292e2c23203c2f7765696768743e3c70726f706f73655f63757261746f720c0124626f756e74795f6964ad01012c426f756e7479496e64657800011c63757261746f724d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500010c666565cc013042616c616e63654f663c543e00021c9041737369676e20612063757261746f7220746f20612066756e64656420626f756e74792e00ac4d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a417070726f76654f726967696e602e002823203c7765696768743e1c2d204f2831292e2c23203c2f7765696768743e40756e61737369676e5f63757261746f72040124626f756e74795f6964ad01012c426f756e7479496e6465780003487c556e61737369676e2063757261746f722066726f6d206120626f756e74792e001d01546869732066756e6374696f6e2063616e206f6e6c792062652063616c6c656420627920746865206052656a6563744f726967696e602061207369676e6564206f726967696e2e003d01496620746869732066756e6374696f6e2069732063616c6c656420627920746865206052656a6563744f726967696e602c20776520617373756d652074686174207468652063757261746f7220697331016d616c6963696f7573206f7220696e6163746976652e204173206120726573756c742c2077652077696c6c20736c617368207468652063757261746f72207768656e20706f737369626c652e006101496620746865206f726967696e206973207468652063757261746f722c2077652074616b6520746869732061732061207369676e20746865792061726520756e61626c6520746f20646f207468656972206a6f6220616e645d01746865792077696c6c696e676c7920676976652075702e20576520636f756c6420736c617368207468656d2c2062757420666f72206e6f7720776520616c6c6f77207468656d20746f207265636f76657220746865697235016465706f73697420616e64206578697420776974686f75742069737375652e20285765206d61792077616e7420746f206368616e67652074686973206966206974206973206162757365642e29005d0146696e616c6c792c20746865206f726967696e2063616e20626520616e796f6e6520696620616e64206f6e6c79206966207468652063757261746f722069732022696e616374697665222e205468697320616c6c6f77736101616e796f6e6520696e2074686520636f6d6d756e69747920746f2063616c6c206f7574207468617420612063757261746f72206973206e6f7420646f696e67207468656972206475652064696c6967656e63652c20616e64390177652073686f756c64207069636b2061206e65772063757261746f722e20496e20746869732063617365207468652063757261746f722073686f756c6420616c736f20626520736c61736865642e002823203c7765696768743e1c2d204f2831292e2c23203c2f7765696768743e386163636570745f63757261746f72040124626f756e74795f6964ad01012c426f756e7479496e64657800042094416363657074207468652063757261746f7220726f6c6520666f72206120626f756e74792e290141206465706f7369742077696c6c2062652072657365727665642066726f6d2063757261746f7220616e6420726566756e642075706f6e207375636365737366756c207061796f75742e00904d6179206f6e6c792062652063616c6c65642066726f6d207468652063757261746f722e002823203c7765696768743e1c2d204f2831292e2c23203c2f7765696768743e3061776172645f626f756e7479080124626f756e74795f6964ad01012c426f756e7479496e64657800012c62656e65666963696172794d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500052c5901417761726420626f756e747920746f20612062656e6566696369617279206163636f756e742e205468652062656e65666963696172792077696c6c2062652061626c6520746f20636c61696d207468652066756e647338616674657220612064656c61792e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265207468652063757261746f72206f66207468697320626f756e74792e00882d2060626f756e74795f6964603a20426f756e747920494420746f2061776172642e19012d206062656e6566696369617279603a205468652062656e6566696369617279206163636f756e742077686f6d2077696c6c207265636569766520746865207061796f75742e002823203c7765696768743e1c2d204f2831292e2c23203c2f7765696768743e30636c61696d5f626f756e7479040124626f756e74795f6964ad01012c426f756e7479496e646578000624ec436c61696d20746865207061796f75742066726f6d20616e206177617264656420626f756e7479206166746572207061796f75742064656c61792e002501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265207468652062656e6566696369617279206f66207468697320626f756e74792e00882d2060626f756e74795f6964603a20426f756e747920494420746f20636c61696d2e002823203c7765696768743e1c2d204f2831292e2c23203c2f7765696768743e30636c6f73655f626f756e7479040124626f756e74795f6964ad01012c426f756e7479496e646578000728390143616e63656c20612070726f706f736564206f722061637469766520626f756e74792e20416c6c207468652066756e64732077696c6c2062652073656e7420746f20747265617375727920616e64cc7468652063757261746f72206465706f7369742077696c6c20626520756e726573657276656420696620706f737369626c652e00c84f6e6c792060543a3a52656a6563744f726967696e602069732061626c6520746f2063616e63656c206120626f756e74792e008c2d2060626f756e74795f6964603a20426f756e747920494420746f2063616e63656c2e002823203c7765696768743e1c2d204f2831292e2c23203c2f7765696768743e50657874656e645f626f756e74795f657870697279080124626f756e74795f6964ad01012c426f756e7479496e64657800011872656d61726b28011c5665633c75383e000828ac457874656e6420746865206578706972792074696d65206f6620616e2061637469766520626f756e74792e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265207468652063757261746f72206f66207468697320626f756e74792e008c2d2060626f756e74795f6964603a20426f756e747920494420746f20657874656e642e8c2d206072656d61726b603a206164646974696f6e616c20696e666f726d6174696f6e2e002823203c7765696768743e1c2d204f2831292e2c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ee9030c2c70616c6c65745f746970731870616c6c65741043616c6c040454000118387265706f72745f617765736f6d65080118726561736f6e28011c5665633c75383e00010c77686f000130543a3a4163636f756e74496400004c59015265706f727420736f6d657468696e672060726561736f6e60207468617420646573657276657320612074697020616e6420636c61696d20616e79206576656e7475616c207468652066696e6465722773206665652e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0051015061796d656e743a20605469705265706f72744465706f73697442617365602077696c6c2062652072657365727665642066726f6d20746865206f726967696e206163636f756e742c2061732077656c6c206173bc60446174614465706f736974506572427974656020666f722065616368206279746520696e2060726561736f6e602e005d012d2060726561736f6e603a2054686520726561736f6e20666f722c206f7220746865207468696e6720746861742064657365727665732c20746865207469703b2067656e6572616c6c7920746869732077696c6c20626558202061205554462d382d656e636f6465642055524c2ee82d206077686f603a20546865206163636f756e742077686963682073686f756c6420626520637265646974656420666f7220746865207469702e0074456d69747320604e657754697060206966207375636365737366756c2e002823203c7765696768743ec82d20436f6d706c65786974793a20604f2852296020776865726520605260206c656e677468206f662060726561736f6e602e9020202d20656e636f64696e6720616e642068617368696e67206f662027726561736f6e27702d20446252656164733a2060526561736f6e73602c20605469707360742d2044625772697465733a2060526561736f6e73602c206054697073602c23203c2f7765696768743e2c726574726163745f7469700401106861736824011c543a3a4861736800014c5101526574726163742061207072696f72207469702d7265706f72742066726f6d20607265706f72745f617765736f6d65602c20616e642063616e63656c207468652070726f63657373206f662074697070696e672e00dc4966207375636365737366756c2c20746865206f726967696e616c206465706f7369742077696c6c20626520756e72657365727665642e004d01546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642074686520746970206964656e7469666965642062792060686173686041016d7573742068617665206265656e207265706f7274656420627920746865207369676e696e67206163636f756e74207468726f75676820607265706f72745f617765736f6d65602028616e64206e6f744c7468726f75676820607469705f6e657760292e0061012d206068617368603a20546865206964656e74697479206f6620746865206f70656e2074697020666f722077686963682061207469702076616c7565206973206465636c617265642e205468697320697320666f726d65645d0120206173207468652068617368206f6620746865207475706c65206f6620746865206f726967696e616c207469702060726561736f6e6020616e64207468652062656e6566696369617279206163636f756e742049442e008c456d697473206054697052657472616374656460206966207375636365737366756c2e002823203c7765696768743e502d20436f6d706c65786974793a20604f28312960d820202d20446570656e6473206f6e20746865206c656e677468206f662060543a3a48617368602077686963682069732066697865642e8c2d20446252656164733a206054697073602c20606f726967696e206163636f756e7460bc2d2044625772697465733a2060526561736f6e73602c206054697073602c20606f726967696e206163636f756e74602c23203c2f7765696768743e1c7469705f6e65770c0118726561736f6e28011c5665633c75383e00010c77686f000130543a3a4163636f756e7449640001247469705f76616c7565cc013042616c616e63654f663c543e000258f04769766520612074697020666f7220736f6d657468696e67206e65773b206e6f2066696e6465722773206665652077696c6c2062652074616b656e2e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d7573742062652061706d656d626572206f662074686520605469707065727360207365742e005d012d2060726561736f6e603a2054686520726561736f6e20666f722c206f7220746865207468696e6720746861742064657365727665732c20746865207469703b2067656e6572616c6c7920746869732077696c6c20626558202061205554462d382d656e636f6465642055524c2ee82d206077686f603a20546865206163636f756e742077686963682073686f756c6420626520637265646974656420666f7220746865207469702e4d012d20607469705f76616c7565603a2054686520616d6f756e74206f66207469702074686174207468652073656e64657220776f756c64206c696b6520746f20676976652e20546865206d656469616e20746970d4202076616c7565206f662061637469766520746970706572732077696c6c20626520676976656e20746f20746865206077686f602e0074456d69747320604e657754697060206966207375636365737366756c2e002823203c7765696768743e51012d20436f6d706c65786974793a20604f2852202b2054296020776865726520605260206c656e677468206f662060726561736f6e602c2060546020697320746865206e756d626572206f6620746970706572732e5d0120202d20604f285429603a206465636f64696e6720605469707065726020766563206f66206c656e677468206054602e20605460206973206368617267656420617320757070657220626f756e6420676976656e2062792d012020202060436f6e7461696e734c656e677468426f756e64602e205468652061637475616c20636f737420646570656e6473206f6e2074686520696d706c656d656e746174696f6e206f66442020202060543a3a54697070657273602ee020202d20604f285229603a2068617368696e6720616e6420656e636f64696e67206f6620726561736f6e206f66206c656e677468206052607c2d20446252656164733a206054697070657273602c2060526561736f6e7360742d2044625772697465733a2060526561736f6e73602c206054697073602c23203c2f7765696768743e0c7469700801106861736824011c543a3a486173680001247469705f76616c7565cc013042616c616e63654f663c543e000360b04465636c6172652061207469702076616c756520666f7220616e20616c72656164792d6f70656e207469702e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d7573742062652061706d656d626572206f662074686520605469707065727360207365742e0061012d206068617368603a20546865206964656e74697479206f6620746865206f70656e2074697020666f722077686963682061207469702076616c7565206973206465636c617265642e205468697320697320666f726d65645d0120206173207468652068617368206f6620746865207475706c65206f66207468652068617368206f6620746865206f726967696e616c207469702060726561736f6e6020616e64207468652062656e65666963696172793420206163636f756e742049442e4d012d20607469705f76616c7565603a2054686520616d6f756e74206f66207469702074686174207468652073656e64657220776f756c64206c696b6520746f20676976652e20546865206d656469616e20746970d4202076616c7565206f662061637469766520746970706572732077696c6c20626520676976656e20746f20746865206077686f602e006101456d6974732060546970436c6f73696e676020696620746865207468726573686f6c64206f66207469707065727320686173206265656e207265616368656420616e642074686520636f756e74646f776e20706572696f643068617320737461727465642e002823203c7765696768743e61012d20436f6d706c65786974793a20604f285429602077686572652060546020697320746865206e756d626572206f6620746970706572732e206465636f64696e6720605469707065726020766563206f66206c656e6774682d0120206054602c20696e736572742074697020616e6420636865636b20636c6f73696e672c20605460206973206368617267656420617320757070657220626f756e6420676976656e2062795d01202060436f6e7461696e734c656e677468426f756e64602e205468652061637475616c20636f737420646570656e6473206f6e2074686520696d706c656d656e746174696f6e206f662060543a3a54697070657273602e005d01202041637475616c6c792077656967687420636f756c64206265206c6f77657220617320697420646570656e6473206f6e20686f77206d616e7920746970732061726520696e20604f70656e5469706020627574206974d02020697320776569676874656420617320696620616c6d6f73742066756c6c20692e65206f66206c656e6774682060542d31602e702d20446252656164733a206054697070657273602c20605469707360482d2044625772697465733a206054697073602c23203c2f7765696768743e24636c6f73655f7469700401106861736824011c543a3a486173680004405c436c6f736520616e64207061796f75742061207469702e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e00150154686520746970206964656e74696669656420627920606861736860206d75737420686176652066696e69736865642069747320636f756e74646f776e20706572696f642e0061012d206068617368603a20546865206964656e74697479206f6620746865206f70656e2074697020666f722077686963682061207469702076616c7565206973206465636c617265642e205468697320697320666f726d65645d0120206173207468652068617368206f6620746865207475706c65206f6620746865206f726967696e616c207469702060726561736f6e6020616e64207468652062656e6566696369617279206163636f756e742049442e002823203c7765696768743e61012d20436f6d706c65786974793a20604f285429602077686572652060546020697320746865206e756d626572206f6620746970706572732e206465636f64696e6720605469707065726020766563206f66206c656e677468510120206054602e20605460206973206368617267656420617320757070657220626f756e6420676976656e2062792060436f6e7461696e734c656e677468426f756e64602e205468652061637475616c20636f7374c02020646570656e6473206f6e2074686520696d706c656d656e746174696f6e206f662060543a3a54697070657273602ea82d20446252656164733a206054697073602c206054697070657273602c20607469702066696e64657260d82d2044625772697465733a2060526561736f6e73602c206054697073602c206054697070657273602c20607469702066696e646572602c23203c2f7765696768743e24736c6173685f7469700401106861736824011c543a3a486173680005309452656d6f766520616e6420736c61736820616e20616c72656164792d6f70656e207469702e00a84d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a52656a6563744f726967696e602e00f44173206120726573756c742c207468652066696e64657220697320736c617368656420616e6420746865206465706f7369747320617265206c6f73742e0084456d6974732060546970536c617368656460206966207375636365737366756c2e002823203c7765696768743efc2020605460206973206368617267656420617320757070657220626f756e6420676976656e2062792060436f6e7461696e734c656e677468426f756e64602e010120205468652061637475616c20636f737420646570656e6473206f6e2074686520696d706c656d656e746174696f6e206f662060543a3a54697070657273602e2c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632eed030c9070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173651870616c6c65741043616c6c0404540001103c7375626d69745f756e7369676e65640801307261775f736f6c7574696f6ef103017c426f783c526177536f6c7574696f6e3c536f6c7574696f6e4f663c543e3e3e00011c7769746e657373c5040158536f6c7574696f6e4f72536e617073686f7453697a65000038a45375626d6974206120736f6c7574696f6e20666f722074686520756e7369676e65642070686173652e00c8546865206469737061746368206f726967696e20666f20746869732063616c6c206d757374206265205f5f6e6f6e655f5f2e003d0154686973207375626d697373696f6e20697320636865636b6564206f6e2074686520666c792e204d6f72656f7665722c207468697320756e7369676e656420736f6c7574696f6e206973206f6e6c79550176616c696461746564207768656e207375626d697474656420746f2074686520706f6f6c2066726f6d20746865202a2a6c6f63616c2a2a206e6f64652e204566666563746976656c792c2074686973206d65616e735d0174686174206f6e6c79206163746976652076616c696461746f72732063616e207375626d69742074686973207472616e73616374696f6e207768656e20617574686f72696e67206120626c6f636b202873696d696c617240746f20616e20696e686572656e74292e005901546f2070726576656e7420616e7920696e636f727265637420736f6c7574696f6e2028616e642074687573207761737465642074696d652f776569676874292c2074686973207472616e73616374696f6e2077696c6c4d0170616e69632069662074686520736f6c7574696f6e207375626d6974746564206279207468652076616c696461746f7220697320696e76616c696420696e20616e79207761792c206566666563746976656c799c70757474696e6720746865697220617574686f72696e6720726577617264206174207269736b2e00e04e6f206465706f736974206f7220726577617264206973206173736f63696174656420776974682074686973207375626d697373696f6e2e6c7365745f6d696e696d756d5f756e747275737465645f73636f72650401406d617962655f6e6578745f73636f7265c90401544f7074696f6e3c456c656374696f6e53636f72653e000114b05365742061206e65772076616c756520666f7220604d696e696d756d556e7472757374656453636f7265602e00d84469737061746368206f726967696e206d75737420626520616c69676e656420776974682060543a3a466f7263654f726967696e602e00f05468697320636865636b2063616e206265207475726e6564206f66662062792073657474696e67207468652076616c756520746f20604e6f6e65602e747365745f656d657267656e63795f656c656374696f6e5f726573756c74040120737570706f727473cd040158537570706f7274733c543a3a4163636f756e7449643e0002205901536574206120736f6c7574696f6e20696e207468652071756575652c20746f2062652068616e646564206f757420746f2074686520636c69656e74206f6620746869732070616c6c657420696e20746865206e6578748863616c6c20746f2060456c656374696f6e50726f76696465723a3a656c656374602e004501546869732063616e206f6e6c79206265207365742062792060543a3a466f7263654f726967696e602c20616e64206f6e6c79207768656e207468652070686173652069732060456d657267656e6379602e00610154686520736f6c7574696f6e206973206e6f7420636865636b656420666f7220616e7920666561736962696c69747920616e6420697320617373756d656420746f206265207472757374776f727468792c20617320616e795101666561736962696c69747920636865636b20697473656c662063616e20696e207072696e6369706c652063617573652074686520656c656374696f6e2070726f6365737320746f206661696c202864756520746f686d656d6f72792f77656967687420636f6e73747261696e73292e187375626d69740801307261775f736f6c7574696f6ef103017c426f783c526177536f6c7574696f6e3c536f6c7574696f6e4f663c543e3e3e0001586e756d5f7369676e65645f7375626d697373696f6e7310010c7533320003349c5375626d6974206120736f6c7574696f6e20666f7220746865207369676e65642070686173652e00d0546865206469737061746368206f726967696e20666f20746869732063616c6c206d757374206265205f5f7369676e65645f5f2e005d0154686520736f6c7574696f6e20697320706f74656e7469616c6c79207175657565642c206261736564206f6e2074686520636c61696d65642073636f726520616e642070726f6365737365642061742074686520656e64506f6620746865207369676e65642070686173652e005d0141206465706f73697420697320726573657276656420616e64207265636f7264656420666f722074686520736f6c7574696f6e2e204261736564206f6e20746865206f7574636f6d652c2074686520736f6c7574696f6e15016d696768742062652072657761726465642c20736c61736865642c206f722067657420616c6c206f7220612070617274206f6620746865206465706f736974206261636b2e002823203c7765696768743eb051756575652073697a65206d7573742062652070726f7669646564206173207769746e65737320646174612e2c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ef103089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173652c526177536f6c7574696f6e04045301f503000c0120736f6c7574696f6ef50301045300011473636f7265c1040134456c656374696f6e53636f7265000114726f756e6410010c7533320000f5030840706f6c6b61646f745f72756e74696d65544e706f73436f6d70616374536f6c7574696f6e31360000400118766f74657331f90300000118766f74657332050400000118766f74657333190400000118766f74657334250400000118766f74657335310400000118766f746573363d0400000118766f74657337490400000118766f74657338550400000118766f7465733961040000011c766f74657331306d040000011c766f746573313179040000011c766f746573313285040000011c766f746573313391040000011c766f74657331349d040000011c766f7465733135a9040000011c766f7465733136b504000000f903000002fd0300fd0300000408ad010104000104000006250100050400000209040009040000040cad010d040104000d04000004080104110400110400000615040015040c3473705f61726974686d65746963287065725f7468696e677318506572553136000004002501010c753136000019040000021d04001d040000040cad0121040104002104000003020000000d0400250400000229040029040000040cad012d040104002d04000003030000000d0400310400000235040035040000040cad0139040104003904000003040000000d04003d0400000241040041040000040cad0145040104004504000003050000000d040049040000024d04004d040000040cad0151040104005104000003060000000d0400550400000259040059040000040cad015d040104005d04000003070000000d0400610400000265040065040000040cad0169040104006904000003080000000d04006d0400000271040071040000040cad0175040104007504000003090000000d040079040000027d04007d040000040cad01810401040081040000030a0000000d0400850400000289040089040000040cad018d040104008d040000030b0000000d0400910400000295040095040000040cad01990401040099040000030c0000000d04009d04000002a10400a1040000040cad01a504010400a5040000030d0000000d0400a904000002ad0400ad040000040cad01b104010400b1040000030e0000000d0400b504000002b90400b9040000040cad01bd04010400bd040000030f0000000d0400c104000003030000001800c504089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f706861736558536f6c7574696f6e4f72536e617073686f7453697a650000080118766f74657273ad01010c75333200011c74617267657473ad01010c7533320000c90404184f7074696f6e04045401c1040108104e6f6e6500000010536f6d650400c1040000010000cd04000002d10400d1040000040800d50400d504084473705f6e706f735f656c656374696f6e731c537570706f727404244163636f756e744964010000080114746f74616c18013c457874656e64656442616c616e6365000118766f74657273f401845665633c284163636f756e7449642c20457874656e64656442616c616e6365293e0000d904106c706f6c6b61646f745f72756e74696d655f70617261636861696e7334636f6e66696775726174696f6e1870616c6c65741043616c6c0404540001a4807365745f76616c69646174696f6e5f757067726164655f6672657175656e637904010c6e6577100138543a3a426c6f636b4e756d62657200000494536574207468652076616c69646174696f6e2075706772616465206672657175656e63792e707365745f76616c69646174696f6e5f757067726164655f64656c617904010c6e6577100138543a3a426c6f636b4e756d62657200010484536574207468652076616c69646174696f6e20757067726164652064656c61792e647365745f636f64655f726574656e74696f6e5f706572696f6404010c6e6577100138543a3a426c6f636b4e756d626572000204d05365742074686520616363657074616e636520706572696f6420666f7220616e20696e636c756465642063616e6469646174652e447365745f6d61785f636f64655f73697a6504010c6e657710010c753332000304dc53657420746865206d61782076616c69646174696f6e20636f64652073697a6520666f7220696e636f6d696e672075706772616465732e407365745f6d61785f706f765f73697a6504010c6e657710010c753332000404c453657420746865206d617820504f5620626c6f636b2073697a6520666f7220696e636f6d696e672075706772616465732e587365745f6d61785f686561645f646174615f73697a6504010c6e657710010c7533320005049453657420746865206d6178206865616420646174612073697a6520666f722070617261732e507365745f706172617468726561645f636f72657304010c6e657710010c753332000604b453657420746865206e756d626572206f66207061726174687265616420657865637574696f6e20636f7265732e587365745f706172617468726561645f7265747269657304010c6e657710010c753332000704d853657420746865206e756d626572206f66207265747269657320666f72206120706172746963756c617220706172617468726561642e707365745f67726f75705f726f746174696f6e5f6672657175656e637904010c6e6577100138543a3a426c6f636b4e756d626572000804d0536574207468652070617261636861696e2076616c696461746f722d67726f757020726f746174696f6e206672657175656e6379747365745f636861696e5f617661696c6162696c6974795f706572696f6404010c6e6577100138543a3a426c6f636b4e756d626572000904ac5365742074686520617661696c6162696c69747920706572696f6420666f722070617261636861696e732e787365745f7468726561645f617661696c6162696c6974795f706572696f6404010c6e6577100138543a3a426c6f636b4e756d626572000a04b05365742074686520617661696c6162696c69747920706572696f6420666f722070617261746872656164732e607365745f7363686564756c696e675f6c6f6f6b616865616404010c6e657710010c753332000b04390153657420746865207363686564756c696e67206c6f6f6b61686561642c20696e206578706563746564206e756d626572206f6620626c6f636b73206174207065616b207468726f7567687075742e6c7365745f6d61785f76616c696461746f72735f7065725f636f726504010c6e65777902012c4f7074696f6e3c7533323e000c04ec53657420746865206d6178696d756d206e756d626572206f662076616c696461746f727320746f2061737369676e20746f20616e7920636f72652e487365745f6d61785f76616c696461746f727304010c6e65777902012c4f7074696f6e3c7533323e000d040d0153657420746865206d6178696d756d206e756d626572206f662076616c696461746f727320746f2075736520696e2070617261636861696e20636f6e73656e7375732e487365745f646973707574655f706572696f6404010c6e657710013053657373696f6e496e646578000e040d0153657420746865206469737075746520706572696f642c20696e206e756d626572206f662073657373696f6e7320746f206b65657020666f722064697370757465732eb47365745f646973707574655f706f73745f636f6e636c7573696f6e5f616363657074616e63655f706572696f6404010c6e6577100138543a3a426c6f636b4e756d626572000f04c853657420746865206469737075746520706f737420636f6e636c7573696f6e20616363657074616e636520706572696f642e687365745f646973707574655f6d61785f7370616d5f736c6f747304010c6e657710010c753332001004b453657420746865206d6178696d756d206e756d626572206f662064697370757465207370616d20736c6f74732ea47365745f646973707574655f636f6e636c7573696f6e5f62795f74696d655f6f75745f706572696f6404010c6e6577100138543a3a426c6f636b4e756d626572001104b853657420746865206469737075746520636f6e636c7573696f6e2062792074696d65206f757420706572696f642e447365745f6e6f5f73686f775f736c6f747304010c6e657710010c753332001208f853657420746865206e6f2073686f7720736c6f74732c20696e206e756d626572206f66206e756d626572206f6620636f6e73656e73757320736c6f74732e4c4d757374206265206174206c6561737420312e507365745f6e5f64656c61795f7472616e6368657304010c6e657710010c7533320013049c5365742074686520746f74616c206e756d626572206f662064656c6179207472616e636865732e787365745f7a65726f74685f64656c61795f7472616e6368655f776964746804010c6e657710010c7533320014048c53657420746865207a65726f74682064656c6179207472616e6368652077696474682e507365745f6e65656465645f617070726f76616c7304010c6e657710010c753332001504dc53657420746865206e756d626572206f662076616c696461746f7273206e656564656420746f20617070726f7665206120626c6f636b2e707365745f72656c61795f7672665f6d6f64756c6f5f73616d706c657304010c6e657710010c753332001604590153657420746865206e756d626572206f662073616d706c657320746f20646f206f6620746865206052656c61795652464d6f64756c6f6020617070726f76616c2061737369676e6d656e7420637269746572696f6e2e687365745f6d61785f7570776172645f71756575655f636f756e7404010c6e657710010c7533320017042d015365747320746865206d6178696d756d206974656d7320746861742063616e2070726573656e7420696e206120757077617264206469737061746368207175657565206174206f6e63652e647365745f6d61785f7570776172645f71756575655f73697a6504010c6e657710010c75333200180465015365747320746865206d6178696d756d20746f74616c2073697a65206f66206974656d7320746861742063616e2070726573656e7420696e206120757077617264206469737061746368207175657565206174206f6e63652e747365745f6d61785f646f776e776172645f6d6573736167655f73697a6504010c6e657710010c7533320019049c5365742074686520637269746963616c20646f776e77617264206d6573736167652073697a652e707365745f756d705f736572766963655f746f74616c5f77656967687404010c6e6577200118576569676874001a043901536574732074686520736f6674206c696d697420666f7220746865207068617365206f66206469737061746368696e6720646973706174636861626c6520757077617264206d657373616765732e6c7365745f6d61785f7570776172645f6d6573736167655f73697a6504010c6e657710010c753332001b042d015365747320746865206d6178696d756d2073697a65206f6620616e20757077617264206d65737361676520746861742063616e2062652073656e7420627920612063616e6469646174652ea07365745f6d61785f7570776172645f6d6573736167655f6e756d5f7065725f63616e64696461746504010c6e657710010c753332001c0405015365747320746865206d6178696d756d206e756d626572206f66206d65737361676573207468617420612063616e6469646174652063616e20636f6e7461696e2e647365745f68726d705f6f70656e5f726571756573745f74746c04010c6e657710010c753332001d0435015365747320746865206e756d626572206f662073657373696f6e7320616674657220776869636820616e2048524d50206f70656e206368616e6e656c207265717565737420657870697265732e5c7365745f68726d705f73656e6465725f6465706f73697404010c6e657718011c42616c616e6365001e045101536574732074686520616d6f756e74206f662066756e64732074686174207468652073656e6465722073686f756c642070726f7669646520666f72206f70656e696e6720616e2048524d50206368616e6e656c2e687365745f68726d705f726563697069656e745f6465706f73697404010c6e657718011c42616c616e6365001f086101536574732074686520616d6f756e74206f662066756e647320746861742074686520726563697069656e742073686f756c642070726f7669646520666f7220616363657074696e67206f70656e696e6720616e2048524d50206368616e6e656c2e747365745f68726d705f6368616e6e656c5f6d61785f636170616369747904010c6e657710010c7533320020041d015365747320746865206d6178696d756d206e756d626572206f66206d6573736167657320616c6c6f77656420696e20616e2048524d50206368616e6e656c206174206f6e63652e7c7365745f68726d705f6368616e6e656c5f6d61785f746f74616c5f73697a6504010c6e657710010c75333200210451015365747320746865206d6178696d756d20746f74616c2073697a65206f66206d6573736167657320696e20627974657320616c6c6f77656420696e20616e2048524d50206368616e6e656c206174206f6e63652e9c7365745f68726d705f6d61785f70617261636861696e5f696e626f756e645f6368616e6e656c7304010c6e657710010c75333200220449015365747320746865206d6178696d756d206e756d626572206f6620696e626f756e642048524d50206368616e6e656c7320612070617261636861696e20697320616c6c6f77656420746f206163636570742ea07365745f68726d705f6d61785f706172617468726561645f696e626f756e645f6368616e6e656c7304010c6e657710010c7533320023044d015365747320746865206d6178696d756d206e756d626572206f6620696e626f756e642048524d50206368616e6e656c732061207061726174687265616420697320616c6c6f77656420746f206163636570742e847365745f68726d705f6368616e6e656c5f6d61785f6d6573736167655f73697a6504010c6e657710010c7533320024043d015365747320746865206d6178696d756d2073697a65206f662061206d657373616765207468617420636f756c6420657665722062652070757420696e746f20616e2048524d50206368616e6e656c2ea07365745f68726d705f6d61785f70617261636861696e5f6f7574626f756e645f6368616e6e656c7304010c6e657710010c75333200250445015365747320746865206d6178696d756d206e756d626572206f66206f7574626f756e642048524d50206368616e6e656c7320612070617261636861696e20697320616c6c6f77656420746f206f70656e2ea47365745f68726d705f6d61785f706172617468726561645f6f7574626f756e645f6368616e6e656c7304010c6e657710010c75333200260449015365747320746865206d6178696d756d206e756d626572206f66206f7574626f756e642048524d50206368616e6e656c732061207061726174687265616420697320616c6c6f77656420746f206f70656e2e987365745f68726d705f6d61785f6d6573736167655f6e756d5f7065725f63616e64696461746504010c6e657710010c75333200270435015365747320746865206d6178696d756d206e756d626572206f66206f7574626f756e642048524d50206d657373616765732063616e2062652073656e7420627920612063616e6469646174652e747365745f756d705f6d61785f696e646976696475616c5f77656967687404010c6e657720011857656967687400280431015365747320746865206d6178696d756d20616d6f756e74206f662077656967687420616e7920696e646976696475616c20757077617264206d657373616765206d617920636f6e73756d652e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632edd04106c706f6c6b61646f745f72756e74696d655f70617261636861696e73187368617265641870616c6c65741043616c6c040454000100042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ee104106c706f6c6b61646f745f72756e74696d655f70617261636861696e7324696e636c7573696f6e1870616c6c65741043616c6c040454000100042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ee504106c706f6c6b61646f745f72756e74696d655f70617261636861696e733870617261735f696e686572656e741870616c6c65741043616c6c04045400010414656e74657204011064617461e904018450617261636861696e73496e686572656e74446174613c543a3a4865616465723e0000043101456e7465722074686520706172617320696e686572656e742e20546869732077696c6c2070726f63657373206269746669656c647320616e64206261636b65642063616e646964617465732e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ee9040c4c706f6c6b61646f745f7072696d69746976657308763130496e686572656e7444617461040c484452011d02001001246269746669656c6473ed040190556e636865636b65645369676e6564417661696c6162696c6974794269746669656c64730001446261636b65645f63616e646964617465730905017c5665633c4261636b656443616e6469646174653c4844523a3a486173683e3e0001206469737075746573310501604d756c74694469737075746553746174656d656e74536574000134706172656e745f6865616465721d02010c4844520000ed04000002f10400f104104c706f6c6b61646f745f7072696d697469766573087631187369676e65643c556e636865636b65645369676e6564081c5061796c6f616401f5042c5265616c5061796c6f616401f504000c011c7061796c6f6164f504011c5061796c6f616400013c76616c696461746f725f696e6465780105013856616c696461746f72496e6465780001247369676e61747572650505014856616c696461746f725369676e61747572650000f5040c4c706f6c6b61646f745f7072696d69746976657308763150417661696c6162696c6974794269746669656c6400000400f904017c4269745665633c6269747665633a3a6f726465723a3a4c7362302c2075383e0000f90400000708fd0400fd040c18626974766563146f72646572104c7362300000000001050c4c706f6c6b61646f745f7072696d6974697665730876303856616c696461746f72496e6465780000040010010c75333200000505104c706f6c6b61646f745f7072696d6974697665730876303476616c696461746f725f617070245369676e6174757265000004005d010148737232353531393a3a5369676e6174757265000009050000020d05000d050c4c706f6c6b61646f745f7072696d6974697665730876313c4261636b656443616e6469646174650404480124000c012463616e64696461746511050170436f6d6d697474656443616e646964617465526563656970743c483e00013876616c69646974795f766f746573290501605665633c56616c69646974794174746573746174696f6e3e00014476616c696461746f725f696e6469636573f904017c4269745665633c6269747665633a3a6f726465723a3a4c7362302c2075383e000011050c4c706f6c6b61646f745f7072696d69746976657308763164436f6d6d697474656443616e6469646174655265636569707404044801240008012864657363726970746f724d01015843616e64696461746544657363726970746f723c483e00012c636f6d6d69746d656e74731505015043616e646964617465436f6d6d69746d656e7473000015050c4c706f6c6b61646f745f7072696d6974697665730876315043616e646964617465436f6d6d69746d656e747304044e01100018013c7570776172645f6d65737361676573c50101485665633c5570776172644d6573736167653e00014c686f72697a6f6e74616c5f6d65737361676573190501705665633c4f7574626f756e6448726d704d6573736167653c49643e3e00014c6e65775f76616c69646174696f6e5f636f6465210501584f7074696f6e3c56616c69646174696f6e436f64653e000124686561645f6461746169010120486561644461746100016c70726f6365737365645f646f776e776172645f6d6573736167657310010c75333200013868726d705f77617465726d61726b1001044e000019050000021d05001d050860706f6c6b61646f745f636f72655f7072696d6974697665734c4f7574626f756e6448726d704d6573736167650408496401510100080124726563697069656e745101010849640001106461746128015073705f7374643a3a7665633a3a5665633c75383e0000210504184f7074696f6e0404540125050108104e6f6e6500000010536f6d6504002505000001000025050c48706f6c6b61646f745f70617261636861696e287072696d6974697665733856616c69646174696f6e436f64650000040028011c5665633c75383e000029050000022d05002d050c4c706f6c6b61646f745f7072696d6974697665730876304c56616c69646974794174746573746174696f6e00010820496d706c6963697404000505014856616c696461746f725369676e6174757265000100204578706c6963697404000505014856616c696461746f725369676e617475726500020000310500000235050035050c4c706f6c6b61646f745f7072696d6974697665730876314c4469737075746553746174656d656e7453657400000c013863616e6469646174655f686173683905013443616e6469646174654861736800011c73657373696f6e10013053657373696f6e496e64657800012873746174656d656e74733d0501ec5665633c284469737075746553746174656d656e742c2056616c696461746f72496e6465782c2056616c696461746f725369676e6174757265293e000039050860706f6c6b61646f745f636f72655f7072696d6974697665733443616e64696461746548617368000004002401104861736800003d0500000241050041050000040c4505010505050045050c4c706f6c6b61646f745f7072696d697469766573087631404469737075746553746174656d656e740001081456616c696404004905016456616c69644469737075746553746174656d656e744b696e640000001c496e76616c696404004d05016c496e76616c69644469737075746553746174656d656e744b696e640001000049050c4c706f6c6b61646f745f7072696d6974697665730876316456616c69644469737075746553746174656d656e744b696e64000110204578706c696369740000003c4261636b696e675365636f6e646564040024011048617368000100304261636b696e6756616c696404002401104861736800020040417070726f76616c436865636b696e67000300004d050c4c706f6c6b61646f745f7072696d6974697665730876316c496e76616c69644469737075746553746174656d656e744b696e64000104204578706c69636974000000005105106c706f6c6b61646f745f72756e74696d655f70617261636861696e731470617261731870616c6c65741043616c6c04045400011458666f7263655f7365745f63757272656e745f636f646508011070617261510101185061726149640001206e65775f636f64652505013856616c69646174696f6e436f6465000004f8536574207468652073746f7261676520666f72207468652070617261636861696e2076616c69646174696f6e20636f646520696d6d6564696174656c792e58666f7263655f7365745f63757272656e745f6865616408011070617261510101185061726149640001206e65775f686561646901012048656164446174610001040101536574207468652073746f7261676520666f72207468652063757272656e742070617261636861696e2068656164206461746120696d6d6564696174656c792e6c666f7263655f7363686564756c655f636f64655f757067726164650c011070617261510101185061726149640001206e65775f636f64652505013856616c69646174696f6e436f646500014c72656c61795f706172656e745f6e756d626572100138543a3a426c6f636b4e756d6265720002042d015363686564756c6520616e207570677261646520617320696620697420776173207363686564756c656420696e2074686520676976656e2072656c617920706172656e7420626c6f636b2e4c666f7263655f6e6f74655f6e65775f6865616408011070617261510101185061726149640001206e65775f686561646901012048656164446174610003041d014e6f74652061206e657720626c6f636b206865616420666f7220706172612077697468696e2074686520636f6e74657874206f66207468652063757272656e7420626c6f636b2e48666f7263655f71756575655f616374696f6e040110706172615101011850617261496400040cf850757420612070617261636861696e206469726563746c7920696e746f20746865206e6578742073657373696f6e277320616374696f6e2071756575652ef457652063616e277420717565756520697420616e7920736f6f6e6572207468616e207468697320776974686f757420676f696e6720696e746f2074686538696e697469616c697a65722e2e2e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e5505106c706f6c6b61646f745f72756e74696d655f70617261636861696e732c696e697469616c697a65721870616c6c65741043616c6c04045400010434666f7263655f617070726f766504011475705f746f10012c426c6f636b4e756d62657200000c390149737375652061207369676e616c20746f2074686520636f6e73656e73757320656e67696e6520746f20666f726369626c79206163742061732074686f75676820616c6c2070617261636861696e5101626c6f636b7320696e20616c6c2072656c617920636861696e20626c6f636b7320757020746f20616e6420696e636c7564696e672074686520676976656e206e756d62657220696e207468652063757272656e74a0636861696e206172652076616c696420616e642073686f756c642062652066696e616c697a65642e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e5905106c706f6c6b61646f745f72756e74696d655f70617261636861696e730c646d701870616c6c65741043616c6c040454000100042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e5d05106c706f6c6b61646f745f72756e74696d655f70617261636861696e730c756d701870616c6c65741043616c6c04045400010448736572766963655f6f766572776569676874080114696e64657820013c4f766572776569676874496e6465780001307765696768745f6c696d6974200118576569676874000030ac5365727669636520612073696e676c65206f76657277656967687420757077617264206d6573736167652e00c02d20606f726967696e603a204d75737420706173732060457865637574654f7665727765696768744f726967696e602ee82d2060696e646578603a2054686520696e646578206f6620746865206f766572776569676874206d65737361676520746f20736572766963652e1d012d20607765696768745f6c696d6974603a2054686520616d6f756e74206f66207765696768742074686174206d65737361676520657865637574696f6e206d61792074616b652e001c4572726f72733adc2d2060556e6b6e6f776e4d657373616765496e646578603a204d657373616765206f662060696e6465786020697320756e6b6e6f776e2e2d012d20605765696768744f7665724c696d6974603a204d65737361676520657865637574696f6e206d6179207573652067726561746572207468616e20607765696768745f6c696d6974602e001c4576656e74733a8c2d20604f7665727765696768745365727669636564603a204f6e20737563636573732e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e6105106c706f6c6b61646f745f72756e74696d655f70617261636861696e731068726d701870616c6c65741043616c6c04045400011c5868726d705f696e69745f6f70656e5f6368616e6e656c0c0124726563697069656e745101011850617261496400015470726f706f7365645f6d61785f636170616369747910010c75333200016470726f706f7365645f6d61785f6d6573736167655f73697a6510010c7533320000284d01496e697469617465206f70656e696e672061206368616e6e656c2066726f6d20612070617261636861696e20746f206120676976656e20726563697069656e74207769746820676976656e206368616e6e656c2c706172616d65746572732e0059012d206070726f706f7365645f6d61785f636170616369747960202d2073706563696669657320686f77206d616e79206d657373616765732063616e20626520696e20746865206368616e6e656c206174206f6e63652e2d012d206070726f706f7365645f6d61785f6d6573736167655f73697a6560202d2073706563696669657320746865206d6178696d756d2073697a65206f6620746865206d657373616765732e0011015468657365206e756d62657273206172652061207375626a65637420746f207468652072656c61792d636861696e20636f6e66696775726174696f6e206c696d6974732e005101546865206368616e6e656c2063616e206265206f70656e6564206f6e6c792061667465722074686520726563697069656e7420636f6e6669726d7320697420616e64206f6e6c79206f6e20612073657373696f6e1c6368616e67652e6068726d705f6163636570745f6f70656e5f6368616e6e656c04011873656e6465725101011850617261496400010cf041636365707420612070656e64696e67206f70656e206368616e6e656c20726571756573742066726f6d2074686520676976656e2073656e6465722e00f4546865206368616e6e656c2077696c6c206265206f70656e6564206f6e6c79206f6e20746865206e6578742073657373696f6e20626f756e646172792e4868726d705f636c6f73655f6368616e6e656c0401286368616e6e656c5f69648901013448726d704368616e6e656c49640002105501496e69746961746520756e696c61746572616c20636c6f73696e67206f662061206368616e6e656c2e20546865206f726967696e206d75737420626520656974686572207468652073656e646572206f722074686598726563697069656e7420696e20746865206368616e6e656c206265696e6720636c6f7365642e00c054686520636c6f737572652063616e206f6e6c792068617070656e206f6e20612073657373696f6e206368616e67652e40666f7263655f636c65616e5f68726d7004011070617261510101185061726149640003141901546869732065787472696e7369632074726967676572732074686520636c65616e7570206f6620616c6c207468652048524d502073746f72616765206974656d7320746861742101612070617261206d617920686176652e204e6f726d616c6c7920746869732068617070656e73206f6e6365207065722073657373696f6e2c20627574207468697320616c6c6f77730101796f7520746f20747269676765722074686520636c65616e757020696d6d6564696174656c7920666f7220612073706563696669632070617261636861696e2e00504f726967696e206d75737420626520526f6f742e5c666f7263655f70726f636573735f68726d705f6f70656e000410a4466f7263652070726f636573732048524d50206f70656e206368616e6e656c2072657175657374732e0005014966207468657265206172652070656e64696e672048524d50206f70656e206368616e6e656c2072657175657374732c20796f752063616e207573652074686973cc66756e6374696f6e2070726f6365737320616c6c206f662074686f736520726571756573747320696d6d6564696174656c792e60666f7263655f70726f636573735f68726d705f636c6f7365000510a8466f7263652070726f636573732048524d5020636c6f7365206368616e6e656c2072657175657374732e0009014966207468657265206172652070656e64696e672048524d5020636c6f7365206368616e6e656c2072657175657374732c20796f752063616e207573652074686973cc66756e6374696f6e2070726f6365737320616c6c206f662074686f736520726571756573747320696d6d6564696174656c792e6068726d705f63616e63656c5f6f70656e5f726571756573740401286368616e6e656c5f69648901013448726d704368616e6e656c49640006145d01546869732063616e63656c7320612070656e64696e67206f70656e206368616e6e656c20726571756573742e2049742063616e2062652063616e63656c656420626520656974686572206f66207468652073656e64657219016f722074686520726563697069656e7420666f72207468617420726571756573742e20546865206f726967696e206d75737420626520656974686572206f662074686f73652e0055015468652063616e63656c6c696e672068617070656e7320696d6d6564696174656c792e204974206973206e6f7420706f737369626c6520746f2063616e63656c20746865207265717565737420696620697420697344616c72656164792061636365707465642e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e6505105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e3c70617261735f7265676973747261721870616c6c65741043616c6c0404540001182072656769737465720c010869645101011850617261496400013067656e657369735f6865616469010120486561644461746100013c76616c69646174696f6e5f636f64652505013856616c69646174696f6e436f6465000038f852656769737465722068656164206461746120616e642076616c69646174696f6e20636f646520666f72206120726573657276656420506172612049642e0030232320417267756d656e7473c02d20606f726967696e603a204d7573742062652063616c6c6564206279206120605369676e656460206f726967696e2e2d012d20606964603a2054686520706172612049442e204d757374206265206f776e65642f6d616e616765642062792074686520606f726967696e60207369676e696e67206163636f756e742e01012d206067656e657369735f68656164603a205468652067656e6573697320686561642064617461206f66207468652070617261636861696e2f7468726561642e25012d206076616c69646174696f6e5f636f6465603a2054686520696e697469616c2076616c69646174696f6e20636f6465206f66207468652070617261636861696e2f7468726561642e00402323204465706f736974732f466565739501546865206f726967696e207369676e6564206163636f756e74206d7573742072657365727665206120636f72726573706f6e64696e67206465706f73697420666f722074686520726567697374726174696f6e2e20416e797468696e6720616c7265616479d872657365727665642070726576696f75736c7920666f7220746869732070617261204944206973206163636f756e74656420666f722e00242323204576656e7473d454686520605265676973746572656460206576656e7420697320656d697474656420696e2063617365206f6620737563636573732e38666f7263655f726567697374657214010c77686f000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e00010869645101011850617261496400013067656e657369735f6865616469010120486561644461746100013c76616c69646174696f6e5f636f64652505013856616c69646174696f6e436f6465000118dc466f7263652074686520726567697374726174696f6e206f6620612050617261204964206f6e207468652072656c617920636861696e2e00b8546869732066756e6374696f6e206d7573742062652063616c6c6564206279206120526f6f74206f726967696e2e001901546865206465706f7369742074616b656e2063616e2062652073706563696669656420666f72207468697320726567697374726174696f6e2e20416e79206050617261496460190163616e20626520726567697374657265642c20696e636c7564696e67207375622d3130303020494473207768696368206172652053797374656d2050617261636861696e732e286465726567697374657204010869645101011850617261496400020c050144657265676973746572206120506172612049642c2066726565696e6720616c6c206461746120616e642072657475726e696e6720616e79206465706f7369742e007d015468652063616c6c6572206d75737420626520526f6f742c2074686520607061726160206f776e65722c206f72207468652060706172616020697473656c662e205468652070617261206d757374206265206120706172617468726561642e10737761700801086964510101185061726149640001146f746865725101011850617261496400032cd85377617020612070617261636861696e207769746820616e6f746865722070617261636861696e206f7220706172617468726561642e000101546865206f726967696e206d75737420626520526f6f742c2074686520607061726160206f776e65722c206f72207468652060706172616020697473656c662e00610154686520737761702077696c6c2068617070656e206f6e6c7920696620746865726520697320616c726561647920616e206f70706f7369746520737761702070656e64696e672e204966207468657265206973206e6f742c590174686520737761702077696c6c2062652073746f72656420696e207468652070656e64696e67207377617073206d61702c20726561647920666f722061206c6174657220636f6e6669726d61746f727920737761702e005d01546865206050617261496460732072656d61696e206d617070656420746f207468652073616d652068656164206461746120616e6420636f646520736f2065787465726e616c20636f64652063616e2072656c79206f6e3d01605061726149646020746f2062652061206c6f6e672d7465726d206964656e746966696572206f662061206e6f74696f6e616c202270617261636861696e222e20486f77657665722c20746865697255017363686564756c696e6720696e666f2028692e652e2077686574686572207468657927726520612070617261746872656164206f722070617261636861696e292c2061756374696f6e20696e666f726d6174696f6e94616e64207468652061756374696f6e206465706f736974206172652073776974636865642e44666f7263655f72656d6f76655f6c6f636b04011070617261510101185061726149640004100d0152656d6f76652061206d616e61676572206c6f636b2066726f6d206120706172612e20546869732077696c6c20616c6c6f7720746865206d616e61676572206f662061350170726576696f75736c79206c6f636b6564207061726120746f2064657265676973746572206f7220737761702061207061726120776974686f7574207573696e6720676f7665726e616e63652e009843616e206f6e6c792062652063616c6c65642062792074686520526f6f74206f726967696e2e1c72657365727665000538945265736572766520612050617261204964206f6e207468652072656c617920636861696e2e004d01546869732066756e6374696f6e2077696c6c20726573657276652061206e6577205061726120496420746f206265206f776e65642f6d616e6167656420627920746865206f726967696e206163636f756e742e7d01546865206f726967696e206163636f756e742069732061626c6520746f2072656769737465722068656164206461746120616e642076616c69646174696f6e20636f6465207573696e67206072656769737465726020746f2063726561746581016120706172617468726561642e205573696e672074686520536c6f74732070616c6c65742c206120706172617468726561642063616e207468656e20626520757067726164656420746f2067657420612070617261636861696e20736c6f742e0030232320417267756d656e747379012d20606f726967696e603a204d7573742062652063616c6c6564206279206120605369676e656460206f726967696e2e204265636f6d657320746865206d616e616765722f6f776e6572206f6620746865206e657720706172612049442e00402323204465706f736974732f466565732101546865206f726967696e206d75737420726573657276652061206465706f736974206f662060506172614465706f7369746020666f722074686520726567697374726174696f6e2e00242323204576656e74736d015468652060526573657276656460206576656e7420697320656d697474656420696e2063617365206f6620737563636573732c2077686963682070726f76696465732074686520494420726573657276656420666f72207573652e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e6905105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e14736c6f74731870616c6c65741043616c6c04045400010c2c666f7263655f6c6561736514011070617261510101185061726149640001186c6561736572000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000130706572696f645f626567696e1001404c65617365506572696f644f663c543e000130706572696f645f636f756e741001404c65617365506572696f644f663c543e00001069014a757374206120636f6e6e65637420696e746f2074686520606c656173655f6f7574602063616c6c2c20696e206361736520526f6f742077616e747320746f20666f72636520736f6d65206c6561736520746f2068617070656ee0696e646570656e64656e746c79206f6620616e79206f74686572206f6e2d636861696e206d656368616e69736d20746f207573652069742e009843616e206f6e6c792062652063616c6c65642062792074686520526f6f74206f726967696e2e40636c6561725f616c6c5f6c6561736573040110706172615101011850617261496400010c4d01436c65617220616c6c206c656173657320666f72206120506172612049642c20726566756e64696e6720616e79206465706f73697473206261636b20746f20746865206f726967696e616c206f776e6572732e009843616e206f6e6c792062652063616c6c65642062792074686520526f6f74206f726967696e2e3c747269676765725f6f6e626f617264040110706172615101011850617261496400021c250154727920746f206f6e626f61726420612070617261636861696e2074686174206861732061206c6561736520666f72207468652063757272656e74206c6561736520706572696f642e004501546869732066756e6374696f6e2063616e2062652075736566756c2069662074686572652077617320736f6d6520737461746520697373756520776974682061207061726120746861742073686f756c64390168617665206f6e626f61726465642c206275742077617320756e61626c6520746f2e204173206c6f6e67206173207468657920686176652061206c6561736520706572696f642c2077652063616e6c6c6574207468656d206f6e626f6172642066726f6d20686572652e00cc4f726967696e206d757374206265207369676e65642c206275742063616e2062652063616c6c656420627920616e796f6e652e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e6d05105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e2061756374696f6e731870616c6c65741043616c6c04045400010c2c6e65775f61756374696f6e0801206475726174696f6ead010138543a3a426c6f636b4e756d6265720001486c656173655f706572696f645f696e646578ad0101404c65617365506572696f644f663c543e000014544372656174652061206e65772061756374696f6e2e005101546869732063616e206f6e6c792068617070656e207768656e2074686572652069736e277420616c726561647920616e2061756374696f6e20696e2070726f677265737320616e64206d6179206f6e6c79206265250163616c6c65642062792074686520726f6f74206f726967696e2e20416363657074732074686520606475726174696f6e60206f6620746869732061756374696f6e20616e64207468655901606c656173655f706572696f645f696e64657860206f662074686520696e697469616c206c6561736520706572696f64206f662074686520666f757220746861742061726520746f2062652061756374696f6e65642e0c626964140110706172617105011850617261496400013461756374696f6e5f696e646578ad01013041756374696f6e496e64657800012866697273745f736c6f74ad0101404c65617365506572696f644f663c543e0001246c6173745f736c6f74ad0101404c65617365506572696f644f663c543e000118616d6f756e74cc013042616c616e63654f663c543e00014049014d616b652061206e6577206269642066726f6d20616e206163636f756e742028696e636c7564696e6720612070617261636861696e206163636f756e742920666f72206465706c6f79696e672061206e65772870617261636861696e2e0059014d756c7469706c652073696d756c74616e656f757320626964732066726f6d207468652073616d65206269646465722061726520616c6c6f776564206f6e6c79206173206c6f6e6720617320616c6c206163746976653d0162696473206f7665726c61702065616368206f746865722028692e652e20617265206d757475616c6c79206578636c7573697665292e20426964732063616e6e6f742062652072656461637465642e0055012d20607375626020697320746865207375622d6269646465722049442c20616c6c6f77696e6720666f72206d756c7469706c6520636f6d706574696e67206269647320746f206265206d6164652062792028616e647066756e64656420627929207468652073616d65206163636f756e742e4d012d206061756374696f6e5f696e646578602069732074686520696e646578206f66207468652061756374696f6e20746f20626964206f6e2e2053686f756c64206a757374206265207468652070726573656e746876616c7565206f66206041756374696f6e436f756e746572602e49012d206066697273745f736c6f746020697320746865206669727374206c6561736520706572696f6420696e646578206f66207468652072616e676520746f20626964206f6e2e20546869732069732074686509016162736f6c757465206c6561736520706572696f6420696e6465782076616c75652c206e6f7420616e2061756374696f6e2d7370656369666963206f66667365742e41012d20606c6173745f736c6f746020697320746865206c617374206c6561736520706572696f6420696e646578206f66207468652072616e676520746f20626964206f6e2e20546869732069732074686509016162736f6c757465206c6561736520706572696f6420696e6465782076616c75652c206e6f7420616e2061756374696f6e2d7370656369666963206f66667365742e49012d2060616d6f756e74602069732074686520616d6f756e7420746f2062696420746f2062652068656c64206173206465706f73697420666f72207468652070617261636861696e2073686f756c6420746865c86269642077696e2e205468697320616d6f756e742069732068656c64207468726f7567686f7574207468652072616e67652e3863616e63656c5f61756374696f6e00020c7843616e63656c20616e20696e2d70726f67726573732061756374696f6e2e008843616e206f6e6c792062652063616c6c656420627920526f6f74206f726967696e2e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e71050000065101007505105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e2463726f77646c6f616e1870616c6c65741043616c6c04045400012018637265617465180114696e6465787105011850617261496400010c636170cc013042616c616e63654f663c543e00013066697273745f706572696f64ad0101404c65617365506572696f644f663c543e00012c6c6173745f706572696f64ad0101404c65617365506572696f644f663c543e00010c656e64ad010138543a3a426c6f636b4e756d62657200012076657269666965727905014c4f7074696f6e3c4d756c74695369676e65723e00001069014372656174652061206e65772063726f77646c6f616e696e672063616d706169676e20666f7220612070617261636861696e20736c6f7420776974682074686520676976656e206c6561736520706572696f642072616e67652e005d0154686973206170706c6965732061206c6f636b20746f20796f75722070617261636861696e20636f6e66696775726174696f6e2c20656e737572696e6720746861742069742063616e6e6f74206265206368616e676564646279207468652070617261636861696e206d616e616765722e28636f6e747269627574650c0114696e6465787105011850617261496400011476616c7565cc013042616c616e63654f663c543e0001247369676e6174757265890501584f7074696f6e3c4d756c74695369676e61747572653e0001085101436f6e7472696275746520746f20612063726f77642073616c652e20546869732077696c6c207472616e7366657220736f6d652062616c616e6365206f76657220746f2066756e6420612070617261636861696e5101736c6f742e2049742077696c6c20626520776974686472617761626c65207768656e207468652063726f77646c6f616e2068617320656e64656420616e64207468652066756e64732061726520756e757365642e20776974686472617708010c77686f000130543a3a4163636f756e744964000114696e64657871050118506172614964000244c057697468647261772066756c6c2062616c616e6365206f66206120737065636966696320636f6e7472696275746f722e00c04f726967696e206d757374206265207369676e65642c206275742063616e20636f6d652066726f6d20616e796f6e652e00ad015468652066756e64206d7573742062652065697468657220696e2c206f7220726561647920666f722c207265746972656d656e742e20466f7220612066756e6420746f206265202a696e2a207265746972656d656e742c207468656e20746865207265746972656d656e74f8666c6167206d757374206265207365742e20466f7220612066756e6420746f20626520726561647920666f72207265746972656d656e742c207468656e3a9c2d206974206d757374206e6f7420616c726561647920626520696e207265746972656d656e743b4d012d2074686520616d6f756e74206f66207261697365642066756e6473206d75737420626520626967676572207468616e20746865205f667265655f2062616c616e6365206f6620746865206163636f756e743b342d20616e64206569746865723abc20202d2074686520626c6f636b206e756d626572206d757374206265206174206c656173742060656e64603b206f722d0120202d207468652063757272656e74206c6561736520706572696f64206d7573742062652067726561746572207468616e207468652066756e64277320606c6173745f706572696f64602e006d01496e207468697320636173652c207468652066756e642773207265746972656d656e7420666c61672069732073657420616e64206974732060656e646020697320726573657420746f207468652063757272656e7420626c6f636b1c6e756d6265722e00f02d206077686f603a20546865206163636f756e742077686f736520636f6e747269627574696f6e2073686f756c642062652077697468647261776e2e19012d2060696e646578603a205468652070617261636861696e20746f2077686f73652063726f77646c6f616e2074686520636f6e747269627574696f6e20776173206d6164652e18726566756e64040114696e64657871050118506172614964000314e04175746f6d61746963616c6c7920726566756e6420636f6e7472696275746f7273206f6620616e20656e6465642063726f77646c6f616e2e210144756520746f20776569676874207265737472696374696f6e732c20746869732066756e6374696f6e206d6179206e65656420746f2062652063616c6c6564206d756c7469706c65490174696d657320746f2066756c6c7920726566756e6420616c6c2075736572732e2057652077696c6c20726566756e64206052656d6f76654b6579734c696d69746020757365727320617420612074696d652e00c04f726967696e206d757374206265207369676e65642c206275742063616e20636f6d652066726f6d20616e796f6e652e20646973736f6c7665040114696e64657871050118506172614964000404550152656d6f766520612066756e6420616674657220746865207265746972656d656e7420706572696f642068617320656e64656420616e6420616c6c2066756e64732068617665206265656e2072657475726e65642e1065646974180114696e6465787105011850617261496400010c636170cc013042616c616e63654f663c543e00013066697273745f706572696f64ad0101404c65617365506572696f644f663c543e00012c6c6173745f706572696f64ad0101404c65617365506572696f644f663c543e00010c656e64ad010138543a3a426c6f636b4e756d62657200012076657269666965727905014c4f7074696f6e3c4d756c74695369676e65723e00050cd0456469742074686520636f6e66696775726174696f6e20666f7220616e20696e2d70726f67726573732063726f77646c6f616e2e008843616e206f6e6c792062652063616c6c656420627920526f6f74206f726967696e2e206164645f6d656d6f080114696e646578510101185061726149640001106d656d6f28011c5665633c75383e00060cec41646420616e206f7074696f6e616c206d656d6f20746f20616e206578697374696e672063726f77646c6f616e20636f6e747269627574696f6e2e002d014f726967696e206d757374206265205369676e65642c20616e64207468652075736572206d757374206861766520636f6e747269627574656420746f207468652063726f77646c6f616e2e10706f6b65040114696e6465785101011850617261496400070c74506f6b65207468652066756e6420696e746f20604e657752616973656000dc4f726967696e206d757374206265205369676e65642c20616e64207468652066756e6420686173206e6f6e2d7a65726f2072616973652e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e790504184f7074696f6e040454017d050108104e6f6e6500000010536f6d6504007d0500000100007d05082873705f72756e74696d652c4d756c74695369676e657200010c1c456432353531390400b0013c656432353531393a3a5075626c69630000001c537232353531390400bc013c737232353531393a3a5075626c696300010014456364736104008105013465636473613a3a5075626c69630002000081050c1c73705f636f7265146563647361185075626c696300000400850501205b75383b2033335d00008505000003210000000800890504184f7074696f6e040454018d050108104e6f6e6500000010536f6d6504008d0500000100008d05082873705f72756e74696d65384d756c74695369676e617475726500010c1c456432353531390400ad020148656432353531393a3a5369676e61747572650000001c5372323535313904005d010148737232353531393a3a5369676e617475726500010014456364736104009105014065636473613a3a5369676e61747572650002000091050c1c73705f636f7265146563647361245369676e617475726500000400110301205b75383b2036355d000095050840706f6c6b61646f745f72756e74696d65304f726967696e43616c6c65720001141873797374656d0400990501746672616d655f73797374656d3a3a4f726967696e3c52756e74696d653e0000001c436f756e63696c04009d0501010170616c6c65745f636f6c6c6563746976653a3a4f726967696e3c52756e74696d652c2070616c6c65745f636f6c6c6563746976653a3a496e7374616e6365313e000f0048546563686e6963616c436f6d6d69747465650400a10501010170616c6c65745f636f6c6c6563746976653a3a4f726967696e3c52756e74696d652c2070616c6c65745f636f6c6c6563746976653a3a496e7374616e6365323e0010004050617261636861696e734f726967696e0400a505016470617261636861696e735f6f726967696e3a3a4f726967696e00320010566f69640400a90501110173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a566f696400040000990508306672616d655f73797374656d245261774f726967696e04244163636f756e7449640100010c10526f6f74000000185369676e656404000001244163636f756e744964000100104e6f6e65000200009d05084470616c6c65745f636f6c6c656374697665245261774f726967696e08244163636f756e7449640100044900010c1c4d656d62657273080010012c4d656d626572436f756e74000010012c4d656d626572436f756e74000000184d656d62657204000001244163636f756e744964000100205f5068616e746f6d00020000a105084470616c6c65745f636f6c6c656374697665245261774f726967696e08244163636f756e7449640100044900010c1c4d656d62657273080010012c4d656d626572436f756e74000010012c4d656d626572436f756e74000000184d656d62657204000001244163636f756e744964000100205f5068616e746f6d00020000a505106c706f6c6b61646f745f72756e74696d655f70617261636861696e73186f726967696e1870616c6c6574184f726967696e0001042450617261636861696e04005101011850617261496400000000a905081c73705f636f726510566f696400010000ad05084070616c6c65745f7363686564756c65722052656c656173657300010808563100000008563200010000b1050c4070616c6c65745f7363686564756c65721870616c6c6574144572726f72040454000110404661696c6564546f5363686564756c65000004644661696c656420746f207363686564756c6520612063616c6c204e6f74466f756e640001047c43616e6e6f742066696e6420746865207363686564756c65642063616c6c2e5c546172676574426c6f636b4e756d626572496e50617374000204a4476976656e2074617267657420626c6f636b206e756d62657220697320696e2074686520706173742e4852657363686564756c654e6f4368616e6765000304f052657363686564756c65206661696c6564206265636175736520697420646f6573206e6f74206368616e6765207363686564756c65642074696d652e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909b50510346672616d655f737570706f72741c73746f72616765407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401b905045300000400bd0501185665633c543e0000b9050000040825022000bd05000002b90500c10510346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e6465645665630804540104045300000400c50501185665633c543e0000c5050000020400c90504184f7074696f6e04045401040108104e6f6e6500000010536f6d650400040000010000cd05084473705f636f6e73656e7375735f62616265584261626545706f6368436f6e66696775726174696f6e00000801046335020128287536342c2075363429000134616c6c6f7765645f736c6f747339020130416c6c6f776564536c6f74730000d1050c2c70616c6c65745f626162651870616c6c6574144572726f7204045400010c60496e76616c696445717569766f636174696f6e50726f6f660000043101416e2065717569766f636174696f6e2070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e60496e76616c69644b65794f776e65727368697050726f6f66000104310141206b6579206f776e6572736869702070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e584475706c69636174654f6666656e63655265706f727400020415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909d5050000040c0018e800d9050c3870616c6c65745f696e64696365731870616c6c6574144572726f720404540001142c4e6f7441737369676e65640000048c54686520696e64657820776173206e6f7420616c72656164792061737369676e65642e204e6f744f776e6572000104a454686520696e6465782069732061737369676e656420746f20616e6f74686572206163636f756e742e14496e5573650002047054686520696e64657820776173206e6f7420617661696c61626c652e2c4e6f745472616e73666572000304c854686520736f7572636520616e642064657374696e6174696f6e206163636f756e747320617265206964656e746963616c2e245065726d616e656e74000404d054686520696e646578206973207065726d616e656e7420616e64206d6179206e6f742062652066726565642f6368616e6765642e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909dd0510346672616d655f737570706f72741c73746f72616765407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401e105045300000400e90501185665633c543e0000e105083c70616c6c65745f62616c616e6365732c42616c616e63654c6f636b041c42616c616e63650118000c01086964f50101384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e636500011c726561736f6e73e505011c526561736f6e730000e505083c70616c6c65745f62616c616e6365731c526561736f6e7300010c0c466565000000104d6973630001000c416c6c00020000e905000002e10500ed0510346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e64656456656308045401f105045300000400f50501185665633c543e0000f105083c70616c6c65745f62616c616e6365732c52657365727665446174610844526573657276654964656e74696669657201f5011c42616c616e63650118000801086964f5010144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e63650000f505000002f10500f905083c70616c6c65745f62616c616e6365732052656c65617365730001081856315f305f300000001856325f305f3000010000fd050c3c70616c6c65745f62616c616e6365731870616c6c6574144572726f720804540004490001203856657374696e6742616c616e63650000049856657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c7565544c69717569646974795265737472696374696f6e73000104c44163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c4c496e73756666696369656e7442616c616e63650002047442616c616e636520746f6f206c6f7720746f2073656e642076616c7565484578697374656e7469616c4465706f736974000304e856616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f736974244b656570416c6976650004048c5472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e745c4578697374696e6756657374696e675363686564756c65000504c8412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742c446561644163636f756e740006048842656e6566696369617279206163636f756e74206d757374207072652d65786973743c546f6f4d616e795265736572766573000704ac4e756d626572206f66206e616d656420726573657276657320657863656564204d6178526573657276657304bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a09090901060c3473705f61726974686d657469632c66697865645f706f696e7424466978656455313238000004001801107531323800000506086870616c6c65745f7472616e73616374696f6e5f7061796d656e742052656c6561736573000108245631416e6369656e740000000856320001000009060000020d06000d060c346672616d655f737570706f72741c7765696768747358576569676874546f466565436f656666696369656e74041c42616c616e6365011800100134636f6566665f696e746567657218011c42616c616e6365000128636f6566665f66726163b901011c50657262696c6c0001206e65676174697665e80110626f6f6c0001186465677265650801087538000011060000021506001506084470616c6c65745f617574686f727368697038556e636c65456e7472794974656d0c2c426c6f636b4e756d62657201101048617368012418417574686f72010001083c496e636c7573696f6e486569676874040010012c426c6f636b4e756d62657200000014556e636c650800240110486173680000f10201384f7074696f6e3c417574686f723e0001000019060c4470616c6c65745f617574686f72736869701870616c6c6574144572726f7204045400011c48496e76616c6964556e636c65506172656e740000048854686520756e636c6520706172656e74206e6f7420696e2074686520636861696e2e40556e636c6573416c726561647953657400010480556e636c657320616c72656164792073657420696e2074686520626c6f636b2e34546f6f4d616e79556e636c657300020440546f6f206d616e7920756e636c65732e3047656e65736973556e636c650003045454686520756e636c652069732067656e657369732e30546f6f48696768556e636c650004047c54686520756e636c6520697320746f6f206869676820696e20636861696e2e50556e636c65416c7265616479496e636c756465640005047854686520756e636c6520697320616c726561647920696e636c756465642e204f6c64556e636c65000604b454686520756e636c652069736e277420726563656e7420656e6f75676820746f20626520696e636c756465642e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a0909091d06083870616c6c65745f7374616b696e67345374616b696e674c656467657208244163636f756e74496401001c42616c616e636501180014011473746173680001244163636f756e744964000114746f74616ccc011c42616c616e6365000118616374697665cc011c42616c616e6365000124756e6c6f636b696e67210601645665633c556e6c6f636b4368756e6b3c42616c616e63653e3e00013c636c61696d65645f72657761726473750201345665633c457261496e6465783e000021060000022506002506083870616c6c65745f7374616b696e672c556e6c6f636b4368756e6b041c42616c616e636501180008011476616c7565cc011c42616c616e636500010c657261ad010120457261496e64657800002906083870616c6c65745f7374616b696e672c4e6f6d696e6174696f6e7304244163636f756e7449640100000c011c74617267657473dc01385665633c4163636f756e7449643e0001307375626d69747465645f696e100120457261496e64657800012873757070726573736564e80110626f6f6c00002d06083870616c6c65745f7374616b696e6734416374697665457261496e666f0000080114696e646578100120457261496e6465780001147374617274d501012c4f7074696f6e3c7536343e00003106000004081000003506083870616c6c65745f7374616b696e673c457261526577617264506f696e747304244163636f756e744964010000080114746f74616c10012c526577617264506f696e74000128696e646976696475616c3906018042547265654d61703c4163636f756e7449642c20526577617264506f696e743e00003906042042547265654d617008044b0100045601100004003d060000003d060000024106004106000004080010004506083870616c6c65745f7374616b696e671c466f7263696e67000110284e6f74466f7263696e6700000020466f7263654e657700010024466f7263654e6f6e650002002c466f726365416c776179730003000049060000024d06004d06083870616c6c65745f7374616b696e6738556e6170706c696564536c61736808244163636f756e74496401001c42616c616e636501180014012476616c696461746f720001244163636f756e74496400010c6f776e18011c42616c616e63650001186f7468657273f401645665633c284163636f756e7449642c2042616c616e6365293e0001247265706f7274657273dc01385665633c4163636f756e7449643e0001187061796f757418011c42616c616e63650000510600000408b901180055060c3870616c6c65745f7374616b696e6720736c617368696e6734536c617368696e675370616e7300001001287370616e5f696e6465781001245370616e496e6465780001286c6173745f7374617274100120457261496e6465780001486c6173745f6e6f6e7a65726f5f736c617368100120457261496e6465780001147072696f72750201345665633c457261496e6465783e000059060c3870616c6c65745f7374616b696e6720736c617368696e67285370616e5265636f7264041c42616c616e636501180008011c736c617368656418011c42616c616e6365000120706169645f6f757418011c42616c616e636500005d06083870616c6c65745f7374616b696e672052656c65617365730001203456315f305f30416e6369656e740000001856325f305f300001001856335f305f300002001856345f305f300003001856355f305f300004001856365f305f300005001856375f305f300006001856385f305f30000700006106103870616c6c65745f7374616b696e671870616c6c65741870616c6c6574144572726f7204045400015c344e6f74436f6e74726f6c6c6572000004644e6f74206120636f6e74726f6c6c6572206163636f756e742e204e6f745374617368000104504e6f742061207374617368206163636f756e742e34416c7265616479426f6e64656400020460537461736820697320616c726561647920626f6e6465642e34416c726561647950616972656400030474436f6e74726f6c6c657220697320616c7265616479207061697265642e30456d7074795461726765747300040460546172676574732063616e6e6f7420626520656d7074792e384475706c6963617465496e646578000504404475706c696361746520696e6465782e44496e76616c6964536c617368496e64657800060484536c617368207265636f726420696e646578206f7574206f6620626f756e64732e40496e73756666696369656e74426f6e64000704cc43616e206e6f7420626f6e6420776974682076616c7565206c657373207468616e206d696e696d756d2072657175697265642e304e6f4d6f72654368756e6b730008049043616e206e6f74207363686564756c65206d6f726520756e6c6f636b206368756e6b732e344e6f556e6c6f636b4368756e6b000904a043616e206e6f74207265626f6e6420776974686f757420756e6c6f636b696e67206368756e6b732e3046756e646564546172676574000a04c8417474656d7074696e6720746f2074617267657420612073746173682074686174207374696c6c206861732066756e64732e48496e76616c6964457261546f526577617264000b0458496e76616c69642065726120746f207265776172642e68496e76616c69644e756d6265724f664e6f6d696e6174696f6e73000c0478496e76616c6964206e756d626572206f66206e6f6d696e6174696f6e732e484e6f74536f72746564416e64556e69717565000d04804974656d7320617265206e6f7420736f7274656420616e6420756e697175652e38416c7265616479436c61696d6564000e0409015265776172647320666f72207468697320657261206861766520616c7265616479206265656e20636c61696d656420666f7220746869732076616c696461746f722e54496e636f7272656374486973746f72794465707468000f04c0496e636f72726563742070726576696f757320686973746f727920646570746820696e7075742070726f76696465642e58496e636f7272656374536c617368696e675370616e73001004b0496e636f7272656374206e756d626572206f6620736c617368696e67207370616e732070726f76696465642e2042616453746174650011043901496e7465726e616c20737461746520686173206265636f6d6520736f6d65686f7720636f7272757074656420616e6420746865206f7065726174696f6e2063616e6e6f7420636f6e74696e75652e38546f6f4d616e795461726765747300120494546f6f206d616e79206e6f6d696e6174696f6e207461726765747320737570706c6965642e244261645461726765740013043d0141206e6f6d696e6174696f6e207461726765742077617320737570706c69656420746861742077617320626c6f636b6564206f72206f7468657277697365206e6f7420612076616c696461746f722e4043616e6e6f744368696c6c4f74686572001404550154686520757365722068617320656e6f75676820626f6e6420616e6420746875732063616e6e6f74206265206368696c6c656420666f72636566756c6c7920627920616e2065787465726e616c20706572736f6e2e44546f6f4d616e794e6f6d696e61746f72730015084d0154686572652061726520746f6f206d616e79206e6f6d696e61746f727320696e207468652073797374656d2e20476f7665726e616e6365206e6565647320746f2061646a75737420746865207374616b696e67b473657474696e677320746f206b656570207468696e6773207361666520666f72207468652072756e74696d652e44546f6f4d616e7956616c696461746f72730016084d0154686572652061726520746f6f206d616e792076616c696461746f727320696e207468652073797374656d2e20476f7665726e616e6365206e6565647320746f2061646a75737420746865207374616b696e67b473657474696e677320746f206b656570207468696e6773207361666520666f72207468652072756e74696d652e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a09090965060c2873705f7374616b696e671c6f6666656e6365384f6666656e636544657461696c7308205265706f727465720100204f6666656e64657201c4000801206f6666656e646572c401204f6666656e6465720001247265706f7274657273dc01345665633c5265706f727465723e00006906000004089828006d06000002710600710600000408008502007506000004087906280079060c1c73705f636f72651863727970746f244b65795479706549640000040038011c5b75383b20345d00007d060c3870616c6c65745f73657373696f6e1870616c6c6574144572726f7204045400011430496e76616c696450726f6f6600000460496e76616c6964206f776e6572736869702070726f6f662e5c4e6f4173736f63696174656456616c696461746f7249640001049c4e6f206173736f6369617465642076616c696461746f7220494420666f72206163636f756e742e344475706c6963617465644b65790002046452656769737465726564206475706c6963617465206b65792e184e6f4b657973000304a44e6f206b65797320617265206173736f63696174656420776974682074686973206163636f756e742e244e6f4163636f756e7400040419014b65792073657474696e67206163636f756e74206973206e6f74206c6976652c20736f206974277320696d706f737369626c6520746f206173736f6369617465206b6579732e04744572726f7220666f72207468652073657373696f6e2070616c6c65742e8106083870616c6c65745f6772616e6470612c53746f726564537461746504044e01100110104c6976650000003050656e64696e6750617573650801307363686564756c65645f61741001044e00011464656c61791001044e000100185061757365640002003450656e64696e67526573756d650801307363686564756c65645f61741001044e00011464656c61791001044e000300008506083870616c6c65745f6772616e6470614c53746f72656450656e64696e674368616e676508044e0110144c696d697400001001307363686564756c65645f61741001044e00011464656c61791001044e0001406e6578745f617574686f7269746965738906016c426f756e646564417574686f726974794c6973743c4c696d69743e000118666f72636564790201244f7074696f6e3c4e3e0000890610346672616d655f737570706f72741c73746f72616765407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401a8045300000400a401185665633c543e00008d060c3870616c6c65745f6772616e6470611870616c6c6574144572726f7204045400011c2c50617573654661696c65640000080501417474656d707420746f207369676e616c204752414e445041207061757365207768656e2074686520617574686f72697479207365742069736e2774206c697665a42865697468657220706175736564206f7220616c72656164792070656e64696e67207061757365292e30526573756d654661696c65640001081101417474656d707420746f207369676e616c204752414e44504120726573756d65207768656e2074686520617574686f72697479207365742069736e277420706175736564a028656974686572206c697665206f7220616c72656164792070656e64696e6720726573756d65292e344368616e676550656e64696e67000204e8417474656d707420746f207369676e616c204752414e445041206368616e67652077697468206f6e6520616c72656164792070656e64696e672e1c546f6f536f6f6e000304bc43616e6e6f74207369676e616c20666f72636564206368616e676520736f20736f6f6e206166746572206c6173742e60496e76616c69644b65794f776e65727368697050726f6f66000404310141206b6579206f776e6572736869702070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e60496e76616c696445717569766f636174696f6e50726f6f660005043101416e2065717569766f636174696f6e2070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e584475706c69636174654f6666656e63655265706f727400060415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909910610346672616d655f737570706f72741c73746f72616765407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401b8045300000400950601185665633c543e00009506000002b800990610346672616d655f737570706f727418747261697473106d69736334577261707065724f7061717565040454019d06000800ad010000009d0601045400009d06084070616c6c65745f696d5f6f6e6c696e6564426f756e6465644f70617175654e6574776f726b53746174650c4c506565724964456e636f64696e674c696d697400584d756c746941646472456e636f64696e674c696d697400384164647265737365734c696d6974000008011c706565725f6964a106019c5765616b426f756e6465645665633c75382c20506565724964456e636f64696e674c696d69743e00014865787465726e616c5f616464726573736573a506012d015765616b426f756e6465645665633c5765616b426f756e6465645665633c75382c204d756c746941646472456e636f64696e674c696d69743e2c204164647265737365734c696d69740a3e0000a10610346672616d655f737570706f72741c73746f72616765407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401080453000004002801185665633c543e0000a50610346672616d655f737570706f72741c73746f72616765407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401a106045300000400a90601185665633c543e0000a906000002a10600ad060c4070616c6c65745f696d5f6f6e6c696e651870616c6c6574144572726f7204045400010828496e76616c69644b6579000004604e6f6e206578697374656e74207075626c6963206b65792e4c4475706c696361746564486561727462656174000104544475706c696361746564206865617274626561742e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909b106000002b50600b5060000040c10240000b90600000408dc1800bd06084070616c6c65745f64656d6f637261637938507265696d6167655374617475730c244163636f756e74496401001c42616c616e636501182c426c6f636b4e756d626572011001081c4d697373696e67040010012c426c6f636b4e756d62657200000024417661696c61626c651401106461746128011c5665633c75383e00012070726f76696465720001244163636f756e74496400011c6465706f73697418011c42616c616e636500011473696e636510012c426c6f636b4e756d6265720001186578706972797902014c4f7074696f6e3c426c6f636b4e756d6265723e00010000c1060c4070616c6c65745f64656d6f6372616379147479706573385265666572656e64756d496e666f0c2c426c6f636b4e756d6265720110104861736801241c42616c616e6365011801081c4f6e676f696e670400c50601b05265666572656e64756d5374617475733c426c6f636b4e756d6265722c20486173682c2042616c616e63653e0000002046696e6973686564080120617070726f766564e80110626f6f6c00010c656e6410012c426c6f636b4e756d62657200010000c5060c4070616c6c65745f64656d6f6372616379147479706573405265666572656e64756d5374617475730c2c426c6f636b4e756d6265720110104861736801241c42616c616e636501180014010c656e6410012c426c6f636b4e756d62657200013470726f706f73616c5f68617368240110486173680001247468726573686f6c64e00134566f74655468726573686f6c6400011464656c617910012c426c6f636b4e756d62657200011474616c6c79c906013854616c6c793c42616c616e63653e0000c9060c4070616c6c65745f64656d6f63726163791474797065731454616c6c79041c42616c616e63650118000c01106179657318011c42616c616e63650001106e61797318011c42616c616e636500011c7475726e6f757418011c42616c616e63650000cd060c4070616c6c65745f64656d6f637261637910766f746518566f74696e670c1c42616c616e63650118244163636f756e74496401002c426c6f636b4e756d62657201100108184469726563740c0114766f746573d10601b05665633c285265666572656e64756d496e6465782c204163636f756e74566f74653c42616c616e63653e293e00012c64656c65676174696f6e73d906015044656c65676174696f6e733c42616c616e63653e0001147072696f72dd06017c5072696f724c6f636b3c426c6f636b4e756d6265722c2042616c616e63653e0000002844656c65676174696e6714011c62616c616e636518011c42616c616e63650001187461726765740001244163636f756e744964000128636f6e76696374696f6ee9020128436f6e76696374696f6e00012c64656c65676174696f6e73d906015044656c65676174696f6e733c42616c616e63653e0001147072696f72dd06017c5072696f724c6f636b3c426c6f636b4e756d6265722c2042616c616e63653e00010000d106000002d50600d5060000040810e10200d9060c4070616c6c65745f64656d6f63726163791474797065732c44656c65676174696f6e73041c42616c616e6365011800080114766f74657318011c42616c616e636500011c6361706974616c18011c42616c616e63650000dd060c4070616c6c65745f64656d6f637261637910766f7465245072696f724c6f636b082c426c6f636b4e756d62657201101c42616c616e6365011800080010012c426c6f636b4e756d626572000018011c42616c616e63650000e1060000040824e000e5060000040810dc00e906084070616c6c65745f64656d6f63726163792052656c656173657300010408563100000000ed060c4070616c6c65745f64656d6f63726163791870616c6c6574144572726f720404540001702056616c75654c6f770000043456616c756520746f6f206c6f773c50726f706f73616c4d697373696e670001045c50726f706f73616c20646f6573206e6f742065786973743c416c726561647943616e63656c65640002049443616e6e6f742063616e63656c207468652073616d652070726f706f73616c207477696365444475706c696361746550726f706f73616c0003045450726f706f73616c20616c7265616479206d6164654c50726f706f73616c426c61636b6c69737465640004046850726f706f73616c207374696c6c20626c61636b6c6973746564444e6f7453696d706c654d616a6f72697479000504a84e6578742065787465726e616c2070726f706f73616c206e6f742073696d706c65206d616a6f726974792c496e76616c69644861736800060430496e76616c69642068617368284e6f50726f706f73616c000704504e6f2065787465726e616c2070726f706f73616c34416c72656164795665746f6564000804984964656e74697479206d6179206e6f74207665746f20612070726f706f73616c207477696365444475706c6963617465507265696d61676500090458507265696d61676520616c7265616479206e6f7465642c4e6f74496d6d696e656e74000a04304e6f7420696d6d696e656e7420546f6f4561726c79000b0424546f6f206561726c7920496d6d696e656e74000c0420496d6d696e656e743c507265696d6167654d697373696e67000d0448507265696d616765206e6f7420666f756e64445265666572656e64756d496e76616c6964000e0484566f746520676976656e20666f7220696e76616c6964207265666572656e64756d3c507265696d616765496e76616c6964000f0440496e76616c696420707265696d6167652c4e6f6e6557616974696e67001004504e6f2070726f706f73616c732077616974696e67204e6f74566f746572001104c454686520676976656e206163636f756e7420646964206e6f7420766f7465206f6e20746865207265666572656e64756d2e304e6f5065726d697373696f6e001204c8546865206163746f7220686173206e6f207065726d697373696f6e20746f20636f6e647563742074686520616374696f6e2e44416c726561647944656c65676174696e6700130488546865206163636f756e7420697320616c72656164792064656c65676174696e672e44496e73756666696369656e7446756e6473001404fc546f6f206869676820612062616c616e6365207761732070726f7669646564207468617420746865206163636f756e742063616e6e6f74206166666f72642e344e6f7444656c65676174696e67001504a0546865206163636f756e74206973206e6f742063757272656e746c792064656c65676174696e672e28566f74657345786973740016085501546865206163636f756e742063757272656e746c792068617320766f74657320617474616368656420746f20697420616e6420746865206f7065726174696f6e2063616e6e6f74207375636365656420756e74696ce87468657365206172652072656d6f7665642c20656974686572207468726f7567682060756e766f746560206f722060726561705f766f7465602e44496e7374616e744e6f74416c6c6f776564001704d854686520696e7374616e74207265666572656e64756d206f726967696e2069732063757272656e746c7920646973616c6c6f7765642e204e6f6e73656e73650018049444656c65676174696f6e20746f206f6e6573656c66206d616b6573206e6f2073656e73652e3c57726f6e675570706572426f756e6400190450496e76616c696420757070657220626f756e642e3c4d6178566f74657352656163686564001a04804d6178696d756d206e756d626572206f6620766f74657320726561636865642e40546f6f4d616e7950726f706f73616c73001b04904d6178696d756d206e756d626572206f662070726f706f73616c7320726561636865642e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909f10610346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e6465645665630804540124045300000400a10101185665633c543e0000f506084470616c6c65745f636f6c6c65637469766514566f74657308244163636f756e74496401002c426c6f636b4e756d626572011000140114696e64657810013450726f706f73616c496e6465780001247468726573686f6c6410012c4d656d626572436f756e7400011061796573dc01385665633c4163636f756e7449643e0001106e617973dc01385665633c4163636f756e7449643e00010c656e6410012c426c6f636b4e756d6265720000f9060c4470616c6c65745f636f6c6c6563746976651870616c6c6574144572726f72080454000449000128244e6f744d656d6265720000045c4163636f756e74206973206e6f742061206d656d626572444475706c696361746550726f706f73616c0001047c4475706c69636174652070726f706f73616c73206e6f7420616c6c6f7765643c50726f706f73616c4d697373696e670002044c50726f706f73616c206d7573742065786973742857726f6e67496e646578000304404d69736d61746368656420696e646578344475706c6963617465566f7465000404584475706c696361746520766f74652069676e6f72656448416c7265616479496e697469616c697a6564000504804d656d626572732061726520616c726561647920696e697469616c697a65642120546f6f4561726c79000604010154686520636c6f73652063616c6c20776173206d61646520746f6f206561726c792c206265666f72652074686520656e64206f662074686520766f74696e672e40546f6f4d616e7950726f706f73616c73000704fc54686572652063616e206f6e6c792062652061206d6178696d756d206f6620604d617850726f706f73616c7360206163746976652070726f706f73616c732e4c57726f6e6750726f706f73616c576569676874000804d054686520676976656e2077656967687420626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e4c57726f6e6750726f706f73616c4c656e677468000904d054686520676976656e206c656e67746820626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909fd0610346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e6465645665630804540124045300000400a10101185665633c543e000001070c4470616c6c65745f636f6c6c6563746976651870616c6c6574144572726f72080454000449000128244e6f744d656d6265720000045c4163636f756e74206973206e6f742061206d656d626572444475706c696361746550726f706f73616c0001047c4475706c69636174652070726f706f73616c73206e6f7420616c6c6f7765643c50726f706f73616c4d697373696e670002044c50726f706f73616c206d7573742065786973742857726f6e67496e646578000304404d69736d61746368656420696e646578344475706c6963617465566f7465000404584475706c696361746520766f74652069676e6f72656448416c7265616479496e697469616c697a6564000504804d656d626572732061726520616c726561647920696e697469616c697a65642120546f6f4561726c79000604010154686520636c6f73652063616c6c20776173206d61646520746f6f206561726c792c206265666f72652074686520656e64206f662074686520766f74696e672e40546f6f4d616e7950726f706f73616c73000704fc54686572652063616e206f6e6c792062652061206d6178696d756d206f6620604d617850726f706f73616c7360206163746976652070726f706f73616c732e4c57726f6e6750726f706f73616c576569676874000804d054686520676976656e2077656967687420626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e4c57726f6e6750726f706f73616c4c656e677468000904d054686520676976656e206c656e67746820626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a09090905070000020907000907086470616c6c65745f656c656374696f6e735f70687261676d656e2853656174486f6c64657208244163636f756e74496401001c42616c616e63650118000c010c77686f0001244163636f756e7449640001147374616b6518011c42616c616e636500011c6465706f73697418011c42616c616e636500000d07086470616c6c65745f656c656374696f6e735f70687261676d656e14566f74657208244163636f756e74496401001c42616c616e63650118000c0114766f746573dc01385665633c4163636f756e7449643e0001147374616b6518011c42616c616e636500011c6465706f73697418011c42616c616e6365000011070c6470616c6c65745f656c656374696f6e735f70687261676d656e1870616c6c6574144572726f7204045400014430556e61626c65546f566f7465000004c043616e6e6f7420766f7465207768656e206e6f2063616e64696461746573206f72206d656d626572732065786973742e1c4e6f566f746573000104944d75737420766f746520666f72206174206c65617374206f6e652063616e6469646174652e30546f6f4d616e79566f7465730002048443616e6e6f7420766f7465206d6f7265207468616e2063616e646964617465732e504d6178696d756d566f74657345786365656465640003049843616e6e6f7420766f7465206d6f7265207468616e206d6178696d756d20616c6c6f7765642e284c6f7742616c616e6365000404c443616e6e6f7420766f74652077697468207374616b65206c657373207468616e206d696e696d756d2062616c616e63652e3c556e61626c65546f506179426f6e6400050478566f7465722063616e206e6f742070617920766f74696e6720626f6e642e2c4d7573744265566f746572000604404d757374206265206120766f7465722e285265706f727453656c660007044c43616e6e6f74207265706f72742073656c662e4c4475706c69636174656443616e646964617465000804804475706c6963617465642063616e646964617465207375626d697373696f6e2e304d656d6265725375626d6974000904884d656d6265722063616e6e6f742072652d7375626d69742063616e6469646163792e3852756e6e657255705375626d6974000a048852756e6e65722063616e6e6f742072652d7375626d69742063616e6469646163792e68496e73756666696369656e7443616e64696461746546756e6473000b049443616e64696461746520646f6573206e6f74206861766520656e6f7567682066756e64732e244e6f744d656d626572000c04344e6f742061206d656d6265722e48496e76616c69645769746e65737344617461000d04e05468652070726f766964656420636f756e74206f66206e756d626572206f662063616e6469646174657320697320696e636f72726563742e40496e76616c6964566f7465436f756e74000e04cc5468652070726f766964656420636f756e74206f66206e756d626572206f6620766f74657320697320696e636f72726563742e44496e76616c696452656e6f756e63696e67000f04fc5468652072656e6f756e63696e67206f726967696e2070726573656e74656420612077726f6e67206052656e6f756e63696e676020706172616d657465722e48496e76616c69645265706c6163656d656e74001004fc50726564696374696f6e20726567617264696e67207265706c6163656d656e74206166746572206d656d6265722072656d6f76616c2069732077726f6e672e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a09090915070c4470616c6c65745f6d656d626572736869701870616c6c6574144572726f7208045400044900010834416c72656164794d656d62657200000444416c72656164792061206d656d6265722e244e6f744d656d626572000104344e6f742061206d656d6265722e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a0909091907083c70616c6c65745f74726561737572792050726f706f73616c08244163636f756e74496401001c42616c616e636501180010012070726f706f7365720001244163636f756e74496400011476616c756518011c42616c616e636500012c62656e65666963696172790001244163636f756e744964000110626f6e6418011c42616c616e636500001d0710346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e6465645665630804540110045300000400750201185665633c543e000021070c3473705f61726974686d65746963287065725f7468696e67731c5065726d696c6c0000040010010c7533320000250708346672616d655f737570706f72742050616c6c6574496400000400f501011c5b75383b20385d000029070c3c70616c6c65745f74726561737572791870616c6c6574144572726f7208045400044900010c70496e73756666696369656e7450726f706f7365727342616c616e63650000047850726f706f73657227732062616c616e636520697320746f6f206c6f772e30496e76616c6964496e646578000104904e6f2070726f706f73616c206f7220626f756e7479206174207468617420696e6465782e40546f6f4d616e79417070726f76616c7300020480546f6f206d616e7920617070726f76616c7320696e207468652071756575652e04784572726f7220666f72207468652074726561737572792070616c6c65742e2d07105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e18636c61696d731870616c6c6574144572726f7204045400011860496e76616c6964457468657265756d5369676e61747572650000046c496e76616c696420457468657265756d207369676e61747572652e405369676e65724861734e6f436c61696d00010478457468657265756d206164647265737320686173206e6f20636c61696d2e4053656e6465724861734e6f436c61696d000204b04163636f756e742049442073656e64696e67207472616e73616374696f6e20686173206e6f20636c61696d2e30506f74556e646572666c6f77000308610154686572652773206e6f7420656e6f75676820696e2074686520706f7420746f20706179206f757420736f6d6520756e76657374656420616d6f756e742e2047656e6572616c6c7920696d706c6965732061206c6f676963186572726f722e40496e76616c696453746174656d656e740004049041206e65656465642073746174656d656e7420776173206e6f7420696e636c756465642e4c56657374656442616c616e6365457869737473000504a4546865206163636f756e7420616c7265616479206861732061207665737465642062616c616e63652e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909310710346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e646564566563080454012903045300000400350701185665633c543e000035070000022903003907083870616c6c65745f76657374696e672052656c6561736573000108085630000000085631000100003d070c3870616c6c65745f76657374696e671870616c6c6574144572726f72040454000114284e6f7456657374696e6700000484546865206163636f756e7420676976656e206973206e6f742076657374696e672e5441744d617856657374696e675363686564756c65730001082501546865206163636f756e7420616c72656164792068617320604d617856657374696e675363686564756c65736020636f756e74206f66207363686564756c657320616e642074687573510163616e6e6f742061646420616e6f74686572206f6e652e20436f6e7369646572206d657267696e67206578697374696e67207363686564756c657320696e206f7264657220746f2061646420616e6f746865722e24416d6f756e744c6f770002040501416d6f756e74206265696e67207472616e7366657272656420697320746f6f206c6f7720746f2063726561746520612076657374696e67207363686564756c652e605363686564756c65496e6465784f75744f66426f756e6473000304d0416e20696e64657820776173206f7574206f6620626f756e6473206f66207468652076657374696e67207363686564756c65732e54496e76616c69645363686564756c65506172616d730004040d014661696c656420746f206372656174652061206e6577207363686564756c65206265636175736520736f6d6520706172616d657465722077617320696e76616c69642e04744572726f7220666f72207468652076657374696e672070616c6c65742e41070c3870616c6c65745f7574696c6974791870616c6c6574144572726f7204045400010430546f6f4d616e7943616c6c730000045c546f6f206d616e792063616c6c7320626174636865642e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a09090945070c3c70616c6c65745f6964656e7469747914747970657330526567697374726174696f6e0c1c42616c616e63650118344d61784a756467656d656e7473004c4d61784164646974696f6e616c4669656c647300000c01286a756467656d656e7473490701fc426f756e6465645665633c28526567697374726172496e6465782c204a756467656d656e743c42616c616e63653e292c204d61784a756467656d656e74733e00011c6465706f73697418011c42616c616e6365000110696e666f390301844964656e74697479496e666f3c4d61784164646974696f6e616c4669656c64733e0000490710346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e646564566563080454014d07045300000400510701185665633c543e00004d070000040810d1030051070000024d070055070000040818590700590710346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e6465645665630804540100045300000400dc01185665633c543e00005d0710346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e646564566563080454016107045300000400690701185665633c543e0000610704184f7074696f6e0404540165070108104e6f6e6500000010536f6d6504006507000001000065070c3c70616c6c65745f6964656e7469747914747970657334526567697374726172496e666f081c42616c616e63650118244163636f756e7449640100000c011c6163636f756e740001244163636f756e74496400010c66656518011c42616c616e63650001186669656c6473c90301384964656e746974794669656c6473000069070000026107006d070c3c70616c6c65745f6964656e746974791870616c6c6574144572726f7204045400014048546f6f4d616e795375624163636f756e74730000045c546f6f206d616e7920737562732d6163636f756e74732e204e6f74466f756e64000104504163636f756e742069736e277420666f756e642e204e6f744e616d6564000204504163636f756e742069736e2774206e616d65642e28456d707479496e64657800030430456d70747920696e6465782e284665654368616e6765640004043c466565206973206368616e6765642e284e6f4964656e74697479000504484e6f206964656e7469747920666f756e642e3c537469636b794a756467656d656e7400060444537469636b79206a756467656d656e742e384a756467656d656e74476976656e000704404a756467656d656e7420676976656e2e40496e76616c69644a756467656d656e7400080448496e76616c6964206a756467656d656e742e30496e76616c6964496e6465780009045454686520696e64657820697320696e76616c69642e34496e76616c6964546172676574000a04585468652074617267657420697320696e76616c69642e34546f6f4d616e794669656c6473000b046c546f6f206d616e79206164646974696f6e616c206669656c64732e44546f6f4d616e7952656769737472617273000c04e84d6178696d756d20616d6f756e74206f66207265676973747261727320726561636865642e2043616e6e6f742061646420616e79206d6f72652e38416c7265616479436c61696d6564000d04704163636f756e7420494420697320616c7265616479206e616d65642e184e6f74537562000e047053656e646572206973206e6f742061207375622d6163636f756e742e204e6f744f776e6564000f04885375622d6163636f756e742069736e2774206f776e65642062792073656e6465722e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a09090971070000040875071800750710346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e6465645665630804540179070453000004007d0701185665633c543e00007907083070616c6c65745f70726f78793c50726f7879446566696e6974696f6e0c244163636f756e74496401002450726f7879547970650121012c426c6f636b4e756d6265720110000c012064656c65676174650001244163636f756e74496400012870726f78795f747970652101012450726f78795479706500011464656c617910012c426c6f636b4e756d62657200007d0700000279070081070000040885071800850710346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e6465645665630804540189070453000004008d0701185665633c543e00008907083070616c6c65745f70726f787930416e6e6f756e63656d656e740c244163636f756e7449640100104861736801242c426c6f636b4e756d6265720110000c01107265616c0001244163636f756e74496400012463616c6c5f686173682401104861736800011868656967687410012c426c6f636b4e756d62657200008d0700000289070091070c3070616c6c65745f70726f78791870616c6c6574144572726f720404540001201c546f6f4d616e79000004210154686572652061726520746f6f206d616e792070726f786965732072656769737465726564206f7220746f6f206d616e7920616e6e6f756e63656d656e74732070656e64696e672e204e6f74466f756e640001047450726f787920726567697374726174696f6e206e6f7420666f756e642e204e6f7450726f7879000204cc53656e646572206973206e6f7420612070726f7879206f6620746865206163636f756e7420746f2062652070726f786965642e2c556e70726f787961626c650003042101412063616c6c20776869636820697320696e636f6d70617469626c652077697468207468652070726f7879207479706527732066696c7465722077617320617474656d707465642e244475706c69636174650004046c4163636f756e7420697320616c726561647920612070726f78792e304e6f5065726d697373696f6e000504150143616c6c206d6179206e6f74206265206d6164652062792070726f78792062656361757365206974206d617920657363616c617465206974732070726976696c656765732e2c556e616e6e6f756e636564000604d0416e6e6f756e63656d656e742c206966206d61646520617420616c6c2c20776173206d61646520746f6f20726563656e746c792e2c4e6f53656c6650726f78790007046443616e6e6f74206164642073656c662061732070726f78792e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a0909099507000004080004009907083c70616c6c65745f6d756c7469736967204d756c74697369670c2c426c6f636b4e756d62657201101c42616c616e63650118244163636f756e7449640100001001107768656e2d01015854696d65706f696e743c426c6f636b4e756d6265723e00011c6465706f73697418011c42616c616e63650001246465706f7369746f720001244163636f756e744964000124617070726f76616c73dc01385665633c4163636f756e7449643e00009d070000040c28001800a1070c3c70616c6c65745f6d756c74697369671870616c6c6574144572726f72040454000138404d696e696d756d5468726573686f6c640000047c5468726573686f6c64206d7573742062652032206f7220677265617465722e3c416c7265616479417070726f766564000104ac43616c6c20697320616c726561647920617070726f7665642062792074686973207369676e61746f72792e444e6f417070726f76616c734e65656465640002049c43616c6c20646f65736e2774206e65656420616e7920286d6f72652920617070726f76616c732e44546f6f4665775369676e61746f72696573000304a854686572652061726520746f6f20666577207369676e61746f7269657320696e20746865206c6973742e48546f6f4d616e795369676e61746f72696573000404ac54686572652061726520746f6f206d616e79207369676e61746f7269657320696e20746865206c6973742e545369676e61746f726965734f75744f664f726465720005040d01546865207369676e61746f7269657320776572652070726f7669646564206f7574206f66206f726465723b20746865792073686f756c64206265206f7264657265642e4c53656e646572496e5369676e61746f726965730006040d015468652073656e6465722077617320636f6e7461696e656420696e20746865206f74686572207369676e61746f726965733b2069742073686f756c646e27742062652e204e6f74466f756e64000704dc4d756c7469736967206f7065726174696f6e206e6f7420666f756e64207768656e20617474656d7074696e6720746f2063616e63656c2e204e6f744f776e65720008042d014f6e6c7920746865206163636f756e742074686174206f726967696e616c6c79206372656174656420746865206d756c74697369672069732061626c6520746f2063616e63656c2069742e2c4e6f54696d65706f696e740009041d014e6f2074696d65706f696e742077617320676976656e2c2079657420746865206d756c7469736967206f7065726174696f6e20697320616c726561647920756e6465727761792e3857726f6e6754696d65706f696e74000a042d014120646966666572656e742074696d65706f696e742077617320676976656e20746f20746865206d756c7469736967206f7065726174696f6e207468617420697320756e6465727761792e4c556e657870656374656454696d65706f696e74000b04f4412074696d65706f696e742077617320676976656e2c20796574206e6f206d756c7469736967206f7065726174696f6e20697320756e6465727761792e3c4d6178576569676874546f6f4c6f77000c04d0546865206d6178696d756d2077656967687420696e666f726d6174696f6e2070726f76696465642077617320746f6f206c6f772e34416c726561647953746f726564000d04a0546865206461746120746f2062652073746f72656420697320616c72656164792073746f7265642e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909a507083c70616c6c65745f626f756e7469657318426f756e74790c244163636f756e74496401001c42616c616e636501182c426c6f636b4e756d62657201100018012070726f706f7365720001244163636f756e74496400011476616c756518011c42616c616e636500010c66656518011c42616c616e636500013c63757261746f725f6465706f73697418011c42616c616e6365000110626f6e6418011c42616c616e6365000118737461747573a9070190426f756e74795374617475733c4163636f756e7449642c20426c6f636b4e756d6265723e0000a907083c70616c6c65745f626f756e7469657330426f756e747953746174757308244163636f756e74496401002c426c6f636b4e756d626572011001182050726f706f73656400000020417070726f7665640001001846756e6465640002003c43757261746f7250726f706f73656404011c63757261746f720001244163636f756e7449640003001841637469766508011c63757261746f720001244163636f756e7449640001287570646174655f64756510012c426c6f636b4e756d6265720004003450656e64696e675061796f75740c011c63757261746f720001244163636f756e74496400012c62656e65666963696172790001244163636f756e744964000124756e6c6f636b5f617410012c426c6f636b4e756d62657200050000ad070c3c70616c6c65745f626f756e746965731870616c6c6574144572726f7204045400012470496e73756666696369656e7450726f706f7365727342616c616e63650000047850726f706f73657227732062616c616e636520697320746f6f206c6f772e30496e76616c6964496e646578000104904e6f2070726f706f73616c206f7220626f756e7479206174207468617420696e6465782e30526561736f6e546f6f4269670002048454686520726561736f6e20676976656e206973206a75737420746f6f206269672e40556e65787065637465645374617475730003048054686520626f756e74792073746174757320697320756e65787065637465642e385265717569726543757261746f720004045c5265717569726520626f756e74792063757261746f722e30496e76616c696456616c756500050454496e76616c696420626f756e74792076616c75652e28496e76616c69644665650006044c496e76616c696420626f756e7479206665652e3450656e64696e675061796f75740007086c4120626f756e7479207061796f75742069732070656e64696e672ef8546f2063616e63656c2074686520626f756e74792c20796f75206d75737420756e61737369676e20616e6420736c617368207468652063757261746f722e245072656d6174757265000804450154686520626f756e746965732063616e6e6f7420626520636c61696d65642f636c6f73656420626563617573652069742773207374696c6c20696e2074686520636f756e74646f776e20706572696f642e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909b107082c70616c6c65745f746970731c4f70656e54697010244163636f756e74496401001c42616c616e636501182c426c6f636b4e756d626572011010486173680124001c0118726561736f6e2401104861736800010c77686f0001244163636f756e74496400011866696e6465720001244163636f756e74496400011c6465706f73697418011c42616c616e6365000118636c6f7365737902014c4f7074696f6e3c426c6f636b4e756d6265723e00011074697073f401645665633c284163636f756e7449642c2042616c616e6365293e00012c66696e646572735f666565e80110626f6f6c0000b5070c2c70616c6c65745f746970731870616c6c6574144572726f7204045400011830526561736f6e546f6f4269670000048454686520726561736f6e20676976656e206973206a75737420746f6f206269672e30416c72656164794b6e6f776e00010488546865207469702077617320616c726561647920666f756e642f737461727465642e28556e6b6e6f776e5469700002046054686520746970206861736820697320756e6b6e6f776e2e244e6f7446696e6465720003041d01546865206163636f756e7420617474656d7074696e6720746f20726574726163742074686520746970206973206e6f74207468652066696e646572206f6620746865207469702e245374696c6c4f70656e0004042901546865207469702063616e6e6f7420626520636c61696d65642f636c6f736564206265636175736520746865726520617265206e6f7420656e6f7567682074697070657273207965742e245072656d61747572650005043101546865207469702063616e6e6f7420626520636c61696d65642f636c6f73656420626563617573652069742773207374696c6c20696e2074686520636f756e74646f776e20706572696f642e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909b907089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173651450686173650408426e011001100c4f6666000000185369676e656400010020556e7369676e65640400bd07012828626f6f6c2c20426e2900020024456d657267656e637900030000bd0700000408e81000c107089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f7068617365345265616479536f6c7574696f6e0404410100000c0120737570706f727473cd04012c537570706f7274733c413e00011473636f7265c1040134456c656374696f6e53636f726500011c636f6d707574653d01013c456c656374696f6e436f6d707574650000c507089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f706861736534526f756e64536e617073686f74040441010000080118766f74657273c90701705665633c28412c20566f74655765696768742c205665633c413e293e00011c74617267657473dc01185665633c413e0000c907000002cd0700cd070000040c0020dc00d10710346672616d655f737570706f72741c73746f7261676544626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b01c10404560110045300000400d507013842547265654d61703c4b2c20563e0000d507042042547265654d617008044b01c10404560110000400d907000000d907000002dd0700dd0700000408c1041000e1070c9070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f7068617365187369676e6564405369676e65645375626d697373696f6e0c244163636f756e74496401001c42616c616e6365011820536f6c7574696f6e01f5030010010c77686f0001244163636f756e74496400011c6465706f73697418011c42616c616e63650001307261775f736f6c7574696f6ef1030154526177536f6c7574696f6e3c536f6c7574696f6e3e00011872657761726418011c42616c616e63650000e5070c9070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173651870616c6c6574144572726f7204045400012c6850726544697370617463684561726c795375626d697373696f6e000004645375626d697373696f6e2077617320746f6f206561726c792e6c507265446973706174636857726f6e6757696e6e6572436f756e740001048857726f6e67206e756d626572206f662077696e6e6572732070726573656e7465642e6450726544697370617463685765616b5375626d697373696f6e000204905375626d697373696f6e2077617320746f6f207765616b2c2073636f72652d776973652e3c5369676e6564517565756546756c6c0003044901546865207175657565207761732066756c6c2c20616e642074686520736f6c7574696f6e20776173206e6f7420626574746572207468616e20616e79206f6620746865206578697374696e67206f6e65732e585369676e656443616e6e6f745061794465706f73697400040494546865206f726967696e206661696c656420746f2070617920746865206465706f7369742e505369676e6564496e76616c69645769746e657373000504a05769746e657373206461746120746f20646973706174636861626c6520697320696e76616c69642e4c5369676e6564546f6f4d756368576569676874000604b8546865207369676e6564207375626d697373696f6e20636f6e73756d657320746f6f206d756368207765696768743c4f637743616c6c57726f6e67457261000704984f4357207375626d697474656420736f6c7574696f6e20666f722077726f6e6720726f756e645c4d697373696e67536e617073686f744d65746164617461000804a8536e617073686f74206d657461646174612073686f756c6420657869737420627574206469646e27742e58496e76616c69645375626d697373696f6e496e646578000904d06053656c663a3a696e736572745f7375626d697373696f6e602072657475726e656420616e20696e76616c696420696e6465782e3843616c6c4e6f74416c6c6f776564000a04985468652063616c6c206973206e6f7420616c6c6f776564206174207468697320706f696e742e040d014572726f72206f66207468652070616c6c657420746861742063616e2062652072657475726e656420696e20726573706f6e736520746f20646973706174636865732ee9070c6c706f6c6b61646f745f72756e74696d655f70617261636861696e7334636f6e66696775726174696f6e44486f7374436f6e66696775726174696f6e042c426c6f636b4e756d626572011000a001346d61785f636f64655f73697a6510010c7533320001486d61785f686561645f646174615f73697a6510010c7533320001586d61785f7570776172645f71756575655f636f756e7410010c7533320001546d61785f7570776172645f71756575655f73697a6510010c75333200015c6d61785f7570776172645f6d6573736167655f73697a6510010c7533320001906d61785f7570776172645f6d6573736167655f6e756d5f7065725f63616e64696461746510010c75333200018868726d705f6d61785f6d6573736167655f6e756d5f7065725f63616e64696461746510010c75333200017076616c69646174696f6e5f757067726164655f6672657175656e637910012c426c6f636b4e756d62657200016076616c69646174696f6e5f757067726164655f64656c617910012c426c6f636b4e756d6265720001306d61785f706f765f73697a6510010c7533320001646d61785f646f776e776172645f6d6573736167655f73697a6510010c753332000160756d705f736572766963655f746f74616c5f77656967687420011857656967687400019068726d705f6d61785f70617261636861696e5f6f7574626f756e645f6368616e6e656c7310010c75333200019468726d705f6d61785f706172617468726561645f6f7574626f756e645f6368616e6e656c7310010c75333200014c68726d705f73656e6465725f6465706f73697418011c42616c616e636500015868726d705f726563697069656e745f6465706f73697418011c42616c616e636500016468726d705f6368616e6e656c5f6d61785f636170616369747910010c75333200016c68726d705f6368616e6e656c5f6d61785f746f74616c5f73697a6510010c75333200018c68726d705f6d61785f70617261636861696e5f696e626f756e645f6368616e6e656c7310010c75333200019068726d705f6d61785f706172617468726561645f696e626f756e645f6368616e6e656c7310010c75333200017468726d705f6368616e6e656c5f6d61785f6d6573736167655f73697a6510010c753332000154636f64655f726574656e74696f6e5f706572696f6410012c426c6f636b4e756d626572000140706172617468726561645f636f72657310010c753332000148706172617468726561645f7265747269657310010c75333200016067726f75705f726f746174696f6e5f6672657175656e637910012c426c6f636b4e756d626572000164636861696e5f617661696c6162696c6974795f706572696f6410012c426c6f636b4e756d6265720001687468726561645f617661696c6162696c6974795f706572696f6410012c426c6f636b4e756d6265720001507363686564756c696e675f6c6f6f6b616865616410010c75333200015c6d61785f76616c696461746f72735f7065725f636f72657902012c4f7074696f6e3c7533323e0001386d61785f76616c696461746f72737902012c4f7074696f6e3c7533323e000138646973707574655f706572696f6410013053657373696f6e496e6465780001a4646973707574655f706f73745f636f6e636c7573696f6e5f616363657074616e63655f706572696f6410012c426c6f636b4e756d626572000158646973707574655f6d61785f7370616d5f736c6f747310010c753332000194646973707574655f636f6e636c7573696f6e5f62795f74696d655f6f75745f706572696f6410012c426c6f636b4e756d6265720001346e6f5f73686f775f736c6f747310010c7533320001406e5f64656c61795f7472616e6368657310010c7533320001687a65726f74685f64656c61795f7472616e6368655f776964746810010c7533320001406e65656465645f617070726f76616c7310010c75333200016072656c61795f7672665f6d6f64756c6f5f73616d706c657310010c753332000164756d705f6d61785f696e646976696475616c5f7765696768742001185765696768740000ed07106c706f6c6b61646f745f72756e74696d655f70617261636861696e7334636f6e66696775726174696f6e1870616c6c6574144572726f720404540001043c496e76616c69644e657756616c7565000004dc546865206e65772076616c756520666f72206120636f6e66696775726174696f6e20706172616d6574657220697320696e76616c69642e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909f107000002010500f507000002890200f9070c6c706f6c6b61646f745f72756e74696d655f70617261636861696e7324696e636c7573696f6e68417661696c6162696c6974794269746669656c645265636f726404044e0110000801206269746669656c64f5040150417661696c6162696c6974794269746669656c640001307375626d69747465645f61741001044e0000fd070c6c706f6c6b61646f745f72756e74696d655f70617261636861696e7324696e636c7573696f6e7043616e64696461746550656e64696e67417661696c6162696c6974790804480124044e011000200110636f72656d010124436f7265496e646578000110686173683905013443616e6469646174654861736800012864657363726970746f724d01015843616e64696461746544657363726970746f723c483e000148617661696c6162696c6974795f766f746573f90401604269745665633c4269744f726465724c7362302c2075383e00011c6261636b657273f90401604269745665633c4269744f726465724c7362302c2075383e00014c72656c61795f706172656e745f6e756d6265721001044e0001406261636b65645f696e5f6e756d6265721001044e0001346261636b696e675f67726f75707101012847726f7570496e64657800000108106c706f6c6b61646f745f72756e74696d655f70617261636861696e7324696e636c7573696f6e1870616c6c6574144572726f720404540001644457726f6e674269746669656c6453697a65000004a8417661696c6162696c697479206269746669656c642068617320756e65787065637465642073697a652e704269746669656c644475706c69636174654f72556e6f7264657265640001044d014d756c7469706c65206269746669656c6473207375626d69747465642062792073616d652076616c696461746f72206f722076616c696461746f7273206f7574206f66206f7264657220627920696e6465782e6456616c696461746f72496e6465784f75744f66426f756e64730002047856616c696461746f7220696e646578206f7574206f6620626f756e64732e60496e76616c69644269746669656c645369676e617475726500030444496e76616c6964207369676e617475726550556e7363686564756c656443616e646964617465000404ac43616e646964617465207375626d6974746564206275742070617261206e6f74207363686564756c65642e8043616e6469646174655363686564756c65644265666f72655061726146726565000504310143616e646964617465207363686564756c656420646573706974652070656e64696e672063616e64696461746520616c7265616479206578697374696e6720666f722074686520706172612e3457726f6e67436f6c6c61746f72000604ac43616e64696461746520696e636c756465642077697468207468652077726f6e6720636f6c6c61746f722e4c5363686564756c65644f75744f664f72646572000704745363686564756c656420636f726573206f7574206f66206f726465722e404865616444617461546f6f4c61726765000804a448656164206461746120657863656564732074686520636f6e66696775726564206d6178696d756d2e505072656d6174757265436f64655570677261646500090464436f64652075706772616465207072656d61747572656c792e3c4e6577436f6465546f6f4c61726765000a04604f757470757420636f646520697320746f6f206c617267656c43616e6469646174654e6f74496e506172656e74436f6e74657874000b048043616e646964617465206e6f7420696e20706172656e7420636f6e746578742e5c556e6f63637570696564426974496e4269746669656c64000c042101546865206269746669656c6420636f6e7461696e732061206269742072656c6174696e6720746f20616e20756e61737369676e656420617661696c6162696c69747920636f72652e44496e76616c696447726f7570496e646578000d049c496e76616c69642067726f757020696e64657820696e20636f72652061737369676e6d656e742e4c496e73756666696369656e744261636b696e67000e0490496e73756666696369656e7420286e6f6e2d6d616a6f7269747929206261636b696e672e38496e76616c69644261636b696e67000f04e4496e76616c69642028626164207369676e61747572652c20756e6b6e6f776e2076616c696461746f722c206574632e29206261636b696e672e444e6f74436f6c6c61746f725369676e656400100468436f6c6c61746f7220646964206e6f74207369676e20506f562e6856616c69646174696f6e44617461486173684d69736d61746368001104c45468652076616c69646174696f6e2064617461206861736820646f6573206e6f74206d617463682065787065637465642e34496e7465726e616c4572726f720012040501496e7465726e616c206572726f72206f6e6c792072657475726e6564207768656e20636f6d70696c6564207769746820646562756720617373657274696f6e732e80496e636f7272656374446f776e776172644d65737361676548616e646c696e67001304d854686520646f776e77617264206d657373616765207175657565206973206e6f742070726f63657373656420636f72726563746c792e54496e76616c69645570776172644d657373616765730014041d014174206c65617374206f6e6520757077617264206d6573736167652073656e7420646f6573206e6f7420706173732074686520616363657074616e63652063726974657269612e6048726d7057617465726d61726b4d697368616e646c696e6700150411015468652063616e646964617465206469646e277420666f6c6c6f77207468652072756c6573206f662048524d502077617465726d61726b20616476616e63656d656e742e4c496e76616c69644f7574626f756e6448726d70001604d45468652048524d50206d657373616765732073656e74206279207468652063616e646964617465206973206e6f742076616c69642e64496e76616c696456616c69646174696f6e436f646548617368001704dc5468652076616c69646174696f6e20636f64652068617368206f66207468652063616e646964617465206973206e6f742076616c69642e4050617261486561644d69736d6174636800180899015468652060706172615f6865616460206861736820696e207468652063616e6469646174652064657363726970746f7220646f65736e2774206d61746368207468652068617368206f66207468652061637475616c2070617261206865616420696e2074686530636f6d6d69746d656e74732e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a0909090508106c706f6c6b61646f745f72756e74696d655f70617261636861696e733870617261735f696e686572656e741870616c6c6574144572726f7204045400010c64546f6f4d616e79496e636c7573696f6e496e686572656e7473000004cc496e636c7573696f6e20696e686572656e742063616c6c6564206d6f7265207468616e206f6e63652070657220626c6f636b2e4c496e76616c6964506172656e7448656164657200010855015468652068617368206f6620746865207375626d697474656420706172656e742068656164657220646f65736e277420636f72726573706f6e6420746f2074686520736176656420626c6f636b2068617368206f662c74686520706172656e742e6443616e646964617465436f6e636c75646564496e76616c6964000204b844697370757465642063616e64696461746520746861742077617320636f6e636c7564656420696e76616c69642e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a0909090908000002f107000d080c6c706f6c6b61646f745f72756e74696d655f70617261636861696e73247363686564756c65725050617261746872656164436c61696d517565756500000801147175657565110801545665633c517565756564506172617468726561643e0001406e6578745f636f72655f6f666673657410010c7533320000110800000215080015080c6c706f6c6b61646f745f72756e74696d655f70617261636861696e73247363686564756c657240517565756564506172617468726561640000080114636c61696d1908013c50617261746872656164456e74727900012c636f72655f6f666673657410010c753332000019080c4c706f6c6b61646f745f7072696d6974697665730876313c50617261746872656164456e7472790000080114636c61696d1d08013c50617261746872656164436c61696d00011c7265747269657310010c75333200001d080c4c706f6c6b61646f745f7072696d6974697665730876313c50617261746872656164436c61696d00000800510101084964000055010128436f6c6c61746f72496400002108000002250800250804184f7074696f6e0404540129080108104e6f6e6500000010536f6d6504002908000001000029080c4c706f6c6b61646f745f7072696d69746976657308763130436f72654f63637570696564000108285061726174687265616404001908013c50617261746872656164456e7472790000002450617261636861696e000100002d08000002510100310800000235080035080c6c706f6c6b61646f745f72756e74696d655f70617261636861696e73247363686564756c657238436f726541737369676e6d656e740000100110636f72656d010124436f7265496e64657800011c706172615f6964510101185061726149640001106b696e643908013841737369676e6d656e744b696e6400012467726f75705f6964787101012847726f7570496e646578000039080c6c706f6c6b61646f745f72756e74696d655f70617261636861696e73247363686564756c65723841737369676e6d656e744b696e640001082450617261636861696e0000002850617261746872656164080055010128436f6c6c61746f724964000010010c753332000100003d080c6c706f6c6b61646f745f72756e74696d655f70617261636861696e7314706172617334506172614c6966656379636c6500011c284f6e626f617264696e6700000028506172617468726561640001002450617261636861696e0002004c557067726164696e675061726174687265616400030050446f776e67726164696e6750617261636861696e000400544f6666626f617264696e6750617261746872656164000500504f6666626f617264696e6750617261636861696e000600004108000004085101100045080c6c706f6c6b61646f745f72756e74696d655f70617261636861696e73147061726173405061726150617374436f64654d65746104044e011000080134757067726164655f74696d6573490801605665633c5265706c6163656d656e7454696d65733c4e3e3e00012c6c6173745f7072756e6564790201244f7074696f6e3c4e3e000049080000024d08004d080c6c706f6c6b61646f745f72756e74696d655f70617261636861696e73147061726173405265706c6163656d656e7454696d657304044e01100008012c65787065637465645f61741001044e0001306163746976617465645f61741001044e0000510800000241080055080c4c706f6c6b61646f745f7072696d6974697665730876313855706772616465476f41686561640001081441626f72740000001c476f41686561640001000059080c4c706f6c6b61646f745f7072696d69746976657308763148557067726164655265737472696374696f6e0001041c50726573656e74000000005d080c6c706f6c6b61646f745f72756e74696d655f70617261636861696e731470617261733c5061726147656e657369734172677300000c013067656e657369735f6865616469010120486561644461746100013c76616c69646174696f6e5f636f64652505013856616c69646174696f6e436f646500012470617261636861696ee80110626f6f6c00006108106c706f6c6b61646f745f72756e74696d655f70617261636861696e731470617261731870616c6c6574144572726f72040454000114344e6f74526567697374657265640000049450617261206973206e6f74207265676973746572656420696e206f75722073797374656d2e3443616e6e6f744f6e626f6172640001041501506172612063616e6e6f74206265206f6e626f6172646564206265636175736520697420697320616c726561647920747261636b6564206279206f75722073797374656d2e3843616e6e6f744f6666626f6172640002049c506172612063616e6e6f74206265206f6666626f617264656420617420746869732074696d652e3443616e6e6f74557067726164650003049c506172612063616e6e6f7420626520757067726164656420746f20612070617261636861696e2e3c43616e6e6f74446f776e6772616465000404a8506172612063616e6e6f7420626520646f776e67726164656420746f206120706172617468726561642e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909650800000269080069080c6c706f6c6b61646f745f72756e74696d655f70617261636861696e732c696e697469616c697a657254427566666572656453657373696f6e4368616e676500000c012876616c696461746f7273f50701405665633c56616c696461746f7249643e000118717565756564f50701405665633c56616c696461746f7249643e00013473657373696f6e5f696e64657810013053657373696f6e496e64657800006d0800000271080071080860706f6c6b61646f745f636f72655f7072696d69746976657358496e626f756e64446f776e776172644d657373616765042c426c6f636b4e756d62657201100008011c73656e745f617410012c426c6f636b4e756d62657200010c6d736728013c446f776e776172644d6573736167650000750800000408510128007908106c706f6c6b61646f745f72756e74696d655f70617261636861696e730c756d701870616c6c6574144572726f720404540001084c556e6b6e6f776e4d657373616765496e6465780000048c546865206d65737361676520696e64657820676976656e20697320756e6b6e6f776e2e3c5765696768744f7665724c696d6974000104310154686520616d6f756e74206f662077656967687420676976656e20697320706f737369626c79206e6f7420656e6f75676820666f7220657865637574696e6720746865206d6573736167652e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a0909097d080c6c706f6c6b61646f745f72756e74696d655f70617261636861696e731068726d705848726d704f70656e4368616e6e656c526571756573740000180124636f6e6669726d6564e80110626f6f6c0001105f61676510013053657373696f6e496e64657800013873656e6465725f6465706f73697418011c42616c616e63650001406d61785f6d6573736167655f73697a6510010c7533320001306d61785f636170616369747910010c7533320001386d61785f746f74616c5f73697a6510010c7533320000810800000289010085080c6c706f6c6b61646f745f72756e74696d655f70617261636861696e731068726d702c48726d704368616e6e656c00002001306d61785f636170616369747910010c7533320001386d61785f746f74616c5f73697a6510010c7533320001406d61785f6d6573736167655f73697a6510010c7533320001246d73675f636f756e7410010c753332000128746f74616c5f73697a6510010c7533320001206d71635f68656164890801304f7074696f6e3c486173683e00013873656e6465725f6465706f73697418011c42616c616e6365000144726563697069656e745f6465706f73697418011c42616c616e63650000890804184f7074696f6e04045401240108104e6f6e6500000010536f6d6504002400000100008d0800000291080091080860706f6c6b61646f745f636f72655f7072696d69746976657348496e626f756e6448726d704d657373616765042c426c6f636b4e756d62657201100008011c73656e745f617410012c426c6f636b4e756d6265720001106461746128015073705f7374643a3a7665633a3a5665633c75383e00009508000002990800990800000408102d08009d08106c706f6c6b61646f745f72756e74696d655f70617261636861696e731068726d701870616c6c6574144572726f72040454000148544f70656e48726d704368616e6e656c546f53656c66000004c45468652073656e64657220747269656420746f206f70656e2061206368616e6e656c20746f207468656d73656c7665732e7c4f70656e48726d704368616e6e656c496e76616c6964526563697069656e740001048854686520726563697069656e74206973206e6f7420612076616c696420706172612e6c4f70656e48726d704368616e6e656c5a65726f43617061636974790002047c54686520726571756573746564206361706163697479206973207a65726f2e8c4f70656e48726d704368616e6e656c4361706163697479457863656564734c696d6974000304c05468652072657175657374656420636170616369747920657863656564732074686520676c6f62616c206c696d69742e784f70656e48726d704368616e6e656c5a65726f4d65737361676553697a65000404a054686520726571756573746564206d6178696d756d206d6573736167652073697a6520697320302e984f70656e48726d704368616e6e656c4d65737361676553697a65457863656564734c696d69740005042901546865206f70656e20726571756573742072657175657374656420746865206d6573736167652073697a65207468617420657863656564732074686520676c6f62616c206c696d69742e704f70656e48726d704368616e6e656c416c726561647945786973747300060468546865206368616e6e656c20616c7265616479206578697374737c4f70656e48726d704368616e6e656c416c7265616479526571756573746564000704d0546865726520697320616c72656164792061207265717565737420746f206f70656e207468652073616d65206368616e6e656c2e704f70656e48726d704368616e6e656c4c696d697445786365656465640008041d015468652073656e64657220616c72656164792068617320746865206d6178696d756d206e756d626572206f6620616c6c6f776564206f7574626f756e64206368616e6e656c732e7041636365707448726d704368616e6e656c446f65736e744578697374000904e0546865206368616e6e656c2066726f6d207468652073656e64657220746f20746865206f726967696e20646f65736e27742065786973742e8441636365707448726d704368616e6e656c416c7265616479436f6e6669726d6564000a0484546865206368616e6e656c20697320616c726561647920636f6e6669726d65642e7841636365707448726d704368616e6e656c4c696d69744578636565646564000b04250154686520726563697069656e7420616c72656164792068617320746865206d6178696d756d206e756d626572206f6620616c6c6f77656420696e626f756e64206368616e6e656c732e70436c6f736548726d704368616e6e656c556e617574686f72697a6564000c045501546865206f726967696e20747269657320746f20636c6f73652061206368616e6e656c207768657265206974206973206e656974686572207468652073656e646572206e6f722074686520726563697069656e742e6c436c6f736548726d704368616e6e656c446f65736e744578697374000d049c546865206368616e6e656c20746f20626520636c6f73656420646f65736e27742065786973742e7c436c6f736548726d704368616e6e656c416c7265616479556e646572776179000e04bc546865206368616e6e656c20636c6f7365207265717565737420697320616c7265616479207265717565737465642e8443616e63656c48726d704f70656e4368616e6e656c556e617574686f72697a6564000f045d0143616e63656c696e6720697320726571756573746564206279206e656974686572207468652073656e646572206e6f7220726563697069656e74206f6620746865206f70656e206368616e6e656c20726571756573742e684f70656e48726d704368616e6e656c446f65736e7445786973740010047c546865206f70656e207265717565737420646f65736e27742065786973742e7c4f70656e48726d704368616e6e656c416c7265616479436f6e6669726d65640011042d0143616e6e6f742063616e63656c20616e2048524d50206f70656e206368616e6e656c2072657175657374206265636175736520697420697320616c726561647920636f6e6669726d65642e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909a1080000028d0200a5080c4c706f6c6b61646f745f7072696d6974697665730876312c53657373696f6e496e666f000028012876616c696461746f7273f50701405665633c56616c696461746f7249643e000138646973636f766572795f6b657973a90801645665633c417574686f72697479446973636f7665727949643e00013c61737369676e6d656e745f6b657973a10801445665633c41737369676e6d656e7449643e00014076616c696461746f725f67726f757073090801605665633c5665633c56616c696461746f72496e6465783e3e00011c6e5f636f72657310010c7533320001687a65726f74685f64656c61795f7472616e6368655f776964746810010c75333200016072656c61795f7672665f6d6f64756c6f5f73616d706c657310010c7533320001406e5f64656c61795f7472616e6368657310010c7533320001346e6f5f73686f775f736c6f747310010c7533320001406e65656465645f617070726f76616c7310010c7533320000a908000002910200ad080c5c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e3c70617261735f7265676973747261722050617261496e666f081c4163636f756e7401001c42616c616e63650118000c011c6d616e6167657200011c4163636f756e7400011c6465706f73697418011c42616c616e63650001186c6f636b6564e80110626f6f6c0000b108105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e3c70617261735f7265676973747261721870616c6c6574144572726f72040454000130344e6f745265676973746572656400000464546865204944206973206e6f7420726567697374657265642e44416c7265616479526567697374657265640001047454686520494420697320616c726561647920726567697374657265642e204e6f744f776e65720002049c5468652063616c6c6572206973206e6f7420746865206f776e6572206f6620746869732049642e30436f6465546f6f4c617267650003045c496e76616c6964207061726120636f64652073697a652e404865616444617461546f6f4c6172676500040470496e76616c69642070617261206865616420646174612073697a652e304e6f7450617261636861696e0005046050617261206973206e6f7420612050617261636861696e2e344e6f74506172617468726561640006046450617261206973206e6f74206120506172617468726561642e4043616e6e6f74446572656769737465720007045843616e6e6f74206465726567697374657220706172613c43616e6e6f74446f776e6772616465000804d043616e6e6f74207363686564756c6520646f776e6772616465206f662070617261636861696e20746f20706172617468726561643443616e6e6f7455706772616465000904c843616e6e6f74207363686564756c652075706772616465206f66207061726174687265616420746f2070617261636861696e28506172614c6f636b6564000a04790150617261206973206c6f636b65642066726f6d206d616e6970756c6174696f6e20627920746865206d616e616765722e204d757374207573652070617261636861696e206f722072656c617920636861696e20676f7665726e616e63652e2c4e6f745265736572766564000b04d054686520494420676976656e20666f7220726567697374726174696f6e20686173206e6f74206265656e2072657365727665642e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909b508000002b90800b90804184f7074696f6e04045401f80108104e6f6e6500000010536f6d650400f80000010000bd08105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e14736c6f74731870616c6c6574144572726f7204045400010844506172614e6f744f6e626f617264696e670000048c5468652070617261636861696e204944206973206e6f74206f6e626f617264696e672e284c656173654572726f720001048854686572652077617320616e206572726f72207769746820746865206c656173652e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909c1080000040800510100c50800000324000000c90800c90804184f7074696f6e04045401cd080108104e6f6e6500000010536f6d650400cd080000010000cd080000040c0051011800d108105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e2061756374696f6e731870616c6c6574144572726f7204045400011c4441756374696f6e496e50726f677265737300000490546869732061756374696f6e20697320616c726561647920696e2070726f67726573732e444c65617365506572696f64496e5061737400010480546865206c6561736520706572696f6420697320696e2074686520706173742e44506172614e6f74526567697374657265640002045850617261206973206e6f742072656769737465726564444e6f7443757272656e7441756374696f6e000304584e6f7420612063757272656e742061756374696f6e2e284e6f7441756374696f6e0004043c4e6f7420616e2061756374696f6e2e3041756374696f6e456e6465640005046841756374696f6e2068617320616c726561647920656e6465642e40416c72656164794c65617365644f7574000604d8546865207061726120697320616c7265616479206c6561736564206f757420666f722070617274206f6620746869732072616e67652e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909d5080c5c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e2463726f77646c6f616e2046756e64496e666f10244163636f756e74496401001c42616c616e636501182c426c6f636b4e756d62657201102c4c65617365506572696f640110002801246465706f7369746f720001244163636f756e74496400012076657269666965727905014c4f7074696f6e3c4d756c74695369676e65723e00011c6465706f73697418011c42616c616e636500011872616973656418011c42616c616e636500010c656e6410012c426c6f636b4e756d62657200010c63617018011c42616c616e63650001446c6173745f636f6e747269627574696f6ed90801744c617374436f6e747269627574696f6e3c426c6f636b4e756d6265723e00013066697273745f706572696f6410012c4c65617365506572696f6400012c6c6173745f706572696f6410012c4c65617365506572696f64000128747269655f696e64657810012454726965496e6465780000d9080c5c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e2463726f77646c6f616e404c617374436f6e747269627574696f6e042c426c6f636b4e756d6265720110010c144e6576657200000024507265456e64696e67040010010c75333200010018456e64696e67040010012c426c6f636b4e756d62657200020000dd08105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e2463726f77646c6f616e1870616c6c6574144572726f7204045400015c444669727374506572696f64496e50617374000004f45468652063757272656e74206c6561736520706572696f64206973206d6f7265207468616e20746865206669727374206c6561736520706572696f642e644669727374506572696f64546f6f466172496e4675747572650001041101546865206669727374206c6561736520706572696f64206e6565647320746f206174206c65617374206265206c657373207468616e203320606d61785f76616c7565602e6c4c617374506572696f644265666f72654669727374506572696f64000204e84c617374206c6561736520706572696f64206d7573742062652067726561746572207468616e206669727374206c6561736520706572696f642e604c617374506572696f64546f6f466172496e4675747572650003042d01546865206c617374206c6561736520706572696f642063616e6e6f74206265206d6f7265207468616e203320706572696f64732061667465722074686520666972737420706572696f642e3c43616e6e6f74456e64496e5061737400040445015468652063616d706169676e20656e6473206265666f7265207468652063757272656e7420626c6f636b206e756d6265722e2054686520656e64206d75737420626520696e20746865206675747572652e44456e64546f6f466172496e467574757265000504c054686520656e64206461746520666f7220746869732063726f77646c6f616e206973206e6f742073656e7369626c652e204f766572666c6f770006045854686572652077617320616e206f766572666c6f772e50436f6e747269627574696f6e546f6f536d616c6c000704e854686520636f6e747269627574696f6e207761732062656c6f7720746865206d696e696d756d2c20604d696e436f6e747269627574696f6e602e34496e76616c69645061726149640008044c496e76616c69642066756e6420696e6465782e2c436170457863656564656400090490436f6e747269627574696f6e7320657863656564206d6178696d756d20616d6f756e742e58436f6e747269627574696f6e506572696f644f766572000a04a854686520636f6e747269627574696f6e20706572696f642068617320616c726561647920656e6465642e34496e76616c69644f726967696e000b048c546865206f726967696e206f6620746869732063616c6c20697320696e76616c69642e304e6f7450617261636861696e000c04c8546869732063726f77646c6f616e20646f6573206e6f7420636f72726573706f6e6420746f20612070617261636861696e2e2c4c65617365416374697665000d041501546869732070617261636861696e206c65617365206973207374696c6c2061637469766520616e64207265746972656d656e742063616e6e6f742079657420626567696e2e404269644f724c65617365416374697665000e043101546869732070617261636861696e277320626964206f72206c65617365206973207374696c6c2061637469766520616e642077697468647261772063616e6e6f742079657420626567696e2e3046756e644e6f74456e646564000f04805468652063726f77646c6f616e20686173206e6f742079657420656e6465642e3c4e6f436f6e747269627574696f6e73001004d0546865726520617265206e6f20636f6e747269627574696f6e732073746f72656420696e20746869732063726f77646c6f616e2e484e6f745265616479546f446973736f6c766500110475015468652063726f77646c6f616e206973206e6f7420726561647920746f20646973736f6c76652e20506f74656e7469616c6c79207374696c6c20686173206120736c6f74206f7220696e207265746972656d656e7420706572696f642e40496e76616c69645369676e617475726500120448496e76616c6964207369676e61747572652e304d656d6f546f6f4c617267650013047c5468652070726f7669646564206d656d6f20697320746f6f206c617267652e44416c7265616479496e4e65775261697365001404845468652066756e6420697320616c726561647920696e20604e65775261697365604856726644656c6179496e50726f6772657373001504b44e6f20636f6e747269627574696f6e7320616c6c6f77656420647572696e6720746865205652462064656c6179344e6f4c65617365506572696f640016042d0141206c6561736520706572696f6420686173206e6f742073746172746564207965742c2064756520746f20616e206f666673657420696e20746865207374617274696e6720626c6f636b2e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909e108102873705f72756e74696d651c67656e657269634c756e636865636b65645f65787472696e73696348556e636865636b656445787472696e736963101c41646472657373014d021043616c6c010902245369676e6174757265018d0514457874726101e50800040028000000e50800000420e908ed08f108f508fd0801090509090900e90810306672616d655f73797374656d28657874656e73696f6e7348636865636b5f737065635f76657273696f6e40436865636b5370656356657273696f6e04045400000000ed0810306672616d655f73797374656d28657874656e73696f6e7340636865636b5f74785f76657273696f6e38436865636b547856657273696f6e04045400000000f10810306672616d655f73797374656d28657874656e73696f6e7334636865636b5f67656e6573697330436865636b47656e6573697304045400000000f50810306672616d655f73797374656d28657874656e73696f6e733c636865636b5f6d6f7274616c69747938436865636b4d6f7274616c69747904045400000400f908010c4572610000f908102873705f72756e74696d651c67656e657269630c6572610c4572610001010420496d6d6f7274616c0000001c4d6f7274616c31040008000001001c4d6f7274616c32040008000002001c4d6f7274616c33040008000003001c4d6f7274616c34040008000004001c4d6f7274616c35040008000005001c4d6f7274616c36040008000006001c4d6f7274616c37040008000007001c4d6f7274616c38040008000008001c4d6f7274616c3904000800000900204d6f7274616c313004000800000a00204d6f7274616c313104000800000b00204d6f7274616c313204000800000c00204d6f7274616c313304000800000d00204d6f7274616c313404000800000e00204d6f7274616c313504000800000f00204d6f7274616c313604000800001000204d6f7274616c313704000800001100204d6f7274616c313804000800001200204d6f7274616c313904000800001300204d6f7274616c323004000800001400204d6f7274616c323104000800001500204d6f7274616c323204000800001600204d6f7274616c323304000800001700204d6f7274616c323404000800001800204d6f7274616c323504000800001900204d6f7274616c323604000800001a00204d6f7274616c323704000800001b00204d6f7274616c323804000800001c00204d6f7274616c323904000800001d00204d6f7274616c333004000800001e00204d6f7274616c333104000800001f00204d6f7274616c333204000800002000204d6f7274616c333304000800002100204d6f7274616c333404000800002200204d6f7274616c333504000800002300204d6f7274616c333604000800002400204d6f7274616c333704000800002500204d6f7274616c333804000800002600204d6f7274616c333904000800002700204d6f7274616c343004000800002800204d6f7274616c343104000800002900204d6f7274616c343204000800002a00204d6f7274616c343304000800002b00204d6f7274616c343404000800002c00204d6f7274616c343504000800002d00204d6f7274616c343604000800002e00204d6f7274616c343704000800002f00204d6f7274616c343804000800003000204d6f7274616c343904000800003100204d6f7274616c353004000800003200204d6f7274616c353104000800003300204d6f7274616c353204000800003400204d6f7274616c353304000800003500204d6f7274616c353404000800003600204d6f7274616c353504000800003700204d6f7274616c353604000800003800204d6f7274616c353704000800003900204d6f7274616c353804000800003a00204d6f7274616c353904000800003b00204d6f7274616c363004000800003c00204d6f7274616c363104000800003d00204d6f7274616c363204000800003e00204d6f7274616c363304000800003f00204d6f7274616c363404000800004000204d6f7274616c363504000800004100204d6f7274616c363604000800004200204d6f7274616c363704000800004300204d6f7274616c363804000800004400204d6f7274616c363904000800004500204d6f7274616c373004000800004600204d6f7274616c373104000800004700204d6f7274616c373204000800004800204d6f7274616c373304000800004900204d6f7274616c373404000800004a00204d6f7274616c373504000800004b00204d6f7274616c373604000800004c00204d6f7274616c373704000800004d00204d6f7274616c373804000800004e00204d6f7274616c373904000800004f00204d6f7274616c383004000800005000204d6f7274616c383104000800005100204d6f7274616c383204000800005200204d6f7274616c383304000800005300204d6f7274616c383404000800005400204d6f7274616c383504000800005500204d6f7274616c383604000800005600204d6f7274616c383704000800005700204d6f7274616c383804000800005800204d6f7274616c383904000800005900204d6f7274616c393004000800005a00204d6f7274616c393104000800005b00204d6f7274616c393204000800005c00204d6f7274616c393304000800005d00204d6f7274616c393404000800005e00204d6f7274616c393504000800005f00204d6f7274616c393604000800006000204d6f7274616c393704000800006100204d6f7274616c393804000800006200204d6f7274616c393904000800006300244d6f7274616c31303004000800006400244d6f7274616c31303104000800006500244d6f7274616c31303204000800006600244d6f7274616c31303304000800006700244d6f7274616c31303404000800006800244d6f7274616c31303504000800006900244d6f7274616c31303604000800006a00244d6f7274616c31303704000800006b00244d6f7274616c31303804000800006c00244d6f7274616c31303904000800006d00244d6f7274616c31313004000800006e00244d6f7274616c31313104000800006f00244d6f7274616c31313204000800007000244d6f7274616c31313304000800007100244d6f7274616c31313404000800007200244d6f7274616c31313504000800007300244d6f7274616c31313604000800007400244d6f7274616c31313704000800007500244d6f7274616c31313804000800007600244d6f7274616c31313904000800007700244d6f7274616c31323004000800007800244d6f7274616c31323104000800007900244d6f7274616c31323204000800007a00244d6f7274616c31323304000800007b00244d6f7274616c31323404000800007c00244d6f7274616c31323504000800007d00244d6f7274616c31323604000800007e00244d6f7274616c31323704000800007f00244d6f7274616c31323804000800008000244d6f7274616c31323904000800008100244d6f7274616c31333004000800008200244d6f7274616c31333104000800008300244d6f7274616c31333204000800008400244d6f7274616c31333304000800008500244d6f7274616c31333404000800008600244d6f7274616c31333504000800008700244d6f7274616c31333604000800008800244d6f7274616c31333704000800008900244d6f7274616c31333804000800008a00244d6f7274616c31333904000800008b00244d6f7274616c31343004000800008c00244d6f7274616c31343104000800008d00244d6f7274616c31343204000800008e00244d6f7274616c31343304000800008f00244d6f7274616c31343404000800009000244d6f7274616c31343504000800009100244d6f7274616c31343604000800009200244d6f7274616c31343704000800009300244d6f7274616c31343804000800009400244d6f7274616c31343904000800009500244d6f7274616c31353004000800009600244d6f7274616c31353104000800009700244d6f7274616c31353204000800009800244d6f7274616c31353304000800009900244d6f7274616c31353404000800009a00244d6f7274616c31353504000800009b00244d6f7274616c31353604000800009c00244d6f7274616c31353704000800009d00244d6f7274616c31353804000800009e00244d6f7274616c31353904000800009f00244d6f7274616c3136300400080000a000244d6f7274616c3136310400080000a100244d6f7274616c3136320400080000a200244d6f7274616c3136330400080000a300244d6f7274616c3136340400080000a400244d6f7274616c3136350400080000a500244d6f7274616c3136360400080000a600244d6f7274616c3136370400080000a700244d6f7274616c3136380400080000a800244d6f7274616c3136390400080000a900244d6f7274616c3137300400080000aa00244d6f7274616c3137310400080000ab00244d6f7274616c3137320400080000ac00244d6f7274616c3137330400080000ad00244d6f7274616c3137340400080000ae00244d6f7274616c3137350400080000af00244d6f7274616c3137360400080000b000244d6f7274616c3137370400080000b100244d6f7274616c3137380400080000b200244d6f7274616c3137390400080000b300244d6f7274616c3138300400080000b400244d6f7274616c3138310400080000b500244d6f7274616c3138320400080000b600244d6f7274616c3138330400080000b700244d6f7274616c3138340400080000b800244d6f7274616c3138350400080000b900244d6f7274616c3138360400080000ba00244d6f7274616c3138370400080000bb00244d6f7274616c3138380400080000bc00244d6f7274616c3138390400080000bd00244d6f7274616c3139300400080000be00244d6f7274616c3139310400080000bf00244d6f7274616c3139320400080000c000244d6f7274616c3139330400080000c100244d6f7274616c3139340400080000c200244d6f7274616c3139350400080000c300244d6f7274616c3139360400080000c400244d6f7274616c3139370400080000c500244d6f7274616c3139380400080000c600244d6f7274616c3139390400080000c700244d6f7274616c3230300400080000c800244d6f7274616c3230310400080000c900244d6f7274616c3230320400080000ca00244d6f7274616c3230330400080000cb00244d6f7274616c3230340400080000cc00244d6f7274616c3230350400080000cd00244d6f7274616c3230360400080000ce00244d6f7274616c3230370400080000cf00244d6f7274616c3230380400080000d000244d6f7274616c3230390400080000d100244d6f7274616c3231300400080000d200244d6f7274616c3231310400080000d300244d6f7274616c3231320400080000d400244d6f7274616c3231330400080000d500244d6f7274616c3231340400080000d600244d6f7274616c3231350400080000d700244d6f7274616c3231360400080000d800244d6f7274616c3231370400080000d900244d6f7274616c3231380400080000da00244d6f7274616c3231390400080000db00244d6f7274616c3232300400080000dc00244d6f7274616c3232310400080000dd00244d6f7274616c3232320400080000de00244d6f7274616c3232330400080000df00244d6f7274616c3232340400080000e000244d6f7274616c3232350400080000e100244d6f7274616c3232360400080000e200244d6f7274616c3232370400080000e300244d6f7274616c3232380400080000e400244d6f7274616c3232390400080000e500244d6f7274616c3233300400080000e600244d6f7274616c3233310400080000e700244d6f7274616c3233320400080000e800244d6f7274616c3233330400080000e900244d6f7274616c3233340400080000ea00244d6f7274616c3233350400080000eb00244d6f7274616c3233360400080000ec00244d6f7274616c3233370400080000ed00244d6f7274616c3233380400080000ee00244d6f7274616c3233390400080000ef00244d6f7274616c3234300400080000f000244d6f7274616c3234310400080000f100244d6f7274616c3234320400080000f200244d6f7274616c3234330400080000f300244d6f7274616c3234340400080000f400244d6f7274616c3234350400080000f500244d6f7274616c3234360400080000f600244d6f7274616c3234370400080000f700244d6f7274616c3234380400080000f800244d6f7274616c3234390400080000f900244d6f7274616c3235300400080000fa00244d6f7274616c3235310400080000fb00244d6f7274616c3235320400080000fc00244d6f7274616c3235330400080000fd00244d6f7274616c3235340400080000fe00244d6f7274616c3235350400080000ff0000fd0810306672616d655f73797374656d28657874656e73696f6e732c636865636b5f6e6f6e636528436865636b4e6f6e636504045400000400ad010120543a3a496e6465780000010910306672616d655f73797374656d28657874656e73696f6e7330636865636b5f7765696768742c436865636b576569676874040454000000000509086870616c6c65745f7472616e73616374696f6e5f7061796d656e74604368617267655472616e73616374696f6e5061796d656e7404045400000400cc013042616c616e63654f663c543e000009090c5c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e18636c61696d734850726576616c696461746541747465737473040454000000000d090840706f6c6b61646f745f72756e74696d651c52756e74696d6500000000b81853797374656d011853797374656d401c4163636f756e7401010402000c4101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e74000010040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e2c426c6f636b57656967687401001c600000000000000000000000000000000000000000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e000010040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b486173680101040510248000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101040510280400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d6265720100101000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801002480000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e1844696765737401002c040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e7473010048040010a0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e005901204e4f54453a20546869732073746f72616765206974656d206973206578706c696369746c7920756e626f756e6465642073696e6365206974206973206e6576657220696e74656e64656420746f2062652072656164642066726f6d2077697468696e207468652072756e74696d652e284576656e74436f756e74010010100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f706963730101040224a5010400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e004d01205468652076616c756520686173207468652074797065206028543a3a426c6f636b4e756d6265722c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000a90104000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e740100e80400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e740100e80400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e506861736500009d01040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e01b50101541830426c6f636b57656967687473c901850100f2052a0100000000204aa9d1010000405973070000000001c0766c8f58010000010098f73e5d010000010000000000000000405973070000000001c0febef9cc0100000100204aa9d1010000010088526a74000000405973070000000000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e677468d9013000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e74101060090000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e204462576569676874e1014040787d010000000000e1f505000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6ee501490320706f6c6b61646f743c7061726974792d706f6c6b61646f7400000000962300000000000038df6acb689907609b0300000037e397fc7c91f5e40100000040fe3ad401f8959a05000000d2bc9897eed08f1503000000f78b278be53f454c02000000af2c0297a23e6d3d0100000049eaaf1b548a0cb00100000091d5df18b0d2cf5801000000ed99c5acb25eedf503000000cbca25e39f14238702000000687ad44ad37f03c201000000ab3c0572291feb8b01000000bc9d89904f5b923f0100000037c8bb1350a9a2a801000000080000000484204765742074686520636861696e27732063757272656e742076657273696f6e2e2853533538507265666978250108000014a8205468652064657369676e61746564205353383520707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e01f90100245363686564756c657201245363686564756c65720c184167656e64610101040510fd010400044d01204974656d7320746f2062652065786563757465642c20696e64657865642062792074686520626c6f636b206e756d626572207468617420746865792073686f756c64206265206578656375746564206f6e2e184c6f6f6b75700001040528740400040101204c6f6f6b75702066726f6d206964656e7469747920746f2074686520626c6f636b206e756d62657220616e6420696e646578206f6620746865207461736b2e3853746f7261676556657273696f6e0100ad0504000c7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e0098204e6577206e6574776f726b732073746172742077697468206c6173742076657273696f6e2e010d02017008344d6178696d756d576569676874202000806e877401000008450120546865206d6178696d756d207765696768742074686174206d6179206265207363686564756c65642070657220626c6f636b20666f7220616e7920646973706174636861626c6573206f66206c657373a4207072696f72697479207468616e20607363686564756c653a3a484152445f444541444c494e45602e504d61785363686564756c6564506572426c6f636b101032000000081d0120546865206d6178696d756d206e756d626572206f66207363686564756c65642063616c6c7320696e2074686520717565756520666f7220612073696e676c6520626c6f636b2edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e01b105011042616265011042616265402845706f6368496e64657801002020000000000000000004542043757272656e742065706f636820696e6465782e2c417574686f7269746965730100b5050400046c2043757272656e742065706f636820617574686f7269746965732e2c47656e65736973536c6f740100290220000000000000000008f82054686520736c6f74206174207768696368207468652066697273742065706f63682061637475616c6c7920737461727465642e205468697320697320309020756e74696c2074686520666972737420626c6f636b206f662074686520636861696e2e2c43757272656e74536c6f740100290220000000000000000004542043757272656e7420736c6f74206e756d6265722e2852616e646f6d6e65737301000480000000000000000000000000000000000000000000000000000000000000000028b8205468652065706f63682072616e646f6d6e65737320666f7220746865202a63757272656e742a2065706f63682e002c20232053656375726974790005012054686973204d555354204e4f54206265207573656420666f722067616d626c696e672c2061732069742063616e20626520696e666c75656e6365642062792061f8206d616c6963696f75732076616c696461746f7220696e207468652073686f7274207465726d2e204974204d4159206265207573656420696e206d616e7915012063727970746f677261706869632070726f746f636f6c732c20686f77657665722c20736f206c6f6e67206173206f6e652072656d656d6265727320746861742074686973150120286c696b652065766572797468696e6720656c7365206f6e2d636861696e29206974206973207075626c69632e20466f72206578616d706c652c2069742063616e206265050120757365642077686572652061206e756d626572206973206e656564656420746861742063616e6e6f742068617665206265656e2063686f73656e20627920616e0d01206164766572736172792c20666f7220707572706f7365732073756368206173207075626c69632d636f696e207a65726f2d6b6e6f776c656467652070726f6f66732e6050656e64696e6745706f6368436f6e6669674368616e67650000310204000461012050656e64696e672065706f636820636f6e66696775726174696f6e206368616e676520746861742077696c6c206265206170706c696564207768656e20746865206e6578742065706f636820697320656e61637465642e384e65787452616e646f6d6e657373010004800000000000000000000000000000000000000000000000000000000000000000045c204e6578742065706f63682072616e646f6d6e6573732e3c4e657874417574686f7269746965730100b50504000460204e6578742065706f636820617574686f7269746965732e305365676d656e74496e6465780100101000000000247c2052616e646f6d6e65737320756e64657220636f6e737472756374696f6e2e00f4205765206d616b6520612074726164656f6666206265747765656e2073746f7261676520616363657373657320616e64206c697374206c656e6774682e01012057652073746f72652074686520756e6465722d636f6e737472756374696f6e2072616e646f6d6e65737320696e207365676d656e7473206f6620757020746f942060554e4445525f434f4e535452554354494f4e5f5345474d454e545f4c454e475448602e00ec204f6e63652061207365676d656e7420726561636865732074686973206c656e6774682c20776520626567696e20746865206e657874206f6e652e090120576520726573657420616c6c207365676d656e747320616e642072657475726e20746f206030602061742074686520626567696e6e696e67206f662065766572791c2065706f63682e44556e646572436f6e737472756374696f6e0101040510c10504000415012054574f582d4e4f54453a20605365676d656e74496e6465786020697320616e20696e6372656173696e6720696e74656765722c20736f2074686973206973206f6b61792e2c496e697469616c697a65640000c90504000801012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e292077686963682069732060536f6d65601d01206966207065722d626c6f636b20696e697469616c697a6174696f6e2068617320616c7265616479206265656e2063616c6c656420666f722063757272656e7420626c6f636b2e4c417574686f7256726652616e646f6d6e6573730100c90504001015012054686973206669656c642073686f756c6420616c7761797320626520706f70756c6174656420647572696e6720626c6f636b2070726f63657373696e6720756e6c6573731901207365636f6e6461727920706c61696e20736c6f74732061726520656e61626c65642028776869636820646f6e277420636f6e7461696e206120565246206f7574707574292e0051012049742069732073657420696e20606f6e5f696e697469616c697a65602c206265666f72652069742077696c6c20636f6e7461696e207468652076616c75652066726f6d20746865206c61737420626c6f636b2e2845706f63685374617274010074200000000000000000145d012054686520626c6f636b206e756d62657273207768656e20746865206c61737420616e642063757272656e742065706f6368206861766520737461727465642c20726573706563746976656c7920604e2d316020616e641420604e602e4901204e4f54453a20576520747261636b207468697320697320696e206f7264657220746f20616e6e6f746174652074686520626c6f636b206e756d626572207768656e206120676976656e20706f6f6c206f66590120656e74726f7079207761732066697865642028692e652e20697420776173206b6e6f776e20746f20636861696e206f6273657276657273292e2053696e63652065706f6368732061726520646566696e656420696e590120736c6f74732c207768696368206d617920626520736b69707065642c2074686520626c6f636b206e756d62657273206d6179206e6f74206c696e6520757020776974682074686520736c6f74206e756d626572732e204c6174656e657373010010100000000014d820486f77206c617465207468652063757272656e7420626c6f636b20697320636f6d706172656420746f2069747320706172656e742e001501205468697320656e74727920697320706f70756c617465642061732070617274206f6620626c6f636b20657865637574696f6e20616e6420697320636c65616e65642075701101206f6e20626c6f636b2066696e616c697a6174696f6e2e205175657279696e6720746869732073746f7261676520656e747279206f757473696465206f6620626c6f636bb020657865637574696f6e20636f6e746578742073686f756c6420616c77617973207969656c64207a65726f2e2c45706f6368436f6e6669670000cd0504000861012054686520636f6e66696775726174696f6e20666f72207468652063757272656e742065706f63682e2053686f756c64206e6576657220626520604e6f6e656020617320697420697320696e697469616c697a656420696e242067656e657369732e3c4e65787445706f6368436f6e6669670000cd050400082d012054686520636f6e66696775726174696f6e20666f7220746865206e6578742065706f63682c20604e6f6e65602069662074686520636f6e6669672077696c6c206e6f74206368616e6765e82028796f752063616e2066616c6c6261636b20746f206045706f6368436f6e6669676020696e737465616420696e20746861742063617365292e011502000c3445706f63684475726174696f6e202060090000000000000cec2054686520616d6f756e74206f662074696d652c20696e20736c6f74732c207468617420656163682065706f63682073686f756c64206c6173742e1901204e4f54453a2043757272656e746c79206974206973206e6f7420706f737369626c6520746f206368616e6765207468652065706f6368206475726174696f6e20616674657221012074686520636861696e2068617320737461727465642e20417474656d7074696e6720746f20646f20736f2077696c6c20627269636b20626c6f636b2070726f64756374696f6e2e444578706563746564426c6f636b54696d652020701700000000000014050120546865206578706563746564206176657261676520626c6f636b2074696d6520617420776869636820424142452073686f756c64206265206372656174696e67110120626c6f636b732e2053696e636520424142452069732070726f626162696c6973746963206974206973206e6f74207472697669616c20746f20666967757265206f75740501207768617420746865206578706563746564206176657261676520626c6f636b2074696d652073686f756c64206265206261736564206f6e2074686520736c6f740901206475726174696f6e20616e642074686520736563757269747920706172616d657465722060636020287768657265206031202d20636020726570726573656e7473a0207468652070726f626162696c697479206f66206120736c6f74206265696e6720656d707479292e384d6178417574686f7269746965731010a08601000488204d6178206e756d626572206f6620617574686f72697469657320616c6c6f77656401d105022454696d657374616d70012454696d657374616d70080c4e6f7701002020000000000000000004902043757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e244469645570646174650100e8040004b420446964207468652074696d657374616d7020676574207570646174656420696e207468697320626c6f636b3f013d020004344d696e696d756d506572696f642020b80b000000000000104d0120546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e204265776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a5d0120706572696f6420746861742074686520626c6f636b2070726f64756374696f6e206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c5d012067656e6572616c6c7920776f726b2077697468207468697320746f2064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20652e672e20466f7220417572612c2069742077696c6c206265a020646f75626c65207468697320706572696f64206f6e2064656661756c742073657474696e67732e00031c496e6469636573011c496e646963657304204163636f756e74730001040210d5050400048820546865206c6f6f6b75702066726f6d20696e64657820746f206163636f756e742e0145020184041c4465706f736974184000e8764817000000000000000000000004ac20546865206465706f736974206e656564656420666f7220726573657276696e6720616e20696e6465782e01d905042042616c616e636573012042616c616e6365731434546f74616c49737375616e6365010018400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e1c4163636f756e740101040200140101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c6c205468652062616c616e6365206f6620616e206163636f756e742e004101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b730101040200dd05040008b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e2052657365727665730101040200ed05040004a4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e3853746f7261676556657273696f6e0100f90504000c7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e00a020546869732069732073657420746f2076322e302e3020666f72206e6577206e6574776f726b732e01490201880c484578697374656e7469616c4465706f736974184000e40b5402000000000000000000000004d420546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d61784c6f636b7310103200000008f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e2c4d61785265736572766573101032000000040d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e01fd0505485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c6965720100010640000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e0100050604000000000c485472616e73616374696f6e42797465466565184040420f00000000000000000000000000040d01205468652066656520746f206265207061696420666f72206d616b696e672061207472616e73616374696f6e3b20746865207065722d6279746520706f7274696f6e2e604f7065726174696f6e616c4665654d756c7469706c696572080405545901204120666565206d756c6974706c69657220666f7220604f7065726174696f6e616c602065787472696e7369637320746f20636f6d7075746520227669727475616c207469702220746f20626f6f73742074686569722c20607072696f7269747960004d0120546869732076616c7565206973206d756c7469706c656420627920746865206066696e616c5f6665656020746f206f627461696e206120227669727475616c20746970222074686174206973206c61746572f420616464656420746f20612074697020636f6d706f6e656e7420696e20726567756c617220607072696f72697479602063616c63756c6174696f6e732e4d01204974206d65616e732074686174206120604e6f726d616c60207472616e73616374696f6e2063616e2066726f6e742d72756e20612073696d696c61726c792d73697a656420604f7065726174696f6e616c6041012065787472696e736963202877697468206e6f20746970292c20627920696e636c7564696e672061207469702076616c75652067726561746572207468616e20746865207669727475616c207469702e003c20606060727573742c69676e6f726540202f2f20466f7220604e6f726d616c608c206c6574207072696f72697479203d207072696f726974795f63616c6328746970293b0054202f2f20466f7220604f7065726174696f6e616c601101206c6574207669727475616c5f746970203d2028696e636c7573696f6e5f666565202b2074697029202a204f7065726174696f6e616c4665654d756c7469706c6965723bc4206c6574207072696f72697479203d207072696f726974795f63616c6328746970202b207669727475616c5f746970293b1020606060005101204e6f746520746861742073696e636520776520757365206066696e616c5f6665656020746865206d756c7469706c696572206170706c69657320616c736f20746f2074686520726567756c61722060746970605d012073656e74207769746820746865207472616e73616374696f6e2e20536f2c206e6f74206f6e6c7920646f657320746865207472616e73616374696f6e206765742061207072696f726974792062756d702062617365646101206f6e207468652060696e636c7573696f6e5f666565602c2062757420776520616c736f20616d706c6966792074686520696d70616374206f662074697073206170706c69656420746f20604f7065726174696f6e616c6038207472616e73616374696f6e732e2c576569676874546f46656509065c040000000000000000000000000000000000b4c4040001040d012054686520706f6c796e6f6d69616c2074686174206973206170706c69656420696e206f7264657220746f20646572697665206665652066726f6d207765696768742e002028417574686f72736869700128417574686f72736869700c18556e636c6573010011060400041c20556e636c657318417574686f720000000400046420417574686f72206f662063757272656e7420626c6f636b2e30446964536574556e636c65730100e8040004bc205768657468657220756e636c6573207765726520616c72656164792073657420696e207468697320626c6f636b2e015502000440556e636c6547656e65726174696f6e731010000000000ccc20546865206e756d626572206f6620626c6f636b73206261636b2077652073686f756c642061636365707420756e636c65732ee42054686973206d65616e7320746861742077652077696c6c206465616c207769746820756e636c652d706172656e7473207468617420617265942060556e636c6547656e65726174696f6e73202b203160206265666f726520606e6f77602e011906061c5374616b696e67011c5374616b696e679430486973746f7279446570746801001010540000001c8c204e756d626572206f66206572617320746f206b65657020696e20686973746f72792e00390120496e666f726d6174696f6e206973206b65707420666f72206572617320696e20605b63757272656e745f657261202d20686973746f72795f64657074683b2063757272656e745f6572615d602e006101204d757374206265206d6f7265207468616e20746865206e756d626572206f6620657261732064656c617965642062792073657373696f6e206f74686572776973652e20492e652e2061637469766520657261206d757374390120616c7761797320626520696e20686973746f72792e20492e652e20606163746976655f657261203e2063757272656e745f657261202d20686973746f72795f646570746860206d757374206265302067756172616e746565642e3856616c696461746f72436f756e74010010100000000004a82054686520696465616c206e756d626572206f66207374616b696e67207061727469636970616e74732e544d696e696d756d56616c696461746f72436f756e740100101000000000044101204d696e696d756d206e756d626572206f66207374616b696e67207061727469636970616e7473206265666f726520656d657267656e637920636f6e646974696f6e732061726520696d706f7365642e34496e76756c6e657261626c65730100dc04000c590120416e792076616c696461746f72732074686174206d6179206e6576657220626520736c6173686564206f7220666f726369626c79206b69636b65642e20497427732061205665632073696e636520746865792772654d01206561737920746f20696e697469616c697a6520616e642074686520706572666f726d616e636520686974206973206d696e696d616c2028776520657870656374206e6f206d6f7265207468616e20666f7572ac20696e76756c6e657261626c65732920616e64207265737472696374656420746f20746573746e6574732e18426f6e6465640001040500000400040101204d61702066726f6d20616c6c206c6f636b65642022737461736822206163636f756e747320746f2074686520636f6e74726f6c6c6572206163636f756e742e404d696e4e6f6d696e61746f72426f6e64010018400000000000000000000000000000000004210120546865206d696e696d756d2061637469766520626f6e6420746f206265636f6d6520616e64206d61696e7461696e2074686520726f6c65206f662061206e6f6d696e61746f722e404d696e56616c696461746f72426f6e64010018400000000000000000000000000000000004210120546865206d696e696d756d2061637469766520626f6e6420746f206265636f6d6520616e64206d61696e7461696e2074686520726f6c65206f6620612076616c696461746f722e184c656467657200010402001d060400044501204d61702066726f6d20616c6c2028756e6c6f636b6564292022636f6e74726f6c6c657222206163636f756e747320746f2074686520696e666f20726567617264696e6720746865207374616b696e672e14506179656501010405006102040004e42057686572652074686520726577617264207061796d656e742073686f756c64206265206d6164652e204b657965642062792073746173682e2856616c696461746f7273010104050065020800000c450120546865206d61702066726f6d202877616e6e616265292076616c696461746f72207374617368206b657920746f2074686520707265666572656e636573206f6620746861742076616c696461746f722e004901205768656e207570646174696e6720746869732073746f72616765206974656d2c20796f75206d75737420616c736f20757064617465207468652060436f756e746572466f7256616c696461746f7273602e50436f756e746572466f7256616c696461746f72730100101000000000042101204120747261636b657220746f206b65657020636f756e74206f6620746865206e756d626572206f66206974656d7320696e20746865206056616c696461746f727360206d61702e484d617856616c696461746f7273436f756e7400001004000c310120546865206d6178696d756d2076616c696461746f7220636f756e74206265666f72652077652073746f7020616c6c6f77696e67206e65772076616c696461746f727320746f206a6f696e2e00d0205768656e20746869732076616c7565206973206e6f74207365742c206e6f206c696d6974732061726520656e666f726365642e284e6f6d696e61746f72730001040500290604000c650120546865206d61702066726f6d206e6f6d696e61746f72207374617368206b657920746f2074686520736574206f66207374617368206b657973206f6620616c6c2076616c696461746f727320746f206e6f6d696e6174652e004901205768656e207570646174696e6720746869732073746f72616765206974656d2c20796f75206d75737420616c736f20757064617465207468652060436f756e746572466f724e6f6d696e61746f7273602e50436f756e746572466f724e6f6d696e61746f72730100101000000000042101204120747261636b657220746f206b65657020636f756e74206f6620746865206e756d626572206f66206974656d7320696e2074686520604e6f6d696e61746f727360206d61702e484d61784e6f6d696e61746f7273436f756e7400001004000c310120546865206d6178696d756d206e6f6d696e61746f7220636f756e74206265666f72652077652073746f7020616c6c6f77696e67206e65772076616c696461746f727320746f206a6f696e2e00d0205768656e20746869732076616c7565206973206e6f74207365742c206e6f206c696d6974732061726520656e666f726365642e2843757272656e744572610000100400105c205468652063757272656e742065726120696e6465782e006501205468697320697320746865206c617465737420706c616e6e6564206572612c20646570656e64696e67206f6e20686f77207468652053657373696f6e2070616c6c657420717565756573207468652076616c696461746f7280207365742c206974206d6967687420626520616374697665206f72206e6f742e2441637469766545726100002d06040010d820546865206163746976652065726120696e666f726d6174696f6e2c20697420686f6c647320696e64657820616e642073746172742e0059012054686520616374697665206572612069732074686520657261206265696e672063757272656e746c792072657761726465642e2056616c696461746f7220736574206f66207468697320657261206d757374206265ac20657175616c20746f205b6053657373696f6e496e746572666163653a3a76616c696461746f7273605d2e5445726173537461727453657373696f6e496e6465780001040510100400103101205468652073657373696f6e20696e646578206174207768696368207468652065726120737461727420666f7220746865206c6173742060484953544f52595f44455054486020657261732e006101204e6f74653a205468697320747261636b7320746865207374617274696e672073657373696f6e2028692e652e2073657373696f6e20696e646578207768656e20657261207374617274206265696e672061637469766529f020666f7220746865206572617320696e20605b43757272656e74457261202d20484953544f52595f44455054482c2043757272656e744572615d602e2c457261735374616b65727301010805053106c80c0000001878204578706f73757265206f662076616c696461746f72206174206572612e0061012054686973206973206b65796564206669727374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00a82049732069742072656d6f7665642061667465722060484953544f52595f44455054486020657261732e4101204966207374616b657273206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e20656d707479206578706f737572652069732072657475726e65642e48457261735374616b657273436c697070656401010805053106c80c0000002c9820436c6970706564204578706f73757265206f662076616c696461746f72206174206572612e00590120546869732069732073696d696c617220746f205b60457261735374616b657273605d20627574206e756d626572206f66206e6f6d696e61746f7273206578706f736564206973207265647563656420746f20746865dc2060543a3a4d61784e6f6d696e61746f72526577617264656450657256616c696461746f72602062696767657374207374616b6572732e1d0120284e6f74653a20746865206669656c642060746f74616c6020616e6420606f776e60206f6620746865206578706f737572652072656d61696e7320756e6368616e676564292ef42054686973206973207573656420746f206c696d69742074686520692f6f20636f737420666f7220746865206e6f6d696e61746f72207061796f75742e005d012054686973206973206b657965642066697374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00a82049732069742072656d6f7665642061667465722060484953544f52595f44455054486020657261732e4101204966207374616b657273206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e20656d707479206578706f737572652069732072657475726e65642e484572617356616c696461746f7250726566730101080505310665020800001411012053696d696c617220746f2060457261735374616b657273602c207468697320686f6c64732074686520707265666572656e636573206f662076616c696461746f72732e0061012054686973206973206b65796564206669727374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00a82049732069742072656d6f7665642061667465722060484953544f52595f44455054486020657261732e4c4572617356616c696461746f7252657761726400010405101804000c09012054686520746f74616c2076616c696461746f7220657261207061796f757420666f7220746865206c6173742060484953544f52595f44455054486020657261732e0021012045726173207468617420686176656e27742066696e697368656420796574206f7220686173206265656e2072656d6f76656420646f65736e27742068617665207265776172642e4045726173526577617264506f696e74730101040510350614000000000008ac205265776172647320666f7220746865206c6173742060484953544f52595f44455054486020657261732e250120496620726577617264206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e2030207265776172642069732072657475726e65642e3845726173546f74616c5374616b65010104051018400000000000000000000000000000000008ec2054686520746f74616c20616d6f756e74207374616b656420666f7220746865206c6173742060484953544f52595f44455054486020657261732e1d0120496620746f74616c206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e2030207374616b652069732072657475726e65642e20466f7263654572610100450604000454204d6f6465206f662065726120666f7263696e672e4c536c6173685265776172644672616374696f6e0100b90110000000000cf8205468652070657263656e74616765206f662074686520736c617368207468617420697320646973747269627574656420746f207265706f72746572732e00e4205468652072657374206f662074686520736c61736865642076616c75652069732068616e646c6564206279207468652060536c617368602e4c43616e63656c6564536c6173685061796f757401001840000000000000000000000000000000000815012054686520616d6f756e74206f662063757272656e637920676976656e20746f207265706f7274657273206f66206120736c617368206576656e7420776869636820776173ec2063616e63656c65642062792065787472616f7264696e6172792063697263756d7374616e6365732028652e672e20676f7665726e616e6365292e40556e6170706c696564536c617368657301010405104906040004c420416c6c20756e6170706c69656420736c61736865732074686174206172652071756575656420666f72206c617465722e28426f6e646564457261730100a50104001025012041206d617070696e672066726f6d207374696c6c2d626f6e646564206572617320746f207468652066697273742073657373696f6e20696e646578206f662074686174206572612e00c8204d75737420636f6e7461696e7320696e666f726d6174696f6e20666f72206572617320666f72207468652072616e67653abc20605b6163746976655f657261202d20626f756e64696e675f6475726174696f6e3b206163746976655f6572615d604c56616c696461746f72536c617368496e457261000108050531065106040008450120416c6c20736c617368696e67206576656e7473206f6e2076616c696461746f72732c206d61707065642062792065726120746f20746865206869676865737420736c6173682070726f706f7274696f6e7020616e6420736c6173682076616c7565206f6620746865206572612e4c4e6f6d696e61746f72536c617368496e4572610001080505310618040004610120416c6c20736c617368696e67206576656e7473206f6e206e6f6d696e61746f72732c206d61707065642062792065726120746f20746865206869676865737420736c6173682076616c7565206f6620746865206572612e34536c617368696e675370616e73000104050055060400048c20536c617368696e67207370616e7320666f72207374617368206163636f756e74732e245370616e536c6173680101040541065906800000000000000000000000000000000000000000000000000000000000000000083d01205265636f72647320696e666f726d6174696f6e2061626f757420746865206d6178696d756d20736c617368206f6620612073746173682077697468696e206120736c617368696e67207370616e2cb82061732077656c6c20617320686f77206d7563682072657761726420686173206265656e2070616964206f75742e584561726c69657374556e6170706c696564536c617368000010040004fc20546865206561726c696573742065726120666f72207768696368207765206861766520612070656e64696e672c20756e6170706c69656420736c6173682e5443757272656e74506c616e6e656453657373696f6e01001010000000000ce820546865206c61737420706c616e6e65642073657373696f6e207363686564756c6564206279207468652073657373696f6e2070616c6c65742e0071012054686973206973206261736963616c6c7920696e2073796e632077697468207468652063616c6c20746f205b6070616c6c65745f73657373696f6e3a3a53657373696f6e4d616e616765723a3a6e65775f73657373696f6e605d2e3853746f7261676556657273696f6e01005d06040710cc2054727565206966206e6574776f726b20686173206265656e20757067726164656420746f20746869732076657273696f6e2e7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e00a020546869732069732073657420746f2076372e302e3020666f72206e6577206e6574776f726b732e384368696c6c5468726573686f6c640000710204000c510120546865207468726573686f6c6420666f72207768656e2075736572732063616e2073746172742063616c6c696e6720606368696c6c5f6f746865726020666f72206f746865722076616c696461746f7273202f5901206e6f6d696e61746f72732e20546865207468726573686f6c6420697320636f6d706172656420746f207468652061637475616c206e756d626572206f662076616c696461746f7273202f206e6f6d696e61746f72732901202860436f756e74466f722a602920696e207468652073797374656d20636f6d706172656420746f2074686520636f6e66696775726564206d61782028604d61782a436f756e7460292e015d020190143853657373696f6e735065724572611010060000000470204e756d626572206f662073657373696f6e7320706572206572612e3c426f6e64696e674475726174696f6e10101c00000004e4204e756d626572206f6620657261732074686174207374616b65642066756e6473206d7573742072656d61696e20626f6e64656420666f722e48536c61736844656665724475726174696f6e10101b000000100101204e756d626572206f662065726173207468617420736c6173686573206172652064656665727265642062792c20616674657220636f6d7075746174696f6e2e000d0120546869732073686f756c64206265206c657373207468616e2074686520626f6e64696e67206475726174696f6e2e2053657420746f203020696620736c617368657315012073686f756c64206265206170706c69656420696d6d6564696174656c792c20776974686f7574206f70706f7274756e69747920666f7220696e74657276656e74696f6e2e804d61784e6f6d696e61746f72526577617264656450657256616c696461746f7210100001000010f820546865206d6178696d756d206e756d626572206f66206e6f6d696e61746f727320726577617264656420666f7220656163682076616c696461746f722e00510120466f7220656163682076616c696461746f72206f6e6c79207468652060244d61784e6f6d696e61746f72526577617264656450657256616c696461746f72602062696767657374207374616b6572732063616e390120636c61696d207468656972207265776172642e2054686973207573656420746f206c696d69742074686520692f6f20636f737420666f7220746865206e6f6d696e61746f72207061796f75742e384d61784e6f6d696e6174696f6e731010100000000001610607204f6666656e63657301204f6666656e6365730c1c5265706f72747300010405246506040004490120546865207072696d61727920737472756374757265207468617420686f6c647320616c6c206f6666656e6365207265636f726473206b65796564206279207265706f7274206964656e746966696572732e58436f6e63757272656e745265706f727473496e64657801010805056906a1010400042901204120766563746f72206f66207265706f727473206f66207468652073616d65206b696e6420746861742068617070656e6564206174207468652073616d652074696d6520736c6f742e485265706f72747342794b696e64496e646578010104059828040018110120456e756d65726174657320616c6c207265706f727473206f662061206b696e6420616c6f6e672077697468207468652074696d6520746865792068617070656e65642e00bc20416c6c207265706f7274732061726520736f72746564206279207468652074696d65206f66206f6666656e63652e004901204e6f74652074686174207468652061637475616c2074797065206f662074686973206d617070696e6720697320605665633c75383e602c207468697320697320626563617573652076616c756573206f66690120646966666572656e7420747970657320617265206e6f7420737570706f7274656420617420746865206d6f6d656e7420736f2077652061726520646f696e6720746865206d616e75616c2073657269616c697a6174696f6e2e00019400000828486973746f726963616c0000000000211c53657373696f6e011c53657373696f6e1c2856616c696461746f72730100dc0400047c205468652063757272656e7420736574206f662076616c696461746f72732e3043757272656e74496e646578010010100000000004782043757272656e7420696e646578206f66207468652073657373696f6e2e345175657565644368616e6765640100e8040008390120547275652069662074686520756e6465726c79696e672065636f6e6f6d6963206964656e746974696573206f7220776569676874696e6720626568696e64207468652076616c696461746f7273a420686173206368616e67656420696e20746865207175657565642076616c696461746f72207365742e285175657565644b65797301006d060400083d012054686520717565756564206b65797320666f7220746865206e6578742073657373696f6e2e205768656e20746865206e6578742073657373696f6e20626567696e732c207468657365206b657973e02077696c6c206265207573656420746f2064657465726d696e65207468652076616c696461746f7227732073657373696f6e206b6579732e4844697361626c656456616c696461746f72730100750204000c8020496e6469636573206f662064697361626c65642076616c696461746f72732e003501205468652073657420697320636c6561726564207768656e20606f6e5f73657373696f6e5f656e64696e67602072657475726e732061206e657720736574206f66206964656e7469746965732e204e6578744b657973000104050085020400049c20546865206e6578742073657373696f6e206b65797320666f7220612076616c696461746f722e204b65794f776e657200010405750600040004090120546865206f776e6572206f662061206b65792e20546865206b65792069732074686520604b657954797065496460202b2074686520656e636f646564206b65792e018102019c00017d06091c4772616e647061011c4772616e647061181453746174650100810604000490205374617465206f66207468652063757272656e7420617574686f72697479207365742e3450656e64696e674368616e676500008506040004c42050656e64696e67206368616e67653a20287369676e616c65642061742c207363686564756c6564206368616e6765292e284e657874466f72636564000010040004bc206e65787420626c6f636b206e756d6265722077686572652077652063616e20666f7263652061206368616e67652e1c5374616c6c65640000740400049020607472756560206966207765206172652063757272656e746c79207374616c6c65642e3043757272656e745365744964010020200000000000000000085d0120546865206e756d626572206f66206368616e6765732028626f746820696e207465726d73206f66206b65797320616e6420756e6465726c79696e672065636f6e6f6d696320726573706f6e736962696c697469657329c420696e20746865202273657422206f66204772616e6470612076616c696461746f72732066726f6d2067656e657369732e30536574496453657373696f6e00010405201004001059012041206d617070696e672066726f6d206772616e6470612073657420494420746f2074686520696e646578206f6620746865202a6d6f737420726563656e742a2073657373696f6e20666f722077686963682069747368206d656d62657273207765726520726573706f6e7369626c652e00b82054574f582d4e4f54453a2060536574496460206973206e6f7420756e646572207573657220636f6e74726f6c2e01950201a004384d6178417574686f7269746965731010a0860100045c204d617820417574686f72697469657320696e20757365018d060b20496d4f6e6c696e650120496d4f6e6c696e651038486561727462656174416674657201001010000000002c1d012054686520626c6f636b206e756d6265722061667465722077686963682069742773206f6b20746f2073656e64206865617274626561747320696e207468652063757272656e74242073657373696f6e2e0025012041742074686520626567696e6e696e67206f6620656163682073657373696f6e20776520736574207468697320746f20612076616c756520746861742073686f756c642066616c6c350120726f7567686c7920696e20746865206d6964646c65206f66207468652073657373696f6e206475726174696f6e2e20546865206964656120697320746f206669727374207761697420666f721901207468652076616c696461746f727320746f2070726f64756365206120626c6f636b20696e207468652063757272656e742073657373696f6e2c20736f207468617420746865a820686561727462656174206c61746572206f6e2077696c6c206e6f74206265206e65636573736172792e00390120546869732076616c75652077696c6c206f6e6c79206265207573656420617320612066616c6c6261636b206966207765206661696c20746f2067657420612070726f7065722073657373696f6e2d012070726f677265737320657374696d6174652066726f6d20604e65787453657373696f6e526f746174696f6e602c2061732074686f736520657374696d617465732073686f756c642062650101206d6f7265206163637572617465207468656e207468652076616c75652077652063616c63756c61746520666f7220604865617274626561744166746572602e104b65797301009106040004d0205468652063757272656e7420736574206f66206b6579732074686174206d61792069737375652061206865617274626561742e4852656365697665644865617274626561747300010805057499060400083d0120466f7220656163682073657373696f6e20696e6465782c207765206b6565702061206d617070696e67206f66202753657373696f6e496e6465786020616e64206041757468496e6465786020746fb02060577261707065724f70617175653c426f756e6465644f70617175654e6574776f726b53746174653e602e38417574686f726564426c6f636b730101080505310610100000000008150120466f7220656163682073657373696f6e20696e6465782c207765206b6565702061206d617070696e67206f66206056616c696461746f7249643c543e6020746f20746865c8206e756d626572206f6620626c6f636b7320617574686f7265642062792074686520676976656e20617574686f726974792e01c10201b40440556e7369676e65645072696f726974792020ffffffffffffffff10f0204120636f6e66696775726174696f6e20666f722062617365207072696f72697479206f6620756e7369676e6564207472616e73616374696f6e732e0015012054686973206973206578706f73656420736f20746861742069742063616e2062652074756e656420666f7220706172746963756c61722072756e74696d652c207768656eb4206d756c7469706c652070616c6c6574732073656e6420756e7369676e6564207472616e73616374696f6e732e01ad060c48417574686f72697479446973636f7665727900000000000d2444656d6f6372616379012444656d6f6372616379383c5075626c696350726f70436f756e74010010100000000004f420546865206e756d626572206f6620287075626c6963292070726f706f73616c7320746861742068617665206265656e206d61646520736f206661722e2c5075626c696350726f70730100b106040004210120546865207075626c69632070726f706f73616c732e20556e736f727465642e20546865207365636f6e64206974656d206973207468652070726f706f73616c277320686173682e244465706f7369744f660001040510b90604000c842054686f73652077686f2068617665206c6f636b65642061206465706f7369742e00d82054574f582d4e4f54453a20536166652c20617320696e6372656173696e6720696e7465676572206b6579732061726520736166652e24507265696d616765730001040624bd060400086101204d6170206f662068617368657320746f207468652070726f706f73616c20707265696d6167652c20616c6f6e6720776974682077686f207265676973746572656420697420616e64207468656972206465706f7369742ee42054686520626c6f636b206e756d6265722069732074686520626c6f636b20617420776869636820697420776173206465706f73697465642e3c5265666572656e64756d436f756e74010010100000000004310120546865206e6578742066726565207265666572656e64756d20696e6465782c20616b6120746865206e756d626572206f66207265666572656e6461207374617274656420736f206661722e344c6f77657374556e62616b6564010010100000000008250120546865206c6f77657374207265666572656e64756d20696e64657820726570726573656e74696e6720616e20756e62616b6564207265666572656e64756d2e20457175616c20746fdc20605265666572656e64756d436f756e74602069662074686572652069736e2774206120756e62616b6564207265666572656e64756d2e405265666572656e64756d496e666f4f660001040510c10604000cb420496e666f726d6174696f6e20636f6e6365726e696e6720616e7920676976656e207265666572656e64756d2e0009012054574f582d4e4f54453a205341464520617320696e646578657320617265206e6f7420756e64657220616e2061747461636b6572e280997320636f6e74726f6c2e20566f74696e674f660101040500cd06d8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000105d0120416c6c20766f74657320666f72206120706172746963756c617220766f7465722e2057652073746f7265207468652062616c616e636520666f7220746865206e756d626572206f6620766f74657320746861742077655d012068617665207265636f726465642e20546865207365636f6e64206974656d2069732074686520746f74616c20616d6f756e74206f662064656c65676174696f6e732c20746861742077696c6c2062652061646465642e00e82054574f582d4e4f54453a205341464520617320604163636f756e7449646073206172652063727970746f2068617368657320616e797761792e144c6f636b730001040500100400105d01204163636f756e747320666f7220776869636820746865726520617265206c6f636b7320696e20616374696f6e207768696368206d61792062652072656d6f76656420617420736f6d6520706f696e7420696e207468655101206675747572652e205468652076616c75652069732074686520626c6f636b206e756d62657220617420776869636820746865206c6f636b206578706972657320616e64206d61792062652072656d6f7665642e00c02054574f582d4e4f54453a204f4b20e2809520604163636f756e7449646020697320612073656375726520686173682e544c6173745461626c656457617345787465726e616c0100e80400085901205472756520696620746865206c617374207265666572656e64756d207461626c656420776173207375626d69747465642065787465726e616c6c792e2046616c7365206966206974207761732061207075626c6963282070726f706f73616c2e304e65787445787465726e616c0000e106040010590120546865207265666572656e64756d20746f206265207461626c6564207768656e6576657220697420776f756c642062652076616c696420746f207461626c6520616e2065787465726e616c2070726f706f73616c2e550120546869732068617070656e73207768656e2061207265666572656e64756d206e6565647320746f206265207461626c656420616e64206f6e65206f662074776f20636f6e646974696f6e7320617265206d65743aa4202d20604c6173745461626c656457617345787465726e616c60206973206066616c7365603b206f7268202d20605075626c696350726f70736020697320656d7074792e24426c61636b6c6973740001040624e50604000851012041207265636f7264206f662077686f207665746f656420776861742e204d6170732070726f706f73616c206861736820746f206120706f737369626c65206578697374656e7420626c6f636b206e756d626572e82028756e74696c207768656e206974206d6179206e6f742062652072657375626d69747465642920616e642077686f207665746f65642069742e3443616e63656c6c6174696f6e730101040624e80400042901205265636f7264206f6620616c6c2070726f706f73616c7320746861742068617665206265656e207375626a65637420746f20656d657267656e63792063616e63656c6c6174696f6e2e3853746f7261676556657273696f6e0000e90604000c7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e0098204e6577206e6574776f726b732073746172742077697468206c6173742076657273696f6e2e01dd0201d82c3c456e6163746d656e74506572696f6410100027060014e82054686520706572696f64206265747765656e20612070726f706f73616c206265696e6720617070726f76656420616e6420656e61637465642e0031012049742073686f756c642067656e6572616c6c792062652061206c6974746c65206d6f7265207468616e2074686520756e7374616b6520706572696f6420746f20656e737572652074686174510120766f74696e67207374616b657273206861766520616e206f70706f7274756e69747920746f2072656d6f7665207468656d73656c7665732066726f6d207468652073797374656d20696e207468652063617365b4207768657265207468657920617265206f6e20746865206c6f73696e672073696465206f66206120766f74652e304c61756e6368506572696f6410100027060004e420486f77206f6674656e2028696e20626c6f636b7329206e6577207075626c6963207265666572656e646120617265206c61756e636865642e30566f74696e67506572696f6410100027060004b820486f77206f6674656e2028696e20626c6f636b732920746f20636865636b20666f72206e657720766f7465732e44566f74654c6f636b696e67506572696f64101000270600109020546865206d696e696d756d20706572696f64206f6620766f7465206c6f636b696e672e0065012049742073686f756c64206265206e6f2073686f72746572207468616e20656e6163746d656e7420706572696f6420746f20656e73757265207468617420696e207468652063617365206f6620616e20617070726f76616c2c49012074686f7365207375636365737366756c20766f7465727320617265206c6f636b656420696e746f2074686520636f6e73657175656e636573207468617420746865697220766f74657320656e7461696c2e384d696e696d756d4465706f73697418400010a5d4e8000000000000000000000004350120546865206d696e696d756d20616d6f756e7420746f20626520757365642061732061206465706f73697420666f722061207075626c6963207265666572656e64756d2070726f706f73616c2e38496e7374616e74416c6c6f776564e804010c550120496e64696361746f7220666f72207768657468657220616e20656d657267656e6379206f726967696e206973206576656e20616c6c6f77656420746f2068617070656e2e20536f6d6520636861696e73206d617961012077616e7420746f207365742074686973207065726d616e656e746c7920746f206066616c7365602c206f7468657273206d61792077616e7420746f20636f6e646974696f6e206974206f6e207468696e67732073756368a020617320616e207570677261646520686176696e672068617070656e656420726563656e746c792e5446617374547261636b566f74696e67506572696f6410100807000004ec204d696e696d756d20766f74696e6720706572696f6420616c6c6f77656420666f72206120666173742d747261636b207265666572656e64756d2e34436f6f6c6f6666506572696f641010c089010004610120506572696f6420696e20626c6f636b7320776865726520616e2065787465726e616c2070726f706f73616c206d6179206e6f742062652072652d7375626d6974746564206166746572206265696e67207665746f65642e4c507265696d616765427974654465706f736974184000e1f5050000000000000000000000000429012054686520616d6f756e74206f662062616c616e63652074686174206d757374206265206465706f7369746564207065722062797465206f6620707265696d6167652073746f7265642e204d6178566f74657310106400000010b020546865206d6178696d756d206e756d626572206f6620766f74657320666f7220616e206163636f756e742e00d420416c736f207573656420746f20636f6d70757465207765696768742c20616e206f7665726c79206269672076616c75652063616e1501206c65616420746f2065787472696e7369632077697468207665727920626967207765696768743a20736565206064656c65676174656020666f7220696e7374616e63652e304d617850726f706f73616c73101064000000040d0120546865206d6178696d756d206e756d626572206f66207075626c69632070726f706f73616c7320746861742063616e20657869737420617420616e792074696d652e01ed060e1c436f756e63696c011c436f756e63696c182450726f706f73616c730100f106040004902054686520686173686573206f6620746865206163746976652070726f706f73616c732e2850726f706f73616c4f6600010406240902040004cc2041637475616c2070726f706f73616c20666f72206120676976656e20686173682c20696620697427732063757272656e742e18566f74696e670001040624f506040004b420566f746573206f6e206120676976656e2070726f706f73616c2c206966206974206973206f6e676f696e672e3450726f706f73616c436f756e74010010100000000004482050726f706f73616c7320736f206661722e1c4d656d626572730100dc0400043901205468652063757272656e74206d656d62657273206f662074686520636f6c6c6563746976652e20546869732069732073746f72656420736f7274656420286a7573742062792076616c7565292e145072696d65000000040004650120546865207072696d65206d656d62657220746861742068656c70732064657465726d696e65207468652064656661756c7420766f7465206265686176696f7220696e2063617365206f6620616273656e746174696f6e732e01ed0201e40001f9060f48546563686e6963616c436f6d6d69747465650148546563686e6963616c436f6d6d6974746565182450726f706f73616c730100fd06040004902054686520686173686573206f6620746865206163746976652070726f706f73616c732e2850726f706f73616c4f6600010406240902040004cc2041637475616c2070726f706f73616c20666f72206120676976656e20686173682c20696620697427732063757272656e742e18566f74696e670001040624f506040004b420566f746573206f6e206120676976656e2070726f706f73616c2c206966206974206973206f6e676f696e672e3450726f706f73616c436f756e74010010100000000004482050726f706f73616c7320736f206661722e1c4d656d626572730100dc0400043901205468652063757272656e74206d656d62657273206f662074686520636f6c6c6563746976652e20546869732069732073746f72656420736f7274656420286a7573742062792076616c7565292e145072696d65000000040004650120546865207072696d65206d656d62657220746861742068656c70732064657465726d696e65207468652064656661756c7420766f7465206265686176696f7220696e2063617365206f6620616273656e746174696f6e732e01f50201ec00010107104050687261676d656e456c656374696f6e014050687261676d656e456c656374696f6e141c4d656d626572730100050704000c74205468652063757272656e7420656c6563746564206d656d626572732e00b820496e76617269616e743a20416c7761797320736f72746564206261736564206f6e206163636f756e742069642e2452756e6e65727355700100050704001084205468652063757272656e742072657365727665642072756e6e6572732d75702e00590120496e76617269616e743a20416c7761797320736f72746564206261736564206f6e2072616e6b2028776f72736520746f2062657374292e2055706f6e2072656d6f76616c206f662061206d656d6265722c20746865bc206c6173742028692e652e205f626573745f292072756e6e65722d75702077696c6c206265207265706c616365642e2843616e646964617465730100f40400185901205468652070726573656e742063616e646964617465206c6973742e20412063757272656e74206d656d626572206f722072756e6e65722d75702063616e206e6576657220656e746572207468697320766563746f72d020616e6420697320616c7761797320696d706c696369746c7920617373756d656420746f20626520612063616e6469646174652e007c205365636f6e6420656c656d656e7420697320746865206465706f7369742e00b820496e76617269616e743a20416c7761797320736f72746564206261736564206f6e206163636f756e742069642e38456c656374696f6e526f756e647301001010000000000441012054686520746f74616c206e756d626572206f6620766f746520726f756e6473207468617420686176652068617070656e65642c206578636c7564696e6720746865207570636f6d696e67206f6e652e18566f74696e6701010405000d07840000000000000000000000000000000000000000000000000000000000000000000cb820566f74657320616e64206c6f636b6564207374616b65206f66206120706172746963756c617220766f7465722e00c42054574f582d4e4f54453a205341464520617320604163636f756e7449646020697320612063727970746f20686173682e01f90201f01c2050616c6c65744964f50120706872656c65637404d0204964656e74696669657220666f722074686520656c656374696f6e732d70687261676d656e2070616c6c65742773206c6f636b3443616e646964616379426f6e6418400010a5d4e8000000000000000000000004050120486f77206d7563682073686f756c64206265206c6f636b656420757020696e206f7264657220746f207375626d6974206f6e6527732063616e6469646163792e38566f74696e67426f6e64426173651840007013b72e000000000000000000000010942042617365206465706f736974206173736f636961746564207769746820766f74696e672e00550120546869732073686f756c642062652073656e7369626c79206869676820746f2065636f6e6f6d6963616c6c7920656e73757265207468652070616c6c65742063616e6e6f742062652061747461636b656420627994206372656174696e67206120676967616e746963206e756d626572206f6620766f7465732e40566f74696e67426f6e64466163746f72184000d012130000000000000000000000000411012054686520616d6f756e74206f6620626f6e642074686174206e65656420746f206265206c6f636b656420666f72206561636820766f746520283332206279746573292e38446573697265644d656d6265727310100d0000000470204e756d626572206f66206d656d6265727320746f20656c6563742e404465736972656452756e6e65727355701010140000000478204e756d626572206f662072756e6e6572735f757020746f206b6565702e305465726d4475726174696f6e1010c08901000c510120486f77206c6f6e6720656163682073656174206973206b6570742e205468697320646566696e657320746865206e65787420626c6f636b206e756d62657220617420776869636820616e20656c656374696f6e5d0120726f756e642077696c6c2068617070656e2e2049662073657420746f207a65726f2c206e6f20656c656374696f6e732061726520657665722074726967676572656420616e6420746865206d6f64756c652077696c6c5020626520696e2070617373697665206d6f64652e011107114c546563686e6963616c4d656d62657273686970014c546563686e6963616c4d656d62657273686970081c4d656d626572730100dc040004c8205468652063757272656e74206d656d626572736869702c2073746f72656420617320616e206f726465726564205665632e145072696d65000000040004a4205468652063757272656e74207072696d65206d656d6265722c206966206f6e65206578697374732e01010301fc0001150712205472656173757279012054726561737572790c3450726f706f73616c436f756e74010010100000000004a4204e756d626572206f662070726f706f73616c7320746861742068617665206265656e206d6164652e2450726f706f73616c73000104051019070400047c2050726f706f73616c7320746861742068617665206265656e206d6164652e24417070726f76616c7301001d07040004f82050726f706f73616c20696e646963657320746861742068617665206265656e20617070726f76656420627574206e6f742079657420617761726465642e010503010101183050726f706f73616c426f6e6421071050c30000085501204672616374696f6e206f6620612070726f706f73616c27732076616c756520746861742073686f756c6420626520626f6e64656420696e206f7264657220746f20706c616365207468652070726f706f73616c2e110120416e2061636365707465642070726f706f73616c2067657473207468657365206261636b2e20412072656a65637465642070726f706f73616c20646f6573206e6f742e4c50726f706f73616c426f6e644d696e696d756d18400010a5d4e80000000000000000000000044901204d696e696d756d20616d6f756e74206f662066756e647320746861742073686f756c6420626520706c6163656420696e2061206465706f73697420666f72206d616b696e6720612070726f706f73616c2e2c5370656e64506572696f64101000460500048820506572696f64206265747765656e2073756363657373697665207370656e64732e104275726e210710102700000411012050657263656e74616765206f662073706172652066756e64732028696620616e7929207468617420617265206275726e7420706572207370656e6420706572696f642e2050616c6c6574496425072070792f74727372790419012054686520747265617375727927732070616c6c65742069642c207573656420666f72206465726976696e672069747320736f7665726569676e206163636f756e742049442e304d6178417070726f76616c7310106400000004150120546865206d6178696d756d206e756d626572206f6620617070726f76616c7320746861742063616e207761697420696e20746865207370656e64696e672071756575652e0129071318436c61696d730118436c61696d731418436c61696d730001040609011804000014546f74616c0100184000000000000000000000000000000000001c56657374696e670001040609011903040010782056657374696e67207363686564756c6520666f72206120636c61696d2e0d012046697273742062616c616e63652069732074686520746f74616c20616d6f756e7420746861742073686f756c642062652068656c6420666f722076657374696e672ee4205365636f6e642062616c616e636520697320686f77206d7563682073686f756c6420626520756e6c6f636b65642070657220626c6f636b2ecc2054686520626c6f636b206e756d626572206973207768656e207468652076657374696e672073686f756c642073746172742e1c5369676e696e670001040609012103040004c0205468652073746174656d656e74206b696e642074686174206d757374206265207369676e65642c20696620616e792e24507265636c61696d73000104060009010400042d01205072652d636c61696d656420457468657265756d206163636f756e74732c20627920746865204163636f756e74204944207468617420746865792061726520636c61696d656420746f2e010903010501041850726566697828888450617920444f547320746f2074686520506f6c6b61646f74206163636f756e743a00012d07181c56657374696e67011c56657374696e67081c56657374696e6700010402003107040004d820496e666f726d6174696f6e20726567617264696e67207468652076657374696e67206f66206120676976656e206163636f756e742e3853746f7261676556657273696f6e0100390704000c7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e003101204e6577206e6574776f726b732073746172742077697468206c61746573742076657273696f6e2c2061732064657465726d696e6564206279207468652067656e65736973206275696c642e01250301110108444d696e5665737465645472616e73666572184000e40b5402000000000000000000000004e820546865206d696e696d756d20616d6f756e74207472616e7366657272656420746f2063616c6c20607665737465645f7472616e73666572602e4c4d617856657374696e675363686564756c657310101c00000000013d07191c5574696c69747900012d03011501044c626174636865645f63616c6c735f6c696d697410100dd2000004a820546865206c696d6974206f6e20746865206e756d626572206f6620626174636865642063616c6c732e0141071a204964656e7469747901204964656e7469747910284964656e746974794f660001040500450704000c210120496e666f726d6174696f6e20746861742069732070657274696e656e7420746f206964656e746966792074686520656e7469747920626568696e6420616e206163636f756e742e00c02054574f582d4e4f54453a204f4b20e2809520604163636f756e7449646020697320612073656375726520686173682e1c53757065724f660001040200c5030400086101205468652073757065722d6964656e74697479206f6620616e20616c7465726e6174697665202273756222206964656e7469747920746f676574686572207769746820697473206e616d652c2077697468696e2074686174510120636f6e746578742e20496620746865206163636f756e74206973206e6f7420736f6d65206f74686572206163636f756e742773207375622d6964656e746974792c207468656e206a75737420604e6f6e65602e18537562734f660101040500550744000000000000000000000000000000000014b820416c7465726e6174697665202273756222206964656e746974696573206f662074686973206163636f756e742e001d0120546865206669727374206974656d20697320746865206465706f7369742c20746865207365636f6e64206973206120766563746f72206f6620746865206163636f756e74732e00c02054574f582d4e4f54453a204f4b20e2809520604163636f756e7449646020697320612073656375726520686173682e285265676973747261727301005d070400104d012054686520736574206f6620726567697374726172732e204e6f7420657870656374656420746f206765742076657279206269672061732063616e206f6e6c79206265206164646564207468726f7567682061a8207370656369616c206f726967696e20286c696b656c79206120636f756e63696c206d6f74696f6e292e0029012054686520696e64657820696e746f20746869732063616e206265206361737420746f2060526567697374726172496e6465786020746f2067657420612076616c69642076616c75652e013503011901183042617369634465706f7369741840007db52a2f000000000000000000000004d42054686520616d6f756e742068656c64206f6e206465706f73697420666f7220612072656769737465726564206964656e74697479304669656c644465706f736974184000cd5627000000000000000000000000042d012054686520616d6f756e742068656c64206f6e206465706f73697420706572206164646974696f6e616c206669656c6420666f7220612072656769737465726564206964656e746974792e445375624163636f756e744465706f736974184080f884b02e00000000000000000000000c65012054686520616d6f756e742068656c64206f6e206465706f73697420666f7220612072656769737465726564207375626163636f756e742e20546869732073686f756c64206163636f756e7420666f7220746865206661637465012074686174206f6e652073746f72616765206974656d27732076616c75652077696c6c20696e637265617365206279207468652073697a65206f6620616e206163636f756e742049442c20616e642074686572652077696c6c350120626520616e6f746865722074726965206974656d2077686f73652076616c7565206973207468652073697a65206f6620616e206163636f756e7420494420706c75732033322062797465732e384d61785375624163636f756e7473101064000000040d0120546865206d6178696d756d206e756d626572206f66207375622d6163636f756e747320616c6c6f77656420706572206964656e746966696564206163636f756e742e4c4d61784164646974696f6e616c4669656c6473101064000000086501204d6178696d756d206e756d626572206f66206164646974696f6e616c206669656c64732074686174206d61792062652073746f72656420696e20616e2049442e204e656564656420746f20626f756e642074686520492f4fe020726571756972656420746f2061636365737320616e206964656e746974792c206275742063616e2062652070726574747920686967682e344d617852656769737472617273101014000000085101204d61786d696d756d206e756d626572206f66207265676973747261727320616c6c6f77656420696e207468652073797374656d2e204e656564656420746f20626f756e642074686520636f6d706c65786974797c206f662c20652e672e2c207570646174696e67206a756467656d656e74732e016d071c1450726f7879011450726f7879081c50726f78696573010104050071074400000000000000000000000000000000000845012054686520736574206f66206163636f756e742070726f786965732e204d61707320746865206163636f756e74207768696368206861732064656c65676174656420746f20746865206163636f756e7473210120776869636820617265206265696e672064656c65676174656420746f2c20746f67657468657220776974682074686520616d6f756e742068656c64206f6e206465706f7369742e34416e6e6f756e63656d656e74730101040500810744000000000000000000000000000000000004ac2054686520616e6e6f756e63656d656e7473206d616465206279207468652070726f787920286b6579292e01d503011d01184050726f78794465706f7369744261736518400084b2952e000000000000000000000010110120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e6720612070726f78792e00010120546869732069732068656c6420666f7220616e206164646974696f6e616c2073746f72616765206974656d2077686f73652076616c75652073697a652069732501206073697a656f662842616c616e6365296020627974657320616e642077686f7365206b65792073697a65206973206073697a656f66284163636f756e74496429602062797465732e4850726f78794465706f736974466163746f7218408066ab1300000000000000000000000014bc2054686520616d6f756e74206f662063757272656e6379206e6565646564207065722070726f78792061646465642e00350120546869732069732068656c6420666f7220616464696e6720333220627974657320706c757320616e20696e7374616e6365206f66206050726f78795479706560206d6f726520696e746f20616101207072652d6578697374696e672073746f726167652076616c75652e20546875732c207768656e20636f6e6669677572696e67206050726f78794465706f736974466163746f7260206f6e652073686f756c642074616b65f420696e746f206163636f756e7420603332202b2070726f78795f747970652e656e636f646528292e6c656e282960206279746573206f6620646174612e284d617850726f7869657310102000000004f020546865206d6178696d756d20616d6f756e74206f662070726f7869657320616c6c6f77656420666f7220612073696e676c65206163636f756e742e284d617850656e64696e6710102000000004450120546865206d6178696d756d20616d6f756e74206f662074696d652d64656c6179656420616e6e6f756e63656d656e747320746861742061726520616c6c6f77656420746f2062652070656e64696e672e5c416e6e6f756e63656d656e744465706f7369744261736518400084b2952e000000000000000000000010310120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e6720616e20616e6e6f756e63656d656e742e00490120546869732069732068656c64207768656e2061206e65772073746f72616765206974656d20686f6c64696e672061206042616c616e636560206973206372656174656420287479706963616c6c7920313620206279746573292e64416e6e6f756e63656d656e744465706f736974466163746f72184000cd562700000000000000000000000010d42054686520616d6f756e74206f662063757272656e6379206e65656465642070657220616e6e6f756e63656d656e74206d6164652e00590120546869732069732068656c6420666f7220616464696e6720616e20604163636f756e744964602c2060486173686020616e642060426c6f636b4e756d6265726020287479706963616c6c79203638206279746573298c20696e746f2061207072652d6578697374696e672073746f726167652076616c75652e0191071d204d756c746973696701204d756c746973696708244d756c746973696773000108050295079907040004942054686520736574206f66206f70656e206d756c7469736967206f7065726174696f6e732e1443616c6c7300010406049d0704000001dd030129010c2c4465706f736974426173651840008c61c52e000000000000000000000018590120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e672061206d756c746973696720657865637574696f6e206f7220746f842073746f726520612064697370617463682063616c6c20666f72206c617465722e00010120546869732069732068656c6420666f7220616e206164646974696f6e616c2073746f72616765206974656d2077686f73652076616c75652073697a652069733101206034202b2073697a656f662828426c6f636b4e756d6265722c2042616c616e63652c204163636f756e74496429296020627974657320616e642077686f7365206b65792073697a652069738020603332202b2073697a656f66284163636f756e74496429602062797465732e344465706f736974466163746f72184000d012130000000000000000000000000c55012054686520616d6f756e74206f662063757272656e6379206e65656465642070657220756e6974207468726573686f6c64207768656e206372656174696e672061206d756c746973696720657865637574696f6e2e00250120546869732069732068656c6420666f7220616464696e67203332206279746573206d6f726520696e746f2061207072652d6578697374696e672073746f726167652076616c75652e384d61785369676e61746f72696573250108640004ec20546865206d6178696d756d20616d6f756e74206f66207369676e61746f7269657320616c6c6f77656420696e20746865206d756c74697369672e01a1071e20426f756e746965730120426f756e74696573102c426f756e7479436f756e74010010100000000004c0204e756d626572206f6620626f756e74792070726f706f73616c7320746861742068617665206265656e206d6164652e20426f756e746965730001040510a5070400047820426f756e7469657320746861742068617665206265656e206d6164652e48426f756e74794465736372697074696f6e730001040510280400048020546865206465736372697074696f6e206f66206561636820626f756e74792e3c426f756e7479417070726f76616c7301007502040004ec20426f756e747920696e646963657320746861742068617665206265656e20617070726f76656420627574206e6f74207965742066756e6465642e01e5030131011c44426f756e74794465706f73697442617365184000e40b5402000000000000000000000004e82054686520616d6f756e742068656c64206f6e206465706f73697420666f7220706c6163696e67206120626f756e74792070726f706f73616c2e60426f756e74794465706f7369745061796f757444656c6179101000c20100045901205468652064656c617920706572696f6420666f72207768696368206120626f756e74792062656e6566696369617279206e65656420746f2077616974206265666f726520636c61696d20746865207061796f75742e48426f756e7479557064617465506572696f64101080c61300046c20426f756e7479206475726174696f6e20696e20626c6f636b732e50426f756e747943757261746f724465706f73697421071020a107000849012050657263656e74616765206f66207468652063757261746f722066656520746861742077696c6c20626520726573657276656420757066726f6e74206173206465706f73697420666f7220626f756e7479242063757261746f722e48426f756e747956616c75654d696e696d756d184000e876481700000000000000000000000470204d696e696d756d2076616c756520666f72206120626f756e74792e48446174614465706f73697450657242797465184000e1f5050000000000000000000000000461012054686520616d6f756e742068656c64206f6e206465706f7369742070657220627974652077697468696e2074686520746970207265706f727420726561736f6e206f7220626f756e7479206465736372697074696f6e2e4c4d6178696d756d526561736f6e4c656e6774681010004000000488204d6178696d756d2061636365707461626c6520726561736f6e206c656e6774682e01ad072210546970730110546970730810546970730001040524b10704000c650120546970734d6170207468617420617265206e6f742079657420636f6d706c657465642e204b65796564206279207468652068617368206f66206028726561736f6e2c2077686f29602066726f6d207468652076616c75652e3d012054686973206861732074686520696e73656375726520656e756d657261626c6520686173682066756e6374696f6e2073696e636520746865206b657920697473656c6620697320616c7265616479802067756172616e7465656420746f20626520612073656375726520686173682e1c526561736f6e7300010406242804000849012053696d706c6520707265696d616765206c6f6f6b75702066726f6d2074686520726561736f6e2773206861736820746f20746865206f726967696e616c20646174612e20416761696e2c2068617320616e610120696e73656375726520656e756d657261626c6520686173682073696e636520746865206b65792069732067756172616e7465656420746f2062652074686520726573756c74206f6620612073656375726520686173682e01e903013501144c4d6178696d756d526561736f6e4c656e6774681010004000000488204d6178696d756d2061636365707461626c6520726561736f6e206c656e6774682e48446174614465706f73697450657242797465184000e1f5050000000000000000000000000461012054686520616d6f756e742068656c64206f6e206465706f7369742070657220627974652077697468696e2074686520746970207265706f727420726561736f6e206f7220626f756e7479206465736372697074696f6e2e30546970436f756e74646f776e1010403800000445012054686520706572696f6420666f722077686963682061207469702072656d61696e73206f70656e20616674657220697320686173206163686965766564207468726573686f6c6420746970706572732e3454697046696e6465727346656571020414043501205468652070657263656e74206f66207468652066696e616c2074697020776869636820676f657320746f20746865206f726967696e616c207265706f72746572206f6620746865207469702e505469705265706f72744465706f73697442617365184000e40b5402000000000000000000000004d42054686520616d6f756e742068656c64206f6e206465706f73697420666f7220706c6163696e67206120746970207265706f72742e01b5072368456c656374696f6e50726f76696465724d756c746950686173650168456c656374696f6e50726f76696465724d756c746950686173652814526f756e64010010100100000018ac20496e7465726e616c20636f756e74657220666f7220746865206e756d626572206f6620726f756e64732e00550120546869732069732075736566756c20666f722064652d6475706c69636174696f6e206f66207472616e73616374696f6e73207375626d697474656420746f2074686520706f6f6c2c20616e642067656e6572616c6c20646961676e6f7374696373206f66207468652070616c6c65742e004d012054686973206973206d6572656c7920696e6372656d656e746564206f6e6365207065722065766572792074696d65207468617420616e20757073747265616d2060656c656374602069732063616c6c65642e3043757272656e7450686173650100b9070400043c2043757272656e742070686173652e38517565756564536f6c7574696f6e0000c1070400043d012043757272656e74206265737420736f6c7574696f6e2c207369676e6564206f7220756e7369676e65642c2071756575656420746f2062652072657475726e65642075706f6e2060656c656374602e20536e617073686f740000c50704000c7020536e617073686f742064617461206f662074686520726f756e642e005d01205468697320697320637265617465642061742074686520626567696e6e696e67206f6620746865207369676e656420706861736520616e6420636c65617265642075706f6e2063616c6c696e672060656c656374602e38446573697265645461726765747300001004000ccc2044657369726564206e756d626572206f66207461726765747320746f20656c65637420666f72207468697320726f756e642e00a8204f6e6c7920657869737473207768656e205b60536e617073686f74605d2069732070726573656e742e40536e617073686f744d657461646174610000c50404000c9820546865206d65746164617461206f6620746865205b60526f756e64536e617073686f74605d00a8204f6e6c7920657869737473207768656e205b60536e617073686f74605d2069732070726573656e742e645369676e65645375626d697373696f6e4e657874496e646578010010100000000024010120546865206e65787420696e64657820746f2062652061737369676e656420746f20616e20696e636f6d696e67207369676e6564207375626d697373696f6e2e007501204576657279206163636570746564207375626d697373696f6e2069732061737369676e6564206120756e6971756520696e6465783b207468617420696e64657820697320626f756e6420746f207468617420706172746963756c61726501207375626d697373696f6e20666f7220746865206475726174696f6e206f662074686520656c656374696f6e2e204f6e20656c656374696f6e2066696e616c697a6174696f6e2c20746865206e65787420696e6465782069733020726573657420746f20302e0069012057652063616e2774206a7573742075736520605369676e65645375626d697373696f6e496e64696365732e6c656e2829602c206265636175736520746861742773206120626f756e646564207365743b20706173742069747359012063617061636974792c2069742077696c6c2073696d706c792073617475726174652e2057652063616e2774206a7573742069746572617465206f76657220605369676e65645375626d697373696f6e734d6170602cf4206265636175736520697465726174696f6e20697320736c6f772e20496e73746561642c2077652073746f7265207468652076616c756520686572652e5c5369676e65645375626d697373696f6e496e64696365730100d1070400184d01204120736f727465642c20626f756e64656420736574206f6620602873636f72652c20696e64657829602c20776865726520656163682060696e6465786020706f696e747320746f20612076616c756520696e5420605369676e65645375626d697373696f6e73602e007101205765206e65766572206e65656420746f2070726f63657373206d6f7265207468616e20612073696e676c65207369676e6564207375626d697373696f6e20617420612074696d652e205369676e6564207375626d697373696f6e7375012063616e206265207175697465206c617267652c20736f2077652772652077696c6c696e6720746f207061792074686520636f7374206f66206d756c7469706c6520646174616261736520616363657373657320746f206163636573732101207468656d206f6e6520617420612074696d6520696e7374656164206f662072656164696e6720616e64206465636f64696e6720616c6c206f66207468656d206174206f6e63652e505369676e65645375626d697373696f6e734d61700101040510e10711020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000001c7420556e636865636b65642c207369676e656420736f6c7574696f6e732e00690120546f676574686572207769746820605375626d697373696f6e496e6469636573602c20746869732073746f726573206120626f756e64656420736574206f6620605369676e65645375626d697373696f6e7360207768696c65ec20616c6c6f77696e6720757320746f206b656570206f6e6c7920612073696e676c65206f6e6520696e206d656d6f727920617420612074696d652e0069012054776f78206e6f74653a20746865206b6579206f6620746865206d617020697320616e206175746f2d696e6372656d656e74696e6720696e6465782077686963682075736572732063616e6e6f7420696e7370656374206f72f4206166666563743b2077652073686f756c646e2774206e65656420612063727970746f67726170686963616c6c7920736563757265206861736865722e544d696e696d756d556e7472757374656453636f72650000c1040400105d0120546865206d696e696d756d2073636f7265207468617420656163682027756e747275737465642720736f6c7574696f6e206d7573742061747461696e20696e206f7264657220746f20626520636f6e7369646572656428206665617369626c652e00b82043616e206265207365742076696120607365745f6d696e696d756d5f756e747275737465645f73636f7265602e01ed030139013834556e7369676e656450686173651010580200000480204475726174696f6e206f662074686520756e7369676e65642070686173652e2c5369676e656450686173651010580200000478204475726174696f6e206f6620746865207369676e65642070686173652e70536f6c7574696f6e496d70726f76656d656e745468726573686f6c64b9011020a10700084d0120546865206d696e696d756d20616d6f756e74206f6620696d70726f76656d656e7420746f2074686520736f6c7574696f6e2073636f7265207468617420646566696e6573206120736f6c7574696f6e206173642022626574746572222028696e20616e79207068617365292e384f6666636861696e52657065617410100500000010b42054686520726570656174207468726573686f6c64206f6620746865206f6666636861696e20776f726b65722e00610120466f72206578616d706c652c20696620697420697320352c2074686174206d65616e732074686174206174206c65617374203520626c6f636b732077696c6c20656c61707365206265747765656e20617474656d7074738420746f207375626d69742074686520776f726b6572277320736f6c7574696f6e2e3c4d696e657254785072696f72697479202065666666666666e604250120546865207072696f72697479206f662074686520756e7369676e6564207472616e73616374696f6e207375626d697474656420696e2074686520756e7369676e65642d7068617365384d696e65724d61785765696768742020c08466655701000010b8204d6178696d756d20776569676874207468617420746865206d696e65722073686f756c6420636f6e73756d652e00550120546865206d696e65722077696c6c20656e7375726520746861742074686520746f74616c20776569676874206f662074686520756e7369676e656420736f6c7574696f6e2077696c6c206e6f7420657863656564d820746869732076616c75652c206261736564206f6e205b60576569676874496e666f3a3a7375626d69745f756e7369676e6564605d2e505369676e65644d61785375626d697373696f6e731010100000001ce4204d6178696d756d206e756d626572206f66207369676e6564207375626d697373696f6e7320746861742063616e206265207175657565642e005501204974206973206265737420746f2061766f69642061646a757374696e67207468697320647572696e6720616e20656c656374696f6e2c20617320697420696d706163747320646f776e73747265616d2064617461650120737472756374757265732e20496e20706172746963756c61722c20605369676e65645375626d697373696f6e496e64696365733c543e6020697320626f756e646564206f6e20746869732076616c75652e20496620796f75f42075706461746520746869732076616c756520647572696e6720616e20656c656374696f6e2c20796f75205f6d7573745f20656e7375726520746861744d0120605369676e65645375626d697373696f6e496e64696365732e6c656e282960206973206c657373207468616e206f7220657175616c20746f20746865206e65772076616c75652e204f74686572776973652cf020617474656d70747320746f207375626d6974206e657720736f6c7574696f6e73206d617920636175736520612072756e74696d652070616e69632e3c5369676e65644d61785765696768742020c0846665570100000c94204d6178696d756d20776569676874206f662061207369676e656420736f6c7574696f6e2e00fc20546869732073686f756c642070726f6261626c792062652073696d696c617220746f205b60436f6e6669673a3a4d696e65724d6178576569676874605d2e405369676e656452657761726442617365184000e40b54020000000000000000000000048820426173652072657761726420666f722061207369676e656420736f6c7574696f6e445369676e65644465706f73697442617365184000a0db215d000000000000000000000004902042617365206465706f73697420666f722061207369676e656420736f6c7574696f6e2e445369676e65644465706f736974427974651840787d010000000000000000000000000004a0205065722d62797465206465706f73697420666f722061207369676e656420736f6c7574696f6e2e4c5369676e65644465706f73697457656967687418400000000000000000000000000000000004a8205065722d776569676874206465706f73697420666f722061207369676e656420736f6c7574696f6e2e54566f746572536e617073686f74506572426c6f636b1010e4570000185d0120546865206d6178696d756d206e756d626572206f6620766f7465727320746f2070757420696e2074686520736e617073686f742e20417420746865206d6f6d656e742c20736e617073686f747320617265206f6e6c796101206f76657220612073696e676c6520626c6f636b2c20627574206f6e6365206d756c74692d626c6f636b20656c656374696f6e732061726520696e74726f647563656420746865792077696c6c2074616b6520706c61636558206f766572206d756c7469706c6520626c6f636b732e00310120416c736f2c206e6f746520746865206461746120747970653a2049662074686520766f746572732061726520726570726573656e746564206279206120607533326020696e206074797065390120436f6d70616374536f6c7574696f6e602c207468652073616d652060753332602069732075736564206865726520746f20656e7375726520626f756e647320617265207265737065637465642e384d696e65724d61784c656e67746810100000360010fc204d6178696d756d206c656e6774682028627974657329207468617420746865206d696e656420736f6c7574696f6e2073686f756c6420636f6e73756d652e00550120546865206d696e65722077696c6c20656e7375726520746861742074686520746f74616c206c656e677468206f662074686520756e7369676e656420736f6c7574696f6e2077696c6c206e6f74206578636565643020746869732076616c75652e01e507244050617261636861696e734f726967696e00000000003234436f6e66696775726174696f6e0134436f6e66696775726174696f6e0830416374697665436f6e6669670100e907e90200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000100000001000000000000000000060000006400000002000000c8000000010000000000000000000000000000000000000000c817a80400000004c8205468652061637469766520636f6e66696775726174696f6e20666f72207468652063757272656e742073657373696f6e2e3450656e64696e67436f6e6669670001040510e907040004d42050656e64696e6720636f6e66696775726174696f6e2028696620616e792920666f7220746865206e6578742073657373696f6e2e01d904000001ed07332c5061726173536861726564012c50617261735368617265640c4c43757272656e7453657373696f6e496e6465780100101000000000046c205468652063757272656e742073657373696f6e20696e6465782e5841637469766556616c696461746f72496e64696365730100f107040008090120416c6c207468652076616c696461746f7273206163746976656c792070617274696369706174696e6720696e2070617261636861696e20636f6e73656e7375732eb020496e64696365732061726520696e746f207468652062726f616465722076616c696461746f72207365742e4c41637469766556616c696461746f724b6579730100f5070400088101205468652070617261636861696e206174746573746174696f6e206b657973206f66207468652076616c696461746f7273206163746976656c792070617274696369706174696e6720696e2070617261636861696e20636f6e73656e7375732ef020546869732073686f756c64206265207468652073616d65206c656e677468206173206041637469766556616c696461746f72496e6469636573602e01dd04000000343450617261496e636c7573696f6e013450617261496e636c7573696f6e0c54417661696c6162696c6974794269746669656c6473000104050105f907040004650120546865206c6174657374206269746669656c6420666f7220656163682076616c696461746f722c20726566657272656420746f20627920746865697220696e64657820696e207468652076616c696461746f72207365742e4c50656e64696e67417661696c6162696c697479000104055101fd07040004b42043616e646964617465732070656e64696e6720617661696c6162696c6974792062792060506172614964602e7850656e64696e67417661696c6162696c697479436f6d6d69746d656e7473000104055101150504000405012054686520636f6d6d69746d656e7473206f662063616e646964617465732070656e64696e6720617661696c6162696c6974792c2062792060506172614964602e01e10401450100010108353050617261496e686572656e74013050617261496e686572656e740420496e636c75646564000080040018ec20576865746865722074686520706172617320696e686572656e742077617320696e636c756465642077697468696e207468697320626c6f636b2e0069012054686520604f7074696f6e3c28293e60206973206566666563746976656c7920612060626f6f6c602c20627574206974206e6576657220686974732073746f7261676520696e2074686520604e6f6e65602076617269616e74bc2064756520746f207468652067756172616e74656573206f66204652414d4527732073746f7261676520415049732e004901204966207468697320697320604e6f6e65602061742074686520656e64206f662074686520626c6f636b2c2077652070616e696320616e642072656e6465722074686520626c6f636b20696e76616c69642e01e50400000105083634506172615363686564756c65720134506172615363686564756c6572183c56616c696461746f7247726f757073010009080400186d0120416c6c207468652076616c696461746f722067726f7570732e204f6e6520666f72206561636820636f72652e20496e64696365732061726520696e746f206041637469766556616c696461746f727360202d206e6f74207468656d012062726f6164657220736574206f6620506f6c6b61646f742076616c696461746f72732c2062757420696e7374656164206a7573742074686520737562736574207573656420666f722070617261636861696e7320647572696e673820746869732073657373696f6e2e00810120426f756e643a20546865206e756d626572206f6620636f726573206973207468652073756d206f6620746865206e756d62657273206f662070617261636861696e7320616e642070617261746872656164206d756c7469706c65786572732e810120526561736f6e61626c792c203130302d313030302e2054686520646f6d696e616e7420666163746f7220697320746865206e756d626572206f662076616c696461746f72733a207361666520757070657220626f756e642061742031306b2e3c50617261746872656164517565756501000d081400000000001019012041207175657565206f66207570636f6d696e6720636c61696d7320616e6420776869636820636f726520746865792073686f756c64206265206d6170706564206f6e746f2e00150120546865206e756d626572206f662071756575656420636c61696d7320697320626f756e6465642061742074686520607363686564756c696e675f6c6f6f6b6168656164605501206d756c7469706c69656420627920746865206e756d626572206f662070617261746872656164206d756c7469706c6578657220636f7265732e20526561736f6e61626c792c203130202a203530203d203530302e44417661696c6162696c697479436f726573010021080400209d01204f6e6520656e74727920666f72206561636820617661696c6162696c69747920636f72652e20456e74726965732061726520604e6f6e65602069662074686520636f7265206973206e6f742063757272656e746c79206f636375706965642e2043616e206265c82074656d706f726172696c792060536f6d6560206966207363686564756c656420627574206e6f74206f636375706965642e41012054686520692774682070617261636861696e2062656c6f6e677320746f20746865206927746820636f72652c2077697468207468652072656d61696e696e6720636f72657320616c6c206265696e676420706172617468726561642d6d756c7469706c65786572732e00d820426f756e64656420627920746865206d6178696d756d206f6620656974686572206f662074686573652074776f2076616c7565733ae42020202a20546865206e756d626572206f662070617261636861696e7320616e642070617261746872656164206d756c7469706c657865727345012020202a20546865206e756d626572206f662076616c696461746f727320646976696465642062792060636f6e66696775726174696f6e2e6d61785f76616c696461746f72735f7065725f636f7265602e5050617261746872656164436c61696d496e64657801002d08040010590120416e20696e646578207573656420746f20656e737572652074686174206f6e6c79206f6e6520636c61696d206f6e206120706172617468726561642065786973747320696e20746865207175657565206f72206973b42063757272656e746c79206265696e672068616e646c656420627920616e206f6363757069656420636f72652e007d0120426f756e64656420627920746865206e756d626572206f66207061726174687265616420636f72657320616e64207363686564756c696e67206c6f6f6b61686561642e20526561736f6e61626c792c203130202a203530203d203530302e4453657373696f6e5374617274426c6f636b010010100000000018a5012054686520626c6f636b206e756d626572207768657265207468652073657373696f6e207374617274206f636375727265642e205573656420746f20747261636b20686f77206d616e792067726f757020726f746174696f6e732068617665206f636375727265642e005501204e6f7465207468617420696e2074686520636f6e74657874206f662070617261636861696e73206d6f64756c6573207468652073657373696f6e206368616e6765206973207369676e616c656420647572696e6761012074686520626c6f636b20616e6420656e61637465642061742074686520656e64206f662074686520626c6f636b20286174207468652066696e616c697a6174696f6e2073746167652c20746f206265206578616374292e5901205468757320666f7220616c6c20696e74656e747320616e6420707572706f7365732074686520656666656374206f66207468652073657373696f6e206368616e6765206973206f6273657276656420617420746865650120626c6f636b20666f6c6c6f77696e67207468652073657373696f6e206368616e67652c20626c6f636b206e756d626572206f66207768696368207765207361766520696e20746869732073746f726167652076616c75652e245363686564756c656401003108040018e02043757272656e746c79207363686564756c656420636f726573202d20667265652062757420757020746f206265206f636375706965642e004d0120426f756e64656420627920746865206e756d626572206f6620636f7265733a206f6e6520666f7220656163682070617261636861696e20616e642070617261746872656164206d756c7469706c657865722e00fd01205468652076616c756520636f6e7461696e656420686572652077696c6c206e6f742062652076616c69642061667465722074686520656e64206f66206120626c6f636b2e2052756e74696d6520415049732073686f756c64206265207573656420746f2064657465726d696e65207363686564756c656420636f7265732f6020666f7220746865207570636f6d696e6720626c6f636b2e000000003714506172617301145061726173442850617261636861696e7301002d08040004350120416c6c2070617261636861696e732e204f72646572656420617363656e64696e672062792060506172614964602e20506172617468726561647320617265206e6f7420696e636c756465642e38506172614c6966656379636c65730001040551013d08040004bc205468652063757272656e74206c6966656379636c65206f66206120616c6c206b6e6f776e2050617261204944732e1448656164730001040551016901040004a02054686520686561642d64617461206f66206576657279207265676973746572656420706172612e3c43757272656e74436f646548617368000104055101650104000cb4205468652076616c69646174696f6e20636f64652068617368206f66206576657279206c69766520706172612e00e420436f72726573706f6e64696e6720636f64652063616e206265207265747269657665642077697468205b60436f6465427948617368605d2e3050617374436f646548617368000104054108650104001061012041637475616c207061737420636f646520686173682c20696e646963617465642062792074686520706172612069642061732077656c6c2061732074686520626c6f636b206e756d6265722061742077686963682069744420626563616d65206f757464617465642e00e420436f72726573706f6e64696e6720636f64652063616e206265207265747269657665642077697468205b60436f6465427948617368605d2e3050617374436f64654d65746101010405510145080800000c4901205061737420636f6465206f662070617261636861696e732e205468652070617261636861696e73207468656d73656c766573206d6179206e6f74206265207265676973746572656420616e796d6f72652c49012062757420776520616c736f206b65657020746865697220636f6465206f6e2d636861696e20666f72207468652073616d6520616d6f756e74206f662074696d65206173206f7574646174656420636f6465b420746f206b65657020697420617661696c61626c6520666f72207365636f6e6461727920636865636b6572732e3c50617374436f64655072756e696e6701005108040018a1012057686963682070617261732068617665207061737420636f64652074686174206e65656473207072756e696e6720616e64207468652072656c61792d636861696e20626c6f636b2061742077686963682074686520636f646520776173207265706c616365642e8101204e6f746520746861742074686973206973207468652061637475616c20686569676874206f662074686520696e636c7564656420626c6f636b2c206e6f74207468652065787065637465642068656967687420617420776869636820746865ec20636f6465207570677261646520776f756c64206265206170706c6965642c20616c74686f7567682074686579206d617920626520657175616c2e9101205468697320697320746f20656e737572652074686520656e7469726520616363657074616e636520706572696f6420697320636f76657265642c206e6f7420616e206f666673657420616363657074616e636520706572696f64207374617274696e6749012066726f6d207468652074696d65206174207768696368207468652070617261636861696e20706572636569766573206120636f6465207570677261646520617320686176696e67206f636375727265642e5501204d756c7469706c6520656e747269657320666f7220612073696e676c65207061726120617265207065726d69747465642e204f72646572656420617363656e64696e6720627920626c6f636b206e756d6265722e48467574757265436f646555706772616465730001040551011004000c29012054686520626c6f636b206e756d6265722061742077686963682074686520706c616e6e656420636f6465206368616e676520697320657870656374656420666f72206120706172612e650120546865206368616e67652077696c6c206265206170706c696564206166746572207468652066697273742070617261626c6f636b20666f72207468697320494420696e636c75646564207768696368206578656375746573190120696e2074686520636f6e74657874206f6620612072656c617920636861696e20626c6f636b20776974682061206e756d626572203e3d206065787065637465645f6174602e38467574757265436f646548617368000104055101650104000c9c205468652061637475616c2066757475726520636f64652068617368206f66206120706172612e00e420436f72726573706f6e64696e6720636f64652063616e206265207265747269657665642077697468205b60436f6465427948617368605d2e5055706772616465476f41686561645369676e616c0001040551015508040024a10120546869732069732075736564206279207468652072656c61792d636861696e20746f20636f6d6d756e696361746520746f20612070617261636861696e206120676f2d6168656164207769746820696e2074686520757067726164652070726f6365647572652e00750120546869732076616c756520697320616273656e74207768656e20746865726520617265206e6f207570677261646573207363686564756c6564206f7220647572696e67207468652074696d65207468652072656c617920636861696e7d0120706572666f726d732074686520636865636b732e20497420697320736574206174207468652066697273742072656c61792d636861696e20626c6f636b207768656e2074686520636f72726573706f6e64696e672070617261636861696e65012063616e207377697463682069747320757067726164652066756e6374696f6e2e20417320736f6f6e206173207468652070617261636861696e277320626c6f636b20697320696e636c756465642c207468652076616c756558206765747320726573657420746f20604e6f6e65602e006501204e4f544520746861742074686973206669656c6420697320757365642062792070617261636861696e7320766961206d65726b6c652073746f726167652070726f6f66732c207468657265666f7265206368616e67696e67c42074686520666f726d61742077696c6c2072657175697265206d6967726174696f6e206f662070617261636861696e732e60557067726164655265737472696374696f6e5369676e616c0001040551015908040024690120546869732069732075736564206279207468652072656c61792d636861696e20746f20636f6d6d756e6963617465207468617420746865726520617265207265737472696374696f6e7320666f7220706572666f726d696e677c20616e207570677261646520666f7220746869732070617261636861696e2e0059012054686973206d617920626520612062656361757365207468652070617261636861696e20776169747320666f7220746865207570677261646520636f6f6c646f776e20746f206578706972652e20416e6f746865726d0120706f74656e7469616c207573652063617365206973207768656e2077652077616e7420746f20706572666f726d20736f6d65206d61696e74656e616e63652028737563682061732073746f72616765206d6967726174696f6e29e020776520636f756c6420726573747269637420757067726164657320746f206d616b65207468652070726f636573732073696d706c65722e006501204e4f544520746861742074686973206669656c6420697320757365642062792070617261636861696e7320766961206d65726b6c652073746f726167652070726f6f66732c207468657265666f7265206368616e67696e67c42074686520666f726d61742077696c6c2072657175697265206d6967726174696f6e206f662070617261636861696e732e4055706772616465436f6f6c646f776e730100510804000c510120546865206c697374206f662070617261636861696e73207468617420617265206177616974696e6720666f722074686569722075706772616465207265737472696374696f6e20746f20636f6f6c646f776e2e008c204f72646572656420617363656e64696e6720627920626c6f636b206e756d6265722e405570636f6d696e67557067726164657301005108040010590120546865206c697374206f66207570636f6d696e6720636f64652075706772616465732e2045616368206974656d20697320612070616972206f66207768696368207061726120706572666f726d73206120636f6465e8207570677261646520616e642061742077686963682072656c61792d636861696e20626c6f636b2069742069732065787065637465642061742e008c204f72646572656420617363656e64696e6720627920626c6f636b206e756d6265722e30416374696f6e73517565756501010405102d0804000415012054686520616374696f6e7320746f20706572666f726d20647572696e6720746865207374617274206f6620612073706563696669632073657373696f6e20696e6465782e505570636f6d696e67506172617347656e657369730001040551015d08040004a0205570636f6d696e6720706172617320696e7374616e74696174696f6e20617267756d656e74732e38436f64654279486173685265667301010406650110100000000004290120546865206e756d626572206f66207265666572656e6365206f6e207468652076616c69646174696f6e20636f646520696e205b60436f6465427948617368605d2073746f726167652e28436f64654279486173680001040665012505040010902056616c69646174696f6e20636f64652073746f7265642062792069747320686173682e00310120546869732073746f7261676520697320636f6e73697374656e742077697468205b60467574757265436f646548617368605d2c205b6043757272656e74436f646548617368605d20616e6448205b6050617374436f646548617368605d2e01510501750100016108382c496e697469616c697a6572012c496e697469616c697a65720838486173496e697469616c697a656400008004002021012057686574686572207468652070617261636861696e73206d6f64756c65732068617665206265656e20696e697469616c697a65642077697468696e207468697320626c6f636b2e0025012053656d616e746963616c6c7920612060626f6f6c602c2062757420746869732067756172616e746565732069742073686f756c64206e65766572206869742074686520747269652c6901206173207468697320697320636c656172656420696e20606f6e5f66696e616c697a656020616e64204672616d65206f7074696d697a657320604e6f6e65602076616c75657320746f20626520656d7074792076616c7565732e007d0120417320612060626f6f6c602c20607365742866616c7365296020616e64206072656d6f766528296020626f7468206c65616420746f20746865206e6578742060676574282960206265696e672066616c73652c20627574206f6e65206f667901207468656d2077726974657320746f20746865207472696520616e64206f6e6520646f6573206e6f742e205468697320636f6e667573696f6e206d616b657320604f7074696f6e3c28293e60206d6f7265207375697461626c6520666f7280207468652073656d616e74696373206f662074686973207661726961626c652e58427566666572656453657373696f6e4368616e6765730100650804001c59012042756666657265642073657373696f6e206368616e67657320616c6f6e6720776974682074686520626c6f636b206e756d62657220617420776869636820746865792073686f756c64206265206170706c6965642e005d01205479706963616c6c7920746869732077696c6c20626520656d707479206f72206f6e6520656c656d656e74206c6f6e672e2041706172742066726f6d20746861742074686973206974656d206e65766572206869747334207468652073746f726167652e00690120486f776576657220746869732069732061206056656360207265676172646c65737320746f2068616e646c6520766172696f757320656467652063617365732074686174206d6179206f636375722061742072756e74696d65c0207570677261646520626f756e646172696573206f7220696620676f7665726e616e636520696e74657276656e65732e015505000000390c446d70010c446d700854446f776e776172644d6573736167655175657565730101040551016d08040004d02054686520646f776e77617264206d657373616765732061646472657373656420666f722061206365727461696e20706172612e64446f776e776172644d65737361676551756575654865616473010104055101248000000000000000000000000000000000000000000000000000000000000000001c25012041206d617070696e6720746861742073746f7265732074686520646f776e77617264206d657373616765207175657565204d5143206865616420666f72206561636820706172612e00902045616368206c696e6b20696e207468697320636861696e20686173206120666f726d3a78206028707265765f686561642c20422c2048284d2929602c207768657265e8202d2060707265765f68656164603a206973207468652070726576696f757320686561642068617368206f72207a65726f206966206e6f6e652e2101202d206042603a206973207468652072656c61792d636861696e20626c6f636b206e756d62657220696e2077686963682061206d6573736167652077617320617070656e6465642ed4202d206048284d29603a206973207468652068617368206f6620746865206d657373616765206265696e6720617070656e6465642e0159050000003a0c556d70010c556d70184c52656c61794469737061746368517565756573010104055101c501040018710120546865206d657373616765732077616974696e6720746f2062652068616e646c6564206279207468652072656c61792d636861696e206f726967696e6174696e672066726f6d2061206365727461696e2070617261636861696e2e007901204e6f7465207468617420736f6d6520757077617264206d65737361676573206d696768742068617665206265656e20616c72656164792070726f6365737365642062792074686520696e636c7573696f6e206c6f6769632e20452e672e74206368616e6e656c206d616e6167656d656e74206d657373616765732e00a820546865206d65737361676573206172652070726f63657373656420696e204649464f206f726465722e5852656c61794469737061746368517565756553697a65010104055101742000000000000000002c45012053697a65206f6620746865206469737061746368207175657565732e204361636865732073697a6573206f66207468652071756575657320696e206052656c617944697370617463685175657565602e00f0204669727374206974656d20696e20746865207475706c652069732074686520636f756e74206f66206d6573736167657320616e64207365636f6e64e02069732074686520746f74616c206c656e6774682028696e20627974657329206f6620746865206d657373616765207061796c6f6164732e007901204e6f74652074686174207468697320697320616e20617578696c69617279206d617070696e673a206974277320706f737369626c6520746f2074656c6c2074686520627974652073697a6520616e6420746865206e756d626572206f667901206d65737361676573206f6e6c79206c6f6f6b696e67206174206052656c61794469737061746368517565756573602e2054686973206d617070696e6720697320736570617261746520746f2061766f69642074686520636f7374206f663d01206c6f6164696e67207468652077686f6c65206d657373616765207175657565206966206f6e6c792074686520746f74616c2073697a6520616e6420636f756e74206172652072657175697265642e002c20496e76617269616e743a4501202d2054686520736574206f66206b6579732073686f756c642065786163746c79206d617463682074686520736574206f66206b657973206f66206052656c61794469737061746368517565756573602e344e65656473446973706174636801002d08040014190120546865206f726465726564206c697374206f6620605061726149646073207468617420686176652061206052656c6179446973706174636851756575656020656e7472792e002c20496e76617269616e743a3501202d2054686520736574206f66206974656d732066726f6d207468697320766563746f722073686f756c642062652065786163746c792074686520736574206f6620746865206b65797320696ed82020206052656c617944697370617463685175657565736020616e64206052656c61794469737061746368517565756553697a65602e684e6578744469737061746368526f756e64537461727457697468000051010400147d012054686973206973207468652070617261207468617420676574732077696c6c20676574206469737061746368656420666972737420647572696e6720746865206e6578742075707761726420646973706174636861626c652071756575654420657865637574696f6e20726f756e642e002c20496e76617269616e743a0d01202d2049662060536f6d65287061726129602c207468656e20607061726160206d7573742062652070726573656e7420696e20604e656564734469737061746368602e284f7665727765696768740001040520750804000c050120546865206d657373616765732074686174206578636565646564206d617820696e646976696475616c206d65737361676520776569676874206275646765742e00d4205468657365206d65737361676573207374617920746865726520756e74696c206d616e75616c6c7920646973706174636865642e3c4f766572776569676874436f756e7401002020000000000000000008690120546865206e756d626572206f66206f766572776569676874206d657373616765732065766572207265636f7264656420696e20604f766572776569676874602028616e64207468757320746865206c6f7765737420667265652020696e646578292e015d05017901000179083b1048726d70011048726d70305c48726d704f70656e4368616e6e656c52657175657374730001040589017d08040018bc2054686520736574206f662070656e64696e672048524d50206f70656e206368616e6e656c2072657175657374732e00c02054686520736574206973206163636f6d70616e6965642062792061206c69737420666f7220697465726174696f6e2e002c20496e76617269616e743a3d01202d20546865726520617265206e6f206368616e6e656c7320746861742065786973747320696e206c69737420627574206e6f7420696e207468652073657420616e6420766963652076657273612e6c48726d704f70656e4368616e6e656c52657175657374734c697374010081080400006c48726d704f70656e4368616e6e656c52657175657374436f756e740101040551011010000000000c65012054686973206d617070696e6720747261636b7320686f77206d616e79206f70656e206368616e6e656c2072657175657374732061726520696e69746961746564206279206120676976656e2073656e64657220706172612e7d0120496e76617269616e743a206048726d704f70656e4368616e6e656c5265717565737473602073686f756c6420636f6e7461696e207468652073616d65206e756d626572206f66206974656d73207468617420686173206028582c205f2960e020617320746865206e756d626572206f66206048726d704f70656e4368616e6e656c52657175657374436f756e746020666f72206058602e7c48726d7041636365707465644368616e6e656c52657175657374436f756e740101040551011010000000000c71012054686973206d617070696e6720747261636b7320686f77206d616e79206f70656e206368616e6e656c2072657175657374732077657265206163636570746564206279206120676976656e20726563697069656e7420706172612e6d0120496e76617269616e743a206048726d704f70656e4368616e6e656c5265717565737473602073686f756c6420636f6e7461696e207468652073616d65206e756d626572206f66206974656d732060285f2c20582960207769746855012060636f6e6669726d6564602073657420746f20747275652c20617320746865206e756d626572206f66206048726d7041636365707465644368616e6e656c52657175657374436f756e746020666f72206058602e6048726d70436c6f73654368616e6e656c52657175657374730001040589018004001c9101204120736574206f662070656e64696e672048524d5020636c6f7365206368616e6e656c20726571756573747320746861742061726520676f696e6720746f20626520636c6f73656420647572696e67207468652073657373696f6e206368616e67652e0101205573656420666f7220636865636b696e67206966206120676976656e206368616e6e656c206973207265676973746572656420666f7220636c6f737572652e00c02054686520736574206973206163636f6d70616e6965642062792061206c69737420666f7220697465726174696f6e2e002c20496e76617269616e743a3d01202d20546865726520617265206e6f206368616e6e656c7320746861742065786973747320696e206c69737420627574206e6f7420696e207468652073657420616e6420766963652076657273612e7048726d70436c6f73654368616e6e656c52657175657374734c697374010081080400003848726d7057617465726d61726b730001040551011004000cb8205468652048524d502077617465726d61726b206173736f6369617465642077697468206561636820706172612e2c20496e76617269616e743a7901202d2065616368207061726120605060207573656420686572652061732061206b65792073686f756c642073617469736679206050617261733a3a69735f76616c69645f70617261285029602077697468696e20612073657373696f6e2e3048726d704368616e6e656c73000104058901850804000cb42048524d50206368616e6e656c2064617461206173736f6369617465642077697468206561636820706172612e2c20496e76617269616e743a7501202d2065616368207061727469636970616e7420696e20746865206368616e6e656c2073686f756c642073617469736679206050617261733a3a69735f76616c69645f70617261285029602077697468696e20612073657373696f6e2e6048726d70496e67726573734368616e6e656c73496e6465780101040551012d08040034590120496e67726573732f65677265737320696e646578657320616c6c6f7720746f2066696e6420616c6c207468652073656e6465727320616e642072656365697665727320676976656e20746865206f70706f736974652c20736964652e20492e652e0021012028612920696e677265737320696e64657820616c6c6f777320746f2066696e6420616c6c207468652073656e6465727320666f72206120676976656e20726563697069656e742e1d01202862292065677265737320696e64657820616c6c6f777320746f2066696e6420616c6c2074686520726563697069656e747320666f72206120676976656e2073656e6465722e003020496e76617269616e74733a8d01202d20666f72206561636820696e677265737320696e64657820656e74727920666f72206050602065616368206974656d2060496020696e2074686520696e6465782073686f756c642070726573656e7420696e206048726d704368616e6e656c73603c2020206173206028492c205029602e8901202d20666f7220656163682065677265737320696e64657820656e74727920666f72206050602065616368206974656d2060456020696e2074686520696e6465782073686f756c642070726573656e7420696e206048726d704368616e6e656c73603c2020206173206028502c204529602e0101202d2074686572652073686f756c64206265206e6f206f746865722064616e676c696e67206368616e6e656c7320696e206048726d704368616e6e656c73602e68202d2074686520766563746f72732061726520736f727465642e5c48726d704567726573734368616e6e656c73496e6465780101040551012d080400004c48726d704368616e6e656c436f6e74656e74730101040589018d08040008ac2053746f7261676520666f7220746865206d6573736167657320666f722065616368206368616e6e656c2e650120496e76617269616e743a2063616e6e6f74206265206e6f6e2d656d7074792069662074686520636f72726573706f6e64696e67206368616e6e656c20696e206048726d704368616e6e656c736020697320604e6f6e65602e4848726d704368616e6e656c44696765737473010104055101950804001cf4204d61696e7461696e732061206d617070696e6720746861742063616e206265207573656420746f20616e7377657220746865207175657374696f6e3a290120576861742070617261732073656e742061206d6573736167652061742074686520676976656e20626c6f636b206e756d62657220666f72206120676976656e2072656365697665722e3020496e76617269616e74733aa8202d2054686520696e6e657220605665633c5061726149643e60206973206e6576657220656d7074792ee8202d2054686520696e6e657220605665633c5061726149643e602063616e6e6f742073746f72652074776f2073616d652060506172614964602e8101202d20546865206f7574657220766563746f7220697320736f7274656420617363656e64696e6720627920626c6f636b206e756d62657220616e642063616e6e6f742073746f72652074776f206974656d732077697468207468652073616d6540202020626c6f636b206e756d6265722e01610501850100019d083c3c5061726153657373696f6e496e666f013c5061726153657373696f6e496e666f0c5041737369676e6d656e744b657973556e736166650100a10804000ca42041737369676e6d656e74206b65797320666f72207468652063757272656e742073657373696f6e2e6d01204e6f7465207468617420746869732041504920697320707269766174652064756520746f206974206265696e672070726f6e6520746f20276f66662d62792d6f6e65272061742073657373696f6e20626f756e6461726965732eac205768656e20696e20646f7562742c20757365206053657373696f6e73602041504920696e73746561642e544561726c6965737453746f72656453657373696f6e010010100000000004010120546865206561726c696573742073657373696f6e20666f722077686963682070726576696f75732073657373696f6e20696e666f2069732073746f7265642e2053657373696f6e730001040610a50804000ca42053657373696f6e20696e666f726d6174696f6e20696e206120726f6c6c696e672077696e646f772e35012053686f756c64206861766520616e20656e74727920696e2072616e676520604561726c6965737453746f72656453657373696f6e2e2e3d43757272656e7453657373696f6e496e646578602e750120446f6573206e6f74206861766520616e7920656e7472696573206265666f7265207468652073657373696f6e20696e64657820696e207468652066697273742073657373696f6e206368616e6765206e6f74696669636174696f6e2e000000003d2452656769737472617201245265676973747261720c2c50656e64696e67537761700001040551015101040004642050656e64696e672073776170206f7065726174696f6e732e145061726173000104055101ad08040010050120416d6f756e742068656c64206f6e206465706f73697420666f722065616368207061726120616e6420746865206f726967696e616c206465706f7369746f722e0091012054686520676976656e206163636f756e7420494420697320726573706f6e7369626c6520666f72207265676973746572696e672074686520636f646520616e6420696e697469616c206865616420646174612c20627574206d6179206f6e6c7920646f350120736f2069662069742069736e27742079657420726567697374657265642e2028416674657220746861742c206974277320757020746f20676f7665726e616e636520746f20646f20736f2e29384e65787446726565506172614964010051011000000000046020546865206e65787420667265652060506172614964602e016505018d01082c506172614465706f73697418400010a5d4e8000000000000000000000008b020546865206465706f73697420746f206265207061696420746f2072756e206120706172617468726561642e3d0120546869732073686f756c6420696e636c7564652074686520636f737420666f722073746f72696e67207468652067656e65736973206865616420616e642076616c69646174696f6e20636f64652e48446174614465706f7369745065724279746518408096980000000000000000000000000004c420546865206465706f73697420746f20626520706169642070657220627974652073746f726564206f6e20636861696e2e01b1084614536c6f74730114536c6f747304184c6561736573010104055101b508040040150120416d6f756e74732068656c64206f6e206465706f73697420666f7220656163682028706f737369626c792066757475726529206c65617365642070617261636861696e2e009901205468652061637475616c20616d6f756e74206c6f636b6564206f6e2069747320626568616c6620627920616e79206163636f756e7420617420616e792074696d6520697320746865206d6178696d756d206f6620746865207365636f6e642076616c756573f0206f6620746865206974656d7320696e2074686973206c6973742077686f73652066697273742076616c756520697320746865206163636f756e742e00610120546865206669727374206974656d20696e20746865206c6973742069732074686520616d6f756e74206c6f636b656420666f72207468652063757272656e74204c6561736520506572696f642e20466f6c6c6f77696e67b0206974656d732061726520666f72207468652073756273657175656e74206c6561736520706572696f64732e006101205468652064656661756c742076616c75652028616e20656d707479206c6973742920696d706c6965732074686174207468652070617261636861696e206e6f206c6f6e6765722065786973747320286f72206e65766572b42065786973746564292061732066617220617320746869732070616c6c657420697320636f6e6365726e65642e00510120496620612070617261636861696e20646f65736e2774206578697374202a7965742a20627574206973207363686564756c656420746f20657869737420696e20746865206675747572652c207468656e20697461012077696c6c206265206c6566742d7061646465642077697468206f6e65206f72206d6f726520604e6f6e65607320746f2064656e6f74652074686520666163742074686174206e6f7468696e672069732068656c64206f6e5d01206465706f73697420666f7220746865206e6f6e2d6578697374656e7420636861696e2063757272656e746c792c206275742069732068656c6420617420736f6d6520706f696e7420696e20746865206675747572652e00dc20497420697320696c6c6567616c20666f72206120604e6f6e65602076616c756520746f20747261696c20696e20746865206c6973742e016905019101082c4c65617365506572696f6410100075120004dc20546865206e756d626572206f6620626c6f636b73206f76657220776869636820612073696e676c6520706572696f64206c617374732e2c4c656173654f6666736574101000100e0004d420546865206e756d626572206f6620626c6f636b7320746f206f66667365742065616368206c6561736520706572696f642062792e01bd08472041756374696f6e73012041756374696f6e73103841756374696f6e436f756e7465720100101000000000048c204e756d626572206f662061756374696f6e73207374617274656420736f206661722e2c41756374696f6e496e666f000074040014f820496e666f726d6174696f6e2072656c6174696e6720746f207468652063757272656e742061756374696f6e2c206966207468657265206973206f6e652e00450120546865206669727374206974656d20696e20746865207475706c6520697320746865206c6561736520706572696f6420696e646578207468617420746865206669727374206f662074686520666f7572510120636f6e746967756f7573206c6561736520706572696f6473206f6e2061756374696f6e20697320666f722e20546865207365636f6e642069732074686520626c6f636b206e756d626572207768656e207468655d012061756374696f6e2077696c6c2022626567696e20746f20656e64222c20692e652e2074686520666972737420626c6f636b206f662074686520456e64696e6720506572696f64206f66207468652061756374696f6e2e3c5265736572766564416d6f756e747300010405c10818040008310120416d6f756e74732063757272656e746c7920726573657276656420696e20746865206163636f756e7473206f662074686520626964646572732063757272656e746c792077696e6e696e673820287375622d2972616e6765732e1c57696e6e696e670001040510c50804000c6101205468652077696e6e696e67206269647320666f722065616368206f66207468652031302072616e67657320617420656163682073616d706c6520696e207468652066696e616c20456e64696e6720506572696f64206f664901207468652063757272656e742061756374696f6e2e20546865206d61702773206b65792069732074686520302d626173656420696e64657820696e746f207468652053616d706c652053697a652e205468651d012066697273742073616d706c65206f662074686520656e64696e6720706572696f6420697320303b20746865206c617374206973206053616d706c652053697a65202d2031602e016d050195011030456e64696e67506572696f64101040190100041d0120546865206e756d626572206f6620626c6f636b73206f76657220776869636820616e2061756374696f6e206d617920626520726574726f6163746976656c7920656e6465642e3053616d706c654c656e6774681010140000000cf020546865206c656e677468206f6620656163682073616d706c6520746f2074616b6520647572696e672074686520656e64696e6720706572696f642e00d42060456e64696e67506572696f6460202f206053616d706c654c656e67746860203d20546f74616c2023206f662053616d706c657338536c6f7452616e6765436f756e74101024000000004c4c65617365506572696f6473506572536c6f741010080000000001d108482443726f77646c6f616e012443726f77646c6f616e101446756e6473000104055101d5080400046820496e666f206f6e20616c6c206f66207468652066756e64732e204e6577526169736501002d080400085501205468652066756e64732074686174206861766520686164206164646974696f6e616c20636f6e747269627574696f6e7320647572696e6720746865206c61737420626c6f636b2e20546869732069732075736564150120696e206f7264657220746f2064657465726d696e652077686963682066756e64732073686f756c64207375626d6974206e6577206f72207570646174656420626964732e30456e64696e6773436f756e74010010100000000004290120546865206e756d626572206f662061756374696f6e732074686174206861766520656e746572656420696e746f20746865697220656e64696e6720706572696f6420736f206661722e344e65787454726965496e646578010010100000000004a820547261636b657220666f7220746865206e65787420617661696c61626c65207472696520696e6465780175050199010c2050616c6c6574496425072070792f6366756e64047101206050616c6c657449646020666f72207468652063726f77646c6f616e2070616c6c65742e20416e20617070726f7072696174652076616c756520636f756c64206265206050616c6c65744964282a622270792f6366756e642229603c4d696e436f6e747269627574696f6e184000743ba40b0000000000000000000000086d0120546865206d696e696d756d20616d6f756e742074686174206d617920626520636f6e747269627574656420696e746f20612063726f77646c6f616e2e2053686f756c6420616c6d6f7374206365727461696e6c7920626520617470206c6561737420604578697374656e7469616c4465706f736974602e3c52656d6f76654b6579734c696d69741010e803000004e4204d6178206e756d626572206f662073746f72616765206b65797320746f2072656d6f7665207065722065787472696e7369632063616c6c2e01dd0849e108042040436865636b5370656356657273696f6ee9081038436865636b547856657273696f6eed081030436865636b47656e65736973f1082438436865636b4d6f7274616c697479f5082428436865636b4e6f6e6365fd08802c436865636b576569676874010980604368617267655472616e73616374696f6e5061796d656e740509804850726576616c6964617465417474657374730909800d09"; + #endregion + + private static MetadataV14? metadataV14; + public static MetadataV14 MetadataV14 + { + get + { + if (metadataV14 == null) + { + metadataV14 = new MetadataV14(v14Hex); + } + + return metadataV14; + } + } + + public static string HardBinding(string type) + { + return type switch + { + "BalanceOf" => "U128", + _ => type + }; + } + + public static PortableType FindTypeByIndex(int index) + { + return MetadataV14.RuntimeMetadataData.Lookup.Value.Single(x => x.Id.Value == index); + } + + public static int? FindIndexByNode(NodeBuilderType node) + { + var potentialIndex = FindIndexByClass(node.Adapted); + if(potentialIndex != null) return potentialIndex.Value; + + var typeDefs = MetadataV14.RuntimeMetadataData.Lookup.Value.Where(x => x.Ty.TypeDef.Value == node.TypeDef); + + if (typeDefs is null || !typeDefs.Any()) + { + return null; + } + + // Find the potential children index + var indexesToSearch = node.Children.Select(FindIndexByNode).ToList(); + + foreach (var typeDef in typeDefs) + { + if (typeDef.Ty.TypeDef.Value2 is TypeDefSequence tds) + { + if (tds.ElemType.Value == indexesToSearch[0]) + { + return (int)typeDef.Id.Value; + } + } + else if (typeDef.Ty.TypeDef.Value2 is TypeDefArray tda) + { + var childIndex = FindIndexByNode(node.Children[0]); + + if (tda.ElemType.Value == childIndex) + { + return (int)typeDef.Id.Value; + } + } + else if (typeDef.Ty.TypeDef.Value2 is TypeDefBitSequence tdbs) + { + var child1 = FindIndexByNode(node.Children[0]); + var child2 = FindIndexByNode(node.Children[1]); + + if (tdbs.BitOrderType.Value == child1 && tdbs.BitStoreType.Value == child2) + { + return (int)typeDef.Id.Value; + } + } + else if (typeDef.Ty.TypeDef.Value2 is TypeDefCompact tdc) + { + var childIndex = FindIndexByNode(node.Children[0]); + + if (tdc.ElemType.Value == childIndex) + { + return (int)typeDef.Id.Value; + } + } + else if (typeDef.Ty.TypeDef.Value2 is TypeDefComposite tdcomposite) + { + if(indexesToSearch.Count == 1 && indexesToSearch[0] == 0) + { + return (int)typeDef.Id.Value; + } + //var indexes = node.Children.Select(n => FindIndexByNode(n)!.Value); + //if(indexes.SequenceEqual(tdcomposite.Fields.Value.Select(x => (int)x.ElemType.Value))) + //{ + // return (int)typeDef.Id.Value; + //} + } + else if (typeDef.Ty.TypeDef.Value2 is BaseEnum tdp) + { + var index = FindIndexByClass(tdp.ToString()); + + if (index == null) throw new MetadataConversionException($"Primitive {tdp} not found. Should never happened"); + + return (int)typeDef.Id.Value; + } + else if (typeDef.Ty.TypeDef.Value2 is TypeDefTuple tdt) + { + if(FoundAllChildren(indexesToSearch, tdt)) + { + return (int)typeDef.Id.Value; + } + } + } + + return null; + } + + + + private static bool FoundAllChildren(List indexesToSearch, TypeDefTuple tdt) + { + return indexesToSearch.Where(x => x != null).Select(x => x.Value).SequenceEqual(tdt.Fields.Value.Select(x => (int)x.Value)); + } + + public static int? FindIndexByClass(string storageClass) + { + var modules = MetadataV14.RuntimeMetadataData.Modules.Value; + + foreach (var module in modules) + { + var storage = module.Storage.Value; + if (storage == null) + { + continue; + } + + foreach (var entry in storage.Entries.Value) + { + if (entry.Name.Value == storageClass) + { + return ((CompactIntegerType)entry.StorageType.Value2).Value; + } + + if (entry.StorageType.Value == StorageType.Type.Plain) + { + var storagePlainIndex = entry.StorageType.Value2 as TType ?? throw new InvalidOperationException(); + var typeDef = MetadataV14.RuntimeMetadataData.Lookup.Value[storagePlainIndex.Value].Ty.TypeDef; + var storagePlainName = ""; + if (typeDef.Value2 is BaseEnum typeDefPrimitive) + { + storagePlainName = typeDefPrimitive.Value.ToString(); + } + else + { + + } + + if (StorageClass.WriteStoragePlain(storagePlainName).Equals(storageClass, StringComparison.CurrentCultureIgnoreCase)) + { + return ((CompactIntegerType)entry.StorageType.Value2).Value; + } + } + else if (entry.StorageType.Value == StorageType.Type.Map) + { + var storageMap = entry.StorageType.Value2 as StorageEntryTypeMapV14 ?? throw new InvalidOperationException(); + + if (StorageClass.WriteStorageKey(storageMap, MetadataV14).Equals(storageClass, StringComparison.CurrentCultureIgnoreCase)) + { + return storageMap.Key.Value; + } + if (StorageClass.WriteStorageValue(storageMap, MetadataV14).Equals(storageClass, StringComparison.CurrentCultureIgnoreCase)) + { + return storageMap.Value.Value; + } + } + else if (entry.StorageType.Value == StorageType.Type.DoubleMap) + { + throw new InvalidOperationException(); + } + else if (entry.StorageType.Value == StorageType.Type.NMap) + { + throw new InvalidOperationException(); + } + + + } + + if (module.Events.OptionFlag) + { + var events = MetadataV14.RuntimeMetadataData.Lookup.Value[(int)module.Events.Value.ElemType.Value]; + if (events.Ty.TypeDef.Value2 is TypeDefVariant variant) + { + foreach (var field in variant.TypeParam.Value.SelectMany(x => x.VariantFields.Value)) + { + var fieldValue = ConversionBuilder.HarmonizeTypeName(field.FieldTypeName.Value.Value); + if (fieldValue.Equals(storageClass, StringComparison.CurrentCultureIgnoreCase)) + { + return field.FieldTy.Value; + } + } + } + } + + foreach (var constant in module.Constants.Value) + { + var associatedLookup = MetadataV14.RuntimeMetadataData.Lookup.Value[constant.ConstantType.Value]; + + if (associatedLookup.Ty.Path is not null && + associatedLookup.Ty.Path.Value.Length > 0 && + associatedLookup.Ty.Path.Value.Last().Value.Equals(storageClass, StringComparison.CurrentCultureIgnoreCase)) + { + return constant.ConstantType.Value; + } + } + } + + // Last chance bro + //return StorageClass.TryHardBinding(storageClass); + return null; + } + } +} diff --git a/Substrate.NET.Metadata/Conversion/Internal/StorageClass.cs b/Substrate.NET.Metadata/Conversion/Internal/StorageClass.cs new file mode 100644 index 0000000..560950e --- /dev/null +++ b/Substrate.NET.Metadata/Conversion/Internal/StorageClass.cs @@ -0,0 +1,166 @@ +using Substrate.NET.Metadata.Base; +using Substrate.NET.Metadata.Base.Portable; +using Substrate.NET.Metadata.V10; +using Substrate.NET.Metadata.V11; +using Substrate.NET.Metadata.V13; +using Substrate.NET.Metadata.V14; +using Substrate.NET.Metadata.V9; +using Substrate.NetApi.Model.Types.Base; +using Substrate.NetApi.Model.Types.Primitive; +using System.Text.RegularExpressions; + +namespace Substrate.NET.Metadata.Conversion.Internal +{ + internal class StorageClass + { + public StorageClass(StorageType type, string moduleName, string propName, string className) + { + Type = type; + ModuleName = moduleName; + PropName = propName; + ClassName = className; + FoundInV14 = false; + } + + public bool FoundInV14 { get; private set; } + public int? Index_v14_9110 { get; private set; } + public StorageType Type { get; set; } + public string ModuleName { get; set; } + public string PropName { get; set; } + public string ClassName { get; set; } + + private string? classNameMapped = null; + public string ClassNameMapped + { + get + { + if (classNameMapped is null) + classNameMapped = CustomMapping(ClassName); + + return classNameMapped; + } + } + + public string CustomMapping(string className) + { + return className switch + { + "TaskAddress" => "TaskAddress", + "Vec" => "Vec>", + "Vec" => "Vec", + "Vec<(AccountId, Balance)>" => "Vec<(::AccountId, BalanceOf)>", + "sp_std::marker::PhantomData<(AccountId, Event)>" => "BaseVoid", // Pas sur de moi + "Timepoint" => "Timepoint", + "limits::BlockWeights" => "BlockWeights", + "limits::BlockLength" => "BlockLength", + "TransactionPriority" => "u64", + "& 'static[u8]" => "vec", + "&[u8]" => "vec", + "Moment" => "u64", + "ModuleId" => "PalletId", + "LeasePeriod" => "LeasePeriodOf", + _ => className + }; + } + + public void SetToFoundInV14(int index) + { + FoundInV14 = true; + Index_v14_9110 = index; + } + + public static string WriteStoragePlain(Str plain) => WriteStoragePlain(plain.Value); + public static string WriteStoragePlain(string plain) + { + return ConversionBuilder.HarmonizeTypeName(plain.ToString()); + } + + public static string WriteStorageMap(string hasher, string key, string value, bool? linked) + { + return $"[Hasher = {ConversionBuilder.HarmonizeTypeName(hasher)} / Key = {ConversionBuilder.HarmonizeTypeName(key)} / Value = {ConversionBuilder.HarmonizeTypeName(value)}]"; + } + + public static string WriteStorageDoubleMap(string key1, string key1Hasher, string key2, string key2Hasher, string value) + { + return $"Key1 = {ConversionBuilder.HarmonizeTypeName(key1)} / Key1Hasher = {ConversionBuilder.HarmonizeTypeName(key1Hasher)} / Key2 = {ConversionBuilder.HarmonizeTypeName(key2)} / Key2Hasher = {ConversionBuilder.HarmonizeTypeName(key2Hasher)} / Value = {ConversionBuilder.HarmonizeTypeName(value)}"; + } + + public static string WriteStorageMap(StorageEntryTypeMapV9 typeMap) + => WriteStorageMap(typeMap.Hasher.Value.ToString(), typeMap.Key.Value, typeMap.Value.Value, typeMap.Linked.Value); + + public static string WriteStorageMap(StorageEntryTypeMapV10 typeMap) + => WriteStorageMap(typeMap.Hasher.Value.ToString(), typeMap.Key.Value, typeMap.Value.Value, typeMap.Linked.Value); + + public static string WriteStorageMap(StorageEntryTypeMapV11 typeMap) + => WriteStorageMap(typeMap.Hasher.Value.ToString(), typeMap.Key.Value, typeMap.Value.Value, typeMap.Linked.Value); + + public static string WriteStorageMap(StorageEntryTypeMapV14 typeMap, MetadataV14 metadataV14) + { + return WriteStorageMap( + typeMap.Hashers.Value.First().Value.ToString(), + WriteStorageKey(typeMap, metadataV14), + WriteStorageValue(typeMap, metadataV14), null); + } + + public static string WriteStorageKey(StorageEntryTypeMapV14 typeMap, MetadataV14 metadataV14) + { + return WriteStorage(metadataV14.RuntimeMetadataData.Lookup, typeMap.Key.Value); + } + + public static string WriteStorageValue(StorageEntryTypeMapV14 typeMap, MetadataV14 metadataV14) + { + return WriteStorage(metadataV14.RuntimeMetadataData.Lookup, typeMap.Value.Value); + } + + private static string WriteStorage(PortableRegistry p, int index) + { + if (p.Value[index].Ty.TypeDef.Value2 is BaseEnum typeDefPrimitive) + { + return ConversionBuilder.HarmonizeTypeName(typeDefPrimitive.Value.ToString()); + } + else + { + if (p.Value[index].Ty.Path.Value.Count() == 0) + { + + } + else + { + return ConversionBuilder.HarmonizeTypeName(p.Value[index].Ty.Path.Value.Last().Value); + } + } + + return ""; + } + + public static string WriteStorageDoubleMap(StorageEntryTypeDoubleMapV9 doubleMap) + => WriteStorageDoubleMap(doubleMap.Key1.Value, doubleMap.Key1Hasher.Value.ToString(), doubleMap.Key2.Value, doubleMap.Key2Hasher.Value.ToString(), doubleMap.Value.Value); + + public static string WriteStorageDoubleMap(StorageEntryTypeDoubleMapV10 doubleMap) + => WriteStorageDoubleMap(doubleMap.Key1.Value, doubleMap.Key1Hasher.Value.ToString(), doubleMap.Key2.Value, doubleMap.Key2Hasher.Value.ToString(), doubleMap.Value.Value); + + public static string WriteStorageDoubleMap(StorageEntryTypeDoubleMapV11 doubleMap) + => WriteStorageDoubleMap(doubleMap.Key1.Value, doubleMap.Key1Hasher.Value.ToString(), doubleMap.Key2.Value, doubleMap.Key2Hasher.Value.ToString(), doubleMap.Value.Value); + + public static string WriteStorageNMap(StorageEntryTypeNMapV13 nMap) + { + var hasher = string.Join(",", nMap.Hashers.Value.Select(x => x.Value)); + var keyVec = string.Join(",", nMap.KeyVec.Value.Select(x => x.Value)); + return $"[Hashers = [{hasher} / Keys = {keyVec} / Value = {nMap.Value.Value}"; + } + + public override string ToString() + { + return $"{ModuleName}|{Type}|{PropName}|{ClassName}|{(FoundInV14 ? ClassNameMapped : "")}|{FoundInV14}|{(Index_v14_9110 is not null ? Index_v14_9110.Value : "")}"; + } + + public enum StorageType + { + Call, + Event, + Storage, + Constant, + Error + } + } +} diff --git a/Substrate.NET.Metadata/Conversion/MetadataConversionException.cs b/Substrate.NET.Metadata/Conversion/MetadataConversionException.cs new file mode 100644 index 0000000..7a27f2d --- /dev/null +++ b/Substrate.NET.Metadata/Conversion/MetadataConversionException.cs @@ -0,0 +1,17 @@ +namespace Substrate.NET.Metadata.Conversion +{ + public class MetadataConversionException : Exception + { + public MetadataConversionException() { } + + public MetadataConversionException(string message) + : base(message) + { + } + + public MetadataConversionException(string message, Exception inner) + : base(message, inner) + { + } + } +} diff --git a/Substrate.NET.Metadata/Substrate.NET.Metadata.csproj b/Substrate.NET.Metadata/Substrate.NET.Metadata.csproj index 81b8418..07b0997 100644 --- a/Substrate.NET.Metadata/Substrate.NET.Metadata.csproj +++ b/Substrate.NET.Metadata/Substrate.NET.Metadata.csproj @@ -1,7 +1,7 @@  - net6.0 + net8.0 enable enable diff --git a/Substrate.NET.Metadata/V11/MetadataV11.cs b/Substrate.NET.Metadata/V11/MetadataV11.cs index e60d92e..cd97146 100644 --- a/Substrate.NET.Metadata/V11/MetadataV11.cs +++ b/Substrate.NET.Metadata/V11/MetadataV11.cs @@ -1,4 +1,5 @@ using Substrate.NET.Metadata.Base; +using Substrate.NET.Metadata.V14; namespace Substrate.NET.Metadata.V11 { @@ -15,5 +16,11 @@ public MetadataV11(string hex) : base(hex) public override MetadataVersion Version => MetadataVersion.V11; public override string TypeName() => nameof(MetadataV11); + + public MetadataV14 ToMetadataV14() + { + //var res = new MetadataV14() + return null; + } } } diff --git a/Substrate.NET.Metadata/V11/ModuleMetadataV11.cs b/Substrate.NET.Metadata/V11/ModuleMetadataV11.cs index f9a0cca..37013fe 100644 --- a/Substrate.NET.Metadata/V11/ModuleMetadataV11.cs +++ b/Substrate.NET.Metadata/V11/ModuleMetadataV11.cs @@ -5,6 +5,9 @@ using Substrate.NetApi.Model.Types.Base; using Substrate.NetApi.Model.Types.Primitive; using System.Linq; +using Substrate.NET.Metadata.V14; +using Substrate.NET.Metadata.Base.Portable; +using Substrate.NET.Metadata.Conversion.Internal; namespace Substrate.NET.Metadata.V11 { @@ -62,5 +65,34 @@ public MetadataDifferentialModulesV11 ToDifferentialModule(CompareStatus status) Enumerable.Empty<(string, (CompareStatus, StorageEntryMetadataV11))>(), }; } + + public ModuleMetadataV14 ToModuleMetadataV14(ConversionBuilder conversionBuilder) + { + var result = new ModuleMetadataV14(); + + if(Storage.OptionFlag) + { + result.Storage = new BaseOpt(this.Storage.Value.ToStorageMetadataV14(conversionBuilder)); + } + //else + //{ + // result.Storage = new BaseOpt(); + //} + + if(Events.OptionFlag) + { + var eventsVariants = Events.Value.Value.Select(x => x.ToVariant(conversionBuilder)).ToArray(); + + var palletEvent = new PalletEventMetadataV14(); + palletEvent.ElemType = TType.From(conversionBuilder.AddEventRuntimeLookup(Name.Value, eventsVariants).Value); + result.Events = new BaseOpt(palletEvent); + } + + + //result.Errors = this.Errors + + + return result; + } } } \ No newline at end of file diff --git a/Substrate.NET.Metadata/V11/RuntimeMetadataV11.cs b/Substrate.NET.Metadata/V11/RuntimeMetadataV11.cs index 4b6e598..18010b7 100644 --- a/Substrate.NET.Metadata/V11/RuntimeMetadataV11.cs +++ b/Substrate.NET.Metadata/V11/RuntimeMetadataV11.cs @@ -1,11 +1,14 @@ -using Substrate.NetApi.Model.Types.Base; +using Substrate.NET.Metadata.Base.Portable; +using Substrate.NET.Metadata.Conversion.Internal; +using Substrate.NET.Metadata.V14; +using Substrate.NetApi.Model.Types.Base; namespace Substrate.NET.Metadata.V11 { public class RuntimeMetadataV11 : BaseType { - public BaseVec Modules { get; private set; } - public ExtrinsicMetadataV11 Extrinsic { get; private set; } + public BaseVec Modules { get; private set; } = default!; + public ExtrinsicMetadataV11 Extrinsic { get; private set; } = default!; public override void Decode(byte[] byteArray, ref int p) { @@ -25,6 +28,17 @@ public override byte[] Encode() throw new NotImplementedException(); } + public RuntimeMetadataV14 ToRuntimeMetadataV14() + { + var conversion = new ConversionBuilder(new List()); + + var res = new RuntimeMetadataV14(); + res.Modules = new BaseVec( + Modules.Value.Select(x => x.ToModuleMetadataV14(conversion)) + .ToArray()); + + return res; + } } } diff --git a/Substrate.NET.Metadata/V11/StorageEntryMetadataV11.cs b/Substrate.NET.Metadata/V11/StorageEntryMetadataV11.cs index c305234..7861f6f 100644 --- a/Substrate.NET.Metadata/V11/StorageEntryMetadataV11.cs +++ b/Substrate.NET.Metadata/V11/StorageEntryMetadataV11.cs @@ -1,5 +1,9 @@ using Substrate.NET.Metadata; using Substrate.NET.Metadata.Base; +using Substrate.NET.Metadata.Base.Portable; +using Substrate.NET.Metadata.Conversion; +using Substrate.NET.Metadata.Conversion.Internal; +using Substrate.NET.Metadata.V14; using Substrate.NetApi.Model.Types.Base; using Substrate.NetApi.Model.Types.Primitive; @@ -40,10 +44,44 @@ public override void Decode(byte[] byteArray, ref int p) TypeSize = p - start; } - public Str Name { get; private set; } - public BaseEnum StorageModifier { get; private set; } - public BaseEnumExt StorageType { get; private set; } - public ByteGetter StorageDefault { get; private set; } - public BaseVec Documentation { get; private set; } + public Str Name { get; private set; } = default!; + public BaseEnum StorageModifier { get; private set; } = default!; + public BaseEnumExt StorageType { get; private set; } = default!; + public ByteGetter StorageDefault { get; private set; } = default!; + public BaseVec Documentation { get; private set; } = default!; + + public StorageEntryMetadataV14 ToStorageEntryMetadataV14(ConversionBuilder conversionBuilder) + { + var mapStorageType = new BaseEnumExt(); + + if (StorageType.Value == Metadata.StorageType.TypeV9.Plain) + { + var val = StorageType.Value2 as Str; + //var idx = ConversionV14Helper.AddToLookup(lookup, val!.Value); + var index = conversionBuilder.BuildLookup(val!.Value); + + mapStorageType.Create(Metadata.StorageType.Type.Plain, TType.From(index.Value)); + } + else if (StorageType.Value == Metadata.StorageType.TypeV9.Map) + { + var map = (StorageEntryTypeMapV11)StorageType.Value2; + mapStorageType.Create(Metadata.StorageType.Type.Map, map.ToStorageEntryTypeMapV14(conversionBuilder)); + } + else + { + // DoubleMap and NMap exists but should never happened + throw new MetadataConversionException($"Error while converting StorageEntryMetadataV11. Received storage type {StorageType.Value} while should never happened"); + } + + var storageEntry = new StorageEntryMetadataV14( + name: Name, + storageModifier: StorageModifier, + storageType: mapStorageType, + storageDefault: StorageDefault, + documentation: Documentation + ); + + return storageEntry; + } } } \ No newline at end of file diff --git a/Substrate.NET.Metadata/V11/StorageMetadataV11.cs b/Substrate.NET.Metadata/V11/StorageMetadataV11.cs index 2684531..607b325 100644 --- a/Substrate.NET.Metadata/V11/StorageMetadataV11.cs +++ b/Substrate.NET.Metadata/V11/StorageMetadataV11.cs @@ -1,4 +1,7 @@ -using Substrate.NET.Metadata.V10; +using Substrate.NET.Metadata.Base.Portable; +using Substrate.NET.Metadata.Conversion.Internal; +using Substrate.NET.Metadata.V10; +using Substrate.NET.Metadata.V14; using Substrate.NetApi.Model.Types.Base; using Substrate.NetApi.Model.Types.Primitive; @@ -24,7 +27,17 @@ public override void Decode(byte[] byteArray, ref int p) TypeSize = p - start; } - public Str Prefix { get; private set; } - public BaseVec Entries { get; private set; } + public Str Prefix { get; private set; } = default!; + public BaseVec Entries { get; private set; } = default!; + + public PalletStorageMetadataV14 ToStorageMetadataV14(ConversionBuilder conversionBuilder) + { + var storage = new PalletStorageMetadataV14( + prefix: Prefix.Value, + entries: Entries.Value.Select(x => x.ToStorageEntryMetadataV14(conversionBuilder)) + ); + + return storage; + } } } \ No newline at end of file diff --git a/Substrate.NET.Metadata/V14/ModuleMetadataV14.cs b/Substrate.NET.Metadata/V14/ModuleMetadataV14.cs index 98c3e4e..6f00b59 100644 --- a/Substrate.NET.Metadata/V14/ModuleMetadataV14.cs +++ b/Substrate.NET.Metadata/V14/ModuleMetadataV14.cs @@ -41,13 +41,13 @@ public override void Decode(byte[] byteArray, ref int p) TypeSize = p - start; } - public Str Name { get; private set; } - public BaseOpt Storage { get; private set; } - public BaseOpt Calls { get; private set; } - public BaseOpt Events { get; private set; } - public BaseVec Constants { get; private set; } - public BaseOpt Errors { get; private set; } - public U8 Index { get; private set; } + public Str Name { get; internal set; } = default!; + public BaseOpt Storage { get; internal set; } = default!; + public BaseOpt Calls { get; internal set; } = default!; + public BaseOpt Events { get; internal set; } = default!; + public BaseVec Constants { get; internal set; } = default!; + public BaseOpt Errors { get; internal set; } = default!; + public U8 Index { get; internal set; } = default!; public MetadataDifferentialModulesV14 ToDifferentialModules(CompareStatus status, PortableRegistry lookup) { diff --git a/Substrate.NET.Metadata/V14/PalletMetadataV14.cs b/Substrate.NET.Metadata/V14/PalletMetadataV14.cs index 7b84e14..41d22d9 100644 --- a/Substrate.NET.Metadata/V14/PalletMetadataV14.cs +++ b/Substrate.NET.Metadata/V14/PalletMetadataV14.cs @@ -2,15 +2,24 @@ using Substrate.NET.Metadata.Base; using Substrate.NetApi.Model.Types.Base; using Substrate.NetApi.Model.Types.Primitive; +using System.Collections.Generic; using static Substrate.NET.Metadata.StorageType; namespace Substrate.NET.Metadata.V14 { public class PalletStorageMetadataV14 : BaseType { - public Str Prefix { get; private set; } + public PalletStorageMetadataV14() { } - public BaseVec Entries { get; private set; } + public PalletStorageMetadataV14(string prefix, IEnumerable entries) + { + Prefix = new Str(prefix); + Entries = new BaseVec(entries.ToArray()); + } + + public Str Prefix { get; private set; } = default!; + + public BaseVec Entries { get; private set; } = default!; public override byte[] Encode() { @@ -30,6 +39,17 @@ public override void Decode(byte[] byteArray, ref int p) public class StorageEntryMetadataV14 : BaseType, IMetadataName { + public StorageEntryMetadataV14() { } + + public StorageEntryMetadataV14(Str name, BaseEnum storageModifier, BaseEnumExt storageType, ByteGetter storageDefault, BaseVec documentation) + { + Name = name; + StorageModifier = storageModifier; + StorageType = storageType; + StorageDefault = storageDefault; + Documentation = documentation; + } + public override byte[] Encode() { throw new NotImplementedException(); @@ -57,18 +77,31 @@ public override void Decode(byte[] byteArray, ref int p) TypeSize = p - start; } - public Str Name { get; private set; } - public BaseEnum StorageModifier { get; private set; } - public BaseEnumExt StorageType { get; private set; } - public ByteGetter StorageDefault { get; private set; } - public BaseVec Documentation { get; private set; } + public Str Name { get; private set; } = default!; + public BaseEnum StorageModifier { get; private set; } = default!; + public BaseEnumExt StorageType { get; private set; } = default!; + public ByteGetter StorageDefault { get; private set; } = default!; + public BaseVec Documentation { get; private set; } = default!; } public class StorageEntryTypeMapV14 : BaseType { + public StorageEntryTypeMapV14() { } + + public StorageEntryTypeMapV14(BaseVec> hashers, TType key, TType value) + { + Hashers = hashers; + Key = key; + Value = value; + } + public override byte[] Encode() { - throw new NotImplementedException(); + var result = new List(); + result.AddRange(Hashers.Encode()); + result.AddRange(Key.Encode()); + result.AddRange(Value.Encode()); + return result.ToArray(); } public override void Decode(byte[] byteArray, ref int p) @@ -87,9 +120,9 @@ public override void Decode(byte[] byteArray, ref int p) TypeSize = p - start; } - public BaseVec> Hashers { get; private set; } - public TType Key { get; private set; } - public TType Value { get; private set; } + public BaseVec> Hashers { get; internal set; } = default!; + public TType Key { get; internal set; } = default!; + public TType Value { get; internal set; } = default!; } public class PalletCallMetadataV14 : BaseType, IMetadataName, IMetadataType @@ -109,7 +142,7 @@ public override void Decode(byte[] byteArray, ref int p) TypeSize = p - start; } - public TType ElemType { get; private set; } + public TType ElemType { get; private set; } = default!; public Str Name => new Str(ElemType.ToString()); } @@ -130,7 +163,7 @@ public override void Decode(byte[] byteArray, ref int p) TypeSize = p - start; } - public TType ElemType { get; private set; } + public TType ElemType { get; internal set; } = default!; public Str Name => new Str(ElemType.ToString()); } @@ -161,10 +194,10 @@ public override void Decode(byte[] byteArray, ref int p) TypeSize = p - start; } - public Str Name { get; private set; } - public TType ConstantType { get; private set; } - public ByteGetter ConstantValue { get; private set; } - public BaseVec Documentation { get; private set; } + public Str Name { get; internal set; } = default!; + public TType ConstantType { get; internal set; } = default!; + public ByteGetter ConstantValue { get; internal set; } = default!; + public BaseVec Documentation { get; internal set; } = default!; } public class PalletErrorMetadataV14 : BaseType, IMetadataName, IMetadataType @@ -184,7 +217,7 @@ public override void Decode(byte[] byteArray, ref int p) TypeSize = p - start; } - public TType ElemType { get; private set; } + public TType ElemType { get; internal set; } = default!; public Str Name => new Str(ElemType.ToString()); } } diff --git a/Substrate.NET.Metadata/V14/RuntimeMetadataV14.cs b/Substrate.NET.Metadata/V14/RuntimeMetadataV14.cs index 7fa1c46..c1da9b2 100644 --- a/Substrate.NET.Metadata/V14/RuntimeMetadataV14.cs +++ b/Substrate.NET.Metadata/V14/RuntimeMetadataV14.cs @@ -30,12 +30,12 @@ public override void Decode(byte[] byteArray, ref int p) TypeSize = p - start; } - public PortableRegistry Lookup { get; private set; } + public PortableRegistry Lookup { get; internal set; } - public BaseVec Modules { get; private set; } + public BaseVec Modules { get; internal set; } - public ExtrinsicMetadataV14 Extrinsic { get; private set; } + public ExtrinsicMetadataV14 Extrinsic { get; internal set; } - public TType TypeId { get; private set; } + public TType TypeId { get; internal set; } } } diff --git a/Substrate.NET.Metadata/V9/PalletConstantMetadataV9.cs b/Substrate.NET.Metadata/V9/PalletConstantMetadataV9.cs index 8b8d05f..079b573 100644 --- a/Substrate.NET.Metadata/V9/PalletConstantMetadataV9.cs +++ b/Substrate.NET.Metadata/V9/PalletConstantMetadataV9.cs @@ -1,6 +1,10 @@ using Substrate.NET.Metadata.Base; +using Substrate.NET.Metadata.Base.Portable; +using Substrate.NET.Metadata.Conversion; +using Substrate.NET.Metadata.V14; using Substrate.NetApi.Model.Types.Base; using Substrate.NetApi.Model.Types.Primitive; +using System.Diagnostics; namespace Substrate.NET.Metadata.V9 { @@ -32,5 +36,17 @@ public override void Decode(byte[] byteArray, ref int p) Documentation.Decode(byteArray, ref p); TypeSize = p - num; } + + public PalletConstantMetadataV14 ToPalletConstantMetadataV14(PortableRegistry lookup) + { + var result = new PalletConstantMetadataV14(); + + result.Name = this.Name; + result.ConstantValue = this.Value; + result.ConstantType = ConversionV14Helper.AddToLookup(lookup, this.ConstantType.Value); + result.Documentation = this.Documentation; + + return result; + } } } diff --git a/Substrate.NET.Metadata/V9/PalletErrorMetadataV9.cs b/Substrate.NET.Metadata/V9/PalletErrorMetadataV9.cs index 8e8ce50..bc33565 100644 --- a/Substrate.NET.Metadata/V9/PalletErrorMetadataV9.cs +++ b/Substrate.NET.Metadata/V9/PalletErrorMetadataV9.cs @@ -1,4 +1,7 @@ using Substrate.NET.Metadata.Base; +using Substrate.NET.Metadata.Base.Portable; +using Substrate.NET.Metadata.Conversion; +using Substrate.NET.Metadata.V14; using Substrate.NetApi.Model.Types.Base; using Substrate.NetApi.Model.Types.Primitive; @@ -26,5 +29,14 @@ public override void Decode(byte[] byteArray, ref int p) TypeSize = p - num; } + + public PalletErrorMetadataV14 ToPalletErrorMetadataV14(PortableRegistry lookup) + { + var result = new PalletErrorMetadataV14(); + + result.ElemType = ConversionV14Helper.AddToLookup(lookup, null); + + return result; + } } } diff --git a/Substrate.NET.Metadata/V9/PalletEventMetadataV9.cs b/Substrate.NET.Metadata/V9/PalletEventMetadataV9.cs index 0adf075..d5e248f 100644 --- a/Substrate.NET.Metadata/V9/PalletEventMetadataV9.cs +++ b/Substrate.NET.Metadata/V9/PalletEventMetadataV9.cs @@ -1,4 +1,5 @@ using Substrate.NET.Metadata.Base; +using Substrate.NET.Metadata.Conversion.Internal; using Substrate.NetApi.Model.Types.Base; using Substrate.NetApi.Model.Types.Primitive; @@ -30,5 +31,20 @@ public override void Decode(byte[] byteArray, ref int p) public Str Name { get; set; } public BaseVec Args { get; set; } public BaseVec Docs { get; set; } + + public Variant ToVariant(ConversionBuilder conversionBuilder) + { + var res = new Variant(); + + res.Name = Name; + res.Docs = Docs; + + var argsType = Args.Value.Select(x => new { Name = x, TypeId = conversionBuilder.BuildLookup(x.Value) }); + res.VariantFields = new BaseVec( + argsType.Select(x => new Field(new BaseOpt(x.Name), TType.From(x.TypeId.Value), new BaseOpt(), new BaseVec()) + ).ToArray()); + + return res; + } } } From b810cbaabfd5a0250a7011e78f0522cb962af8ff Mon Sep 17 00:00:00 2001 From: Apolixit Date: Wed, 21 Aug 2024 19:38:46 +0200 Subject: [PATCH 03/15] WIP 3 pallets ok --- .../Conversion/ConversionBuilderTest.cs | 29 +++- .../Base/Portable/TypePortableForm.cs | 12 +- .../Base/StorageEntryTypeDoubleMap.cs | 9 +- .../Base/StorageEntryTypeMap.cs | 7 +- .../Base/StorageEntryTypeNMap.cs | 6 +- Substrate.NET.Metadata/Base/TypeDefs.cs | 32 +++- Substrate.NET.Metadata/Base/Variant.cs | 7 +- .../Conversion/Internal/ConversionBuilder.cs | 148 ++++++++++++------ .../Internal/ConversionBuilderTree.cs | 25 ++- .../Conversion/Internal/ConversionUtils.cs | 29 ++++ .../Conversion/Internal/NodeBuilderType.cs | 3 +- .../Conversion/Internal/SearchV14.cs | 59 ++++++- .../V10/ModuleMetadataV10.cs | 9 +- .../V10/RuntimeMetadataV10.cs | 7 +- .../V10/StorageEntryMetadataV10.cs | 9 +- .../V10/StorageMetadataV10.cs | 6 +- .../V11/ExtrinsicMetadataV11.cs | 5 +- .../V11/ModuleMetadataV11.cs | 74 ++++++--- .../V11/RuntimeMetadataV11.cs | 8 +- .../V11/StorageMetadataV11.cs | 5 +- .../V12/ModuleMetadataV12.cs | 10 +- .../V12/RuntimeMetadataV12.cs | 5 +- .../V13/ModuleMetadataV13.cs | 10 +- .../V13/RuntimeMetadataV13.cs | 5 +- .../V13/StorageEntryMetadataV13.cs | 8 +- .../V13/StorageMetadataV13.cs | 5 +- .../V14/ExtrinsicMetadataV14.cs | 6 +- .../V14/ModuleMetadataV14.cs | 10 +- .../V14/PalletMetadataV14.cs | 34 +++- .../V14/RuntimeMetadataV14.cs | 7 +- .../V14/SignedExtensionMetadataV14.cs | 6 +- .../V15/ModuleMetadataV15.cs | 11 +- .../V15/RuntimeApiMetadataV15.cs | 6 +- .../V15/RuntimeApiMethodMetadataV15.cs | 8 +- .../V15/RuntimeApiMethodParamMetadataV15.cs | 5 +- .../V15/RuntimeMetadataV15.cs | 9 +- Substrate.NET.Metadata/V9/ModuleMetadataV9.cs | 9 +- .../V9/PalletConstantMetadataV9.cs | 13 +- .../V9/PalletErrorMetadataV9.cs | 25 ++- .../V9/PalletEventMetadataV9.cs | 11 +- .../V9/RuntimeMetadataV9.cs | 5 +- .../V9/StorageEntryMetadataV9.cs | 8 +- .../V9/StorageMetadataV9.cs | 5 +- 43 files changed, 569 insertions(+), 141 deletions(-) create mode 100644 Substrate.NET.Metadata/Conversion/Internal/ConversionUtils.cs diff --git a/Substrate.NET.Metadata.Tests/Conversion/ConversionBuilderTest.cs b/Substrate.NET.Metadata.Tests/Conversion/ConversionBuilderTest.cs index 0d3653f..1a20eda 100644 --- a/Substrate.NET.Metadata.Tests/Conversion/ConversionBuilderTest.cs +++ b/Substrate.NET.Metadata.Tests/Conversion/ConversionBuilderTest.cs @@ -41,23 +41,40 @@ public void GetNode_FromPrimitive_ShouldSucceed(string primitiveType) } [Test] - + [TestCase("schnorrkel::Randomness", 1, 2)] + [TestCase("[u8;32]", 1, 2)] + [TestCase("Vec<(AuthorityId, BabeAuthorityWeight)>", 367, 7)] + [TestCase("AuthorityId", 137, 4)] + [TestCase("TaskAddress", 29, 2)] + [TestCase("Option>", 30, 3)] + [TestCase("Vec<(T::BlockNumber, EventIndex)>", 105, 3)] + [TestCase("Vec<(EraIndex, SessionIndex)>", 105, 3)] + [TestCase("AccountInfo", 3, 4)] + [TestCase("u32", 4, 1)] + [TestCase("ExtrinsicsWeight", 7, 2)] // Should be bound with PerDispatchClass [TestCase("DispatchInfo", 22, 4)] [TestCase("Weight", 8, 1)] [TestCase("T::BlockNumber", 4, 1)] [TestCase("T::AccountId", 0, 3)] - [TestCase("AccountInfo", 3, 10)] [TestCase("Vec", 55, 4)] [TestCase("BalanceOf", 6, 1)] - [TestCase("U32", 4, 1)] - [TestCase("Vec<(EraIndex, SessionIndex)>", 105, 4)] //[TestCase("Vec>", 22, 4)] public void GetIndex_FromComposite_ShouldSucceed(string rustType, int indexExpected, int lengthExpected) { var res = _builder.BuildLookup(rustType); - Assert.That(res.Value, Is.EqualTo(indexExpected)); - Assert.That(_builder.PortableTypes.Count, Is.EqualTo(lengthExpected)); + Assert.That(res.Value, Is.EqualTo(indexExpected), "Index are not equals"); + Assert.That(_builder.PortableTypes.Count, Is.EqualTo(lengthExpected), "Portable elements are not equals"); + + var elementState = _builder.ElementsState.Single(x => x.ClassName.ToLower() == rustType.ToLower()); + Assert.That(elementState.IsSuccessfullyMapped, Is.True); + } + + [Test] + [TestCase("Vec>")] + public void BuildNode_ShouldSucceed(string rustType) + { + Assert.Fail(); } [Test] diff --git a/Substrate.NET.Metadata/Base/Portable/TypePortableForm.cs b/Substrate.NET.Metadata/Base/Portable/TypePortableForm.cs index f55d85e..151f051 100644 --- a/Substrate.NET.Metadata/Base/Portable/TypePortableForm.cs +++ b/Substrate.NET.Metadata/Base/Portable/TypePortableForm.cs @@ -25,7 +25,12 @@ internal TypePortableForm(Path path, public override byte[] Encode() { - throw new NotImplementedException(); + var result = new List(); + result.AddRange(Path.Encode()); + result.AddRange(TypeParams.Encode()); + result.AddRange(TypeDef.Encode()); + result.AddRange(Docs.Encode()); + return result.ToArray(); } public override void Decode(byte[] byteArray, ref int p) @@ -107,7 +112,10 @@ public TypeParameter(Str name, BaseOpt typeParameterType) public override byte[] Encode() { - throw new NotImplementedException(); + var result = new List(); + result.AddRange(Name.Encode()); + result.AddRange(TypeParameterType.Encode()); + return result.ToArray(); } public override void Decode(byte[] byteArray, ref int p) diff --git a/Substrate.NET.Metadata/Base/StorageEntryTypeDoubleMap.cs b/Substrate.NET.Metadata/Base/StorageEntryTypeDoubleMap.cs index 3e4a522..c78371b 100644 --- a/Substrate.NET.Metadata/Base/StorageEntryTypeDoubleMap.cs +++ b/Substrate.NET.Metadata/Base/StorageEntryTypeDoubleMap.cs @@ -5,6 +5,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; +using System.Xml.Linq; namespace Substrate.NET.Metadata.Base { @@ -25,7 +26,13 @@ public class StorageEntryTypeDoubleMap : BaseType public override byte[] Encode() { - throw new NotImplementedException(); + var result = new List(); + result.AddRange(Key1Hasher.Encode()); + result.AddRange(Key1.Encode()); + result.AddRange(Key2.Encode()); + result.AddRange(Value.Encode()); + result.AddRange(Key2Hasher.Encode()); + return result.ToArray(); } public override void Decode(byte[] byteArray, ref int p) diff --git a/Substrate.NET.Metadata/Base/StorageEntryTypeMap.cs b/Substrate.NET.Metadata/Base/StorageEntryTypeMap.cs index 1fe2a1b..b9cf053 100644 --- a/Substrate.NET.Metadata/Base/StorageEntryTypeMap.cs +++ b/Substrate.NET.Metadata/Base/StorageEntryTypeMap.cs @@ -24,7 +24,12 @@ public abstract class StorageEntryTypeMap : BaseType public override byte[] Encode() { - throw new NotImplementedException(); + var result = new List(); + result.AddRange(Hasher.Encode()); + result.AddRange(Key.Encode()); + result.AddRange(Value.Encode()); + result.AddRange(Linked.Encode()); + return result.ToArray(); } public override void Decode(byte[] byteArray, ref int p) diff --git a/Substrate.NET.Metadata/Base/StorageEntryTypeNMap.cs b/Substrate.NET.Metadata/Base/StorageEntryTypeNMap.cs index d1e02bb..bacf185 100644 --- a/Substrate.NET.Metadata/Base/StorageEntryTypeNMap.cs +++ b/Substrate.NET.Metadata/Base/StorageEntryTypeNMap.cs @@ -23,7 +23,11 @@ public class StorageEntryTypeNMap : BaseType public override byte[] Encode() { - throw new NotImplementedException(); + var result = new List(); + result.AddRange(Hashers.Encode()); + result.AddRange(KeyVec.Encode()); + result.AddRange(Value.Encode()); + return result.ToArray(); } public override void Decode(byte[] byteArray, ref int p) diff --git a/Substrate.NET.Metadata/Base/TypeDefs.cs b/Substrate.NET.Metadata/Base/TypeDefs.cs index 39cf896..590a810 100644 --- a/Substrate.NET.Metadata/Base/TypeDefs.cs +++ b/Substrate.NET.Metadata/Base/TypeDefs.cs @@ -1,7 +1,9 @@ using Newtonsoft.Json; +using Newtonsoft.Json.Linq; using Substrate.NetApi; using Substrate.NetApi.Model.Types; using Substrate.NetApi.Model.Types.Base; +using Substrate.NetApi.Model.Types.Metadata.V14; using Substrate.NetApi.Model.Types.Primitive; namespace Substrate.NET.Metadata.Base @@ -92,7 +94,9 @@ public class TypeDefComposite : BaseType public override byte[] Encode() { - throw new NotImplementedException(); + var result = new List(); + result.AddRange(Fields.Encode()); + return result.ToArray(); } public override void Decode(byte[] byteArray, ref int p) @@ -114,7 +118,9 @@ public class TypeDefVariant : BaseType public override byte[] Encode() { - throw new NotImplementedException(); + var result = new List(); + result.AddRange(TypeParam.Encode()); + return result.ToArray(); } public override void Decode(byte[] byteArray, ref int p) @@ -136,7 +142,9 @@ public class TypeDefSequence : BaseType, IMetadataType public override byte[] Encode() { - throw new NotImplementedException(); + var result = new List(); + result.AddRange(ElemType.Encode()); + return result.ToArray(); } public override void Decode(byte[] byteArray, ref int p) @@ -158,7 +166,10 @@ public class TypeDefArray : BaseType, IMetadataType public override byte[] Encode() { - throw new NotImplementedException(); + var result = new List(); + result.AddRange(Len.Encode()); + result.AddRange(ElemType.Encode()); + return result.ToArray(); } public override void Decode(byte[] byteArray, ref int p) @@ -184,7 +195,9 @@ public class TypeDefTuple : BaseType public override byte[] Encode() { - throw new NotImplementedException(); + var result = new List(); + result.AddRange(Fields.Encode()); + return result.ToArray(); } public override void Decode(byte[] byteArray, ref int p) @@ -254,7 +267,9 @@ public class TypeDefCompact : BaseType, IMetadataType public override byte[] Encode() { - throw new NotImplementedException(); + var result = new List(); + result.AddRange(ElemType.Encode()); + return result.ToArray(); } public override void Decode(byte[] byteArray, ref int p) @@ -276,7 +291,10 @@ public class TypeDefBitSequence : BaseType public override byte[] Encode() { - throw new NotImplementedException(); + var result = new List(); + result.AddRange(BitStoreType.Encode()); + result.AddRange(BitOrderType.Encode()); + return result.ToArray(); } public override void Decode(byte[] byteArray, ref int p) diff --git a/Substrate.NET.Metadata/Base/Variant.cs b/Substrate.NET.Metadata/Base/Variant.cs index 509daf9..9235f34 100644 --- a/Substrate.NET.Metadata/Base/Variant.cs +++ b/Substrate.NET.Metadata/Base/Variant.cs @@ -20,7 +20,12 @@ public Variant(Str name, BaseVec variantFields, U8 index, BaseVec do public override byte[] Encode() { - throw new NotImplementedException(); + var result = new List(); + result.AddRange(Name.Encode()); + result.AddRange(VariantFields.Encode()); + result.AddRange(Index.Encode()); + result.AddRange(Docs.Encode()); + return result.ToArray(); } public override void Decode(byte[] byteArray, ref int p) diff --git a/Substrate.NET.Metadata/Conversion/Internal/ConversionBuilder.cs b/Substrate.NET.Metadata/Conversion/Internal/ConversionBuilder.cs index a6a331b..509dbd6 100644 --- a/Substrate.NET.Metadata/Conversion/Internal/ConversionBuilder.cs +++ b/Substrate.NET.Metadata/Conversion/Internal/ConversionBuilder.cs @@ -8,6 +8,7 @@ using System.Collections.Generic; using System.Linq; using System.Net.Mime; +using System.Reflection; using System.Runtime.CompilerServices; using System.Text; using System.Text.RegularExpressions; @@ -26,36 +27,76 @@ namespace Substrate.NET.Metadata.Conversion.Internal { + public class ConversionElementState + { + public ConversionElementState(string className, NodeBuilderType nodeBuilderType) + { + ClassName = className; + NodeBuilderType = nodeBuilderType; + } + + public string ClassName { get; set; } + public NodeBuilderType NodeBuilderType { get; set; } + public uint? IndexFoundInV14 { get; set; } + public uint? IndexCreated { get; set; } + + public bool IsSuccessfullyMapped + { + get + { + return IndexFoundInV14 != null || IndexCreated != null; + } + } + + public override string ToString() + { + return $"{ClassName} (=> {NodeBuilderType.Adapted}) | V14 = {IndexFoundInV14} | CustomIndex = {IndexCreated} | Mapped = {IsSuccessfullyMapped}"; + } + } + public class ConversionBuilder { public List PortableTypes { get; init; } + public List ElementsState { get; init; } + public const int START_INDEX = 1_000; public ConversionBuilder(List portableTypes) { PortableTypes = portableTypes; + ElementsState = new List(); } - //private PortableType[] Push(this PortableType[] pt, PortableType p) - //{ - // var list = pt.ToList(); - // list.Add(p); - - // return list.ToArray(); - //} + /// + /// Conversion that are not handle by the because it is not necessary or too complex + /// + public static List UnhandleConversion = new List() + { + "Vec::Call, T::BlockNumber>>>" // Pallet scheduler => Storage => Agenda + }; public U32 GetNewIndex() { - var max = PortableTypes.Max(x => x.Id); - - if (max is null) return new U32(0); - return new U32(max.Value + 1); + if (!PortableTypes.Any()) return new U32(START_INDEX); + return new U32(Math.Max(START_INDEX, PortableTypes.Max(x => x.Id.Value) + 1)); } public U32 BuildLookup(string className) { - var portableType = GetNodeFromV14(className) ?? CreateNode(className, GetNewIndex()); + if (UnhandleConversion.Contains(className)) return new U32(0); // Ok this is bad + + var founded = GetNodeFromV14(className); + + if(founded != null) + { + ElementsState[^1].IndexFoundInV14 = founded.Id.Value; + return founded.Id; + } + + var portableType = CreateNode(className, GetNewIndex()); + ElementsState[^1].IndexCreated = portableType.Id.Value; return portableType.Id; + } /// @@ -65,8 +106,18 @@ public U32 BuildLookup(string className) /// public PortableType? GetNodeFromV14(string className) { - var nodeType = ConversionBuilderTree.Build(new NodeBuilderTypeUndefined(className)); + var nodeRaw = new NodeBuilderTypeUndefined(className); + + // Node like events has do not have to be seached in V14 + if (nodeRaw.IndexHardBinding != null) + { + ElementsState.Add(new ConversionElementState(className, nodeRaw)); + return LoopFromV14((int)nodeRaw.IndexHardBinding!); + } + + var nodeType = ConversionBuilderTree.Build(nodeRaw); var index = SearchV14.FindIndexByNode(nodeType); + ElementsState.Add(new ConversionElementState(className, nodeType)); if (index == null) return null; @@ -76,8 +127,11 @@ public U32 BuildLookup(string className) public PortableType LoopFromV14(int index) { var portableType = SearchV14.FindTypeByIndex(index); - PortableTypes.Add(portableType); + var alreadyInserted = PortableTypes.SingleOrDefault(x => x.Id.Value == index); + + if (alreadyInserted != null) return alreadyInserted; + PortableTypes.Add(portableType); switch(portableType.Ty.TypeDef.Value) { case TypeDefEnum.Composite: @@ -139,6 +193,7 @@ public PortableType LoopFromV14(int index) /// public static PortableType CreateNode(string className, U32 currentMaxIndex) { + var tpf = new TypePortableForm(); if (ExtractPrimitive(className) is TypeDefPrimitive prim) @@ -467,28 +522,31 @@ public static string CustomMapping(string className) }; } - //public static int? TryHardBinding(string className) - //{ - // return className switch - // { - // "u8" => 2, - // "u16" => 73, - // "u32" => 4, - // "u64" => 8, - // "u128" => 6, - // "bool" => 58, - // "Str" => 108, - // "Vec>>" => 386, - // "LockIdentifier" => 125, - // "[u8;8]" => 125, - // _ => null - // }; - //} + + /// + /// Create a pallet runtime events + /// + /// + /// + /// public U32 AddEventRuntimeLookup(string palletName, Variant[] variants) + => AddRuntimeLookup("Event", palletName, variants); + + public U32 AddErrorRuntimeLookup(string palletName, Variant[] variants) + => AddRuntimeLookup("Error", palletName, variants); + + /// + /// Create a pallet runtime events / calls / errors / constants + /// + /// + /// + /// + /// + private U32 AddRuntimeLookup(string objType, string palletName, Variant[] variants) { var path = new Base.Portable.Path(); - path.Create(new List() { palletName, "pallet", "Event" }.Select(x => new Str(x)).ToArray()); + path.Create(new List() { palletName, "pallet", objType }.Select(x => new Str(x)).ToArray()); var typeParams = new BaseVec([ new TypeParameter(new Str("T"), new BaseOpt()) @@ -521,22 +579,24 @@ public PalletEventMetadataV14 ConvertToEventV14(string eventName, string eventTy return res; } - public PalletConstantMetadataV14 ConvertToConstantV14(string constantName, string constantType, ByteGetter defaultValue) - { - var res = new PalletConstantMetadataV14(); - res.Name = new Str(constantName); - res.ConstantValue = defaultValue; - res.ConstantType = TType.From(BuildLookup(constantType).Value); + public uint GetStorageEventIndex() => SearchV14.HardIndexBinding("Vec>").Value; - return res; + public void ClearEventBlockchainRuntimeEvent() + { + var portableType = LoopFromV14(SearchV14.PolkadotRuntimeEventIndex); + var tdv = portableType.Ty.TypeDef.Value2 as TypeDefVariant; + tdv.TypeParam = new BaseVec(new Variant[0]); } - - public PalletErrorMetadataV14 ConvertToErrorV14(string errorName) + public void AddPalletEventBlockchainRuntimeEvent(Variant variant) { - var res = new PalletErrorMetadataV14(); - res.ElemType = TType.From(BuildLookup(errorName).Value); + var portableType = LoopFromV14(SearchV14.PolkadotRuntimeEventIndex); - return res; + var tdv = portableType.Ty.TypeDef.Value2 as TypeDefVariant; + + var list = tdv.TypeParam.Value.ToList(); + list.Add(variant); + + tdv.TypeParam = new BaseVec(list.ToArray()); } } } diff --git a/Substrate.NET.Metadata/Conversion/Internal/ConversionBuilderTree.cs b/Substrate.NET.Metadata/Conversion/Internal/ConversionBuilderTree.cs index 7780219..be33d52 100644 --- a/Substrate.NET.Metadata/Conversion/Internal/ConversionBuilderTree.cs +++ b/Substrate.NET.Metadata/Conversion/Internal/ConversionBuilderTree.cs @@ -1,5 +1,6 @@ using Substrate.NET.Metadata.Base; using Substrate.NET.Metadata.Base.Portable; +using Substrate.NetApi.Model.Meta; using System; using System.Collections.Generic; using System.Linq; @@ -82,9 +83,8 @@ public static NodeBuilderType Build(NodeBuilderType nodeBuilderType) { var content = HarmonizeTypeName(nodeBuilderType.Adapted); nodeBuilderType = new NodeBuilderTypeComposite( - SearchV14.HardBinding( - HarmonizeTypeName(nodeBuilderType.Adapted)), - nodeBuilderType.Adapted); + SearchV14.HardBinding(content), + nodeBuilderType.Raw); } if (nodeBuilderType.Children.Count > 0) @@ -137,6 +137,8 @@ public static NodeBuilderType Build(NodeBuilderType nodeBuilderType) var splitted = className.Split(new[] { "," }, StringSplitOptions.None).Select(x => x.Trim()).ToList(); result.AddRange(splitted); + if (splitted.Any(x => x.Contains("("))) return null; + if (splitted.Count > 1) { List indexBracketOpen = new(); @@ -243,6 +245,8 @@ public static NodeBuilderType Build(NodeBuilderType nodeBuilderType) var array = new NodeBuilderTypeArray(className, int.Parse(match.Groups[2].Value)); array.Children.Add(new NodeBuilderTypeUndefined(match.Groups[1].Value)); + + return array; } return null; @@ -355,15 +359,25 @@ public static (string key, string value)? ExtractMap(string className) NodeBuilderType result = typeDef switch { TypeDefEnum.Sequence => new NodeBuilderTypeSequence(className), + TypeDefEnum.Variant => new NodeBuilderTypeVariant(className), TypeDefEnum.Composite => new NodeBuilderTypeComposite( SearchV14.HardBinding(match.Groups[1].Value), - match.Groups[1].Value), + className), _ => throw new MetadataConversionException($"TypeDef {typeDef} is not handled") }; if (!GenericValueToIgnore.Contains(genericParameters)) { - result.Children.Add(new NodeBuilderTypeUndefined(genericParameters)); + if (ExtractParameters(genericParameters) is List parameters) + { + foreach (var param in parameters) + { + result.Children.Add(new NodeBuilderTypeUndefined(param)); + } + } else + { + result.Children.Add(new NodeBuilderTypeUndefined(genericParameters)); + } } return result; @@ -393,6 +407,7 @@ public static TypeDefEnum GetTypeDefFromString(string genericType) return genericType switch { "Vec" => TypeDefEnum.Sequence, + "Option" => TypeDefEnum.Variant, _ => TypeDefEnum.Composite }; } diff --git a/Substrate.NET.Metadata/Conversion/Internal/ConversionUtils.cs b/Substrate.NET.Metadata/Conversion/Internal/ConversionUtils.cs new file mode 100644 index 0000000..8023f69 --- /dev/null +++ b/Substrate.NET.Metadata/Conversion/Internal/ConversionUtils.cs @@ -0,0 +1,29 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Substrate.NET.Metadata.Conversion.Internal +{ + internal class ConversionUtils + { + internal static bool EndsWithArray(T[] array1, T[] array2) + { + if (array2.Length > array1.Length) + { + return false; + } + + for (int i = 0; i < array2.Length; i++) + { + if (!array1[array1.Length - array2.Length + i].Equals(array2[i])) + { + return false; + } + } + + return true; + } + } +} diff --git a/Substrate.NET.Metadata/Conversion/Internal/NodeBuilderType.cs b/Substrate.NET.Metadata/Conversion/Internal/NodeBuilderType.cs index 7076751..037209a 100644 --- a/Substrate.NET.Metadata/Conversion/Internal/NodeBuilderType.cs +++ b/Substrate.NET.Metadata/Conversion/Internal/NodeBuilderType.cs @@ -13,6 +13,7 @@ public abstract class NodeBuilderType public abstract TypeDefEnum TypeDef { get; } public string Adapted { get; set; } public string Raw { get; set; } + public uint? IndexHardBinding => SearchV14.HardIndexBinding(Adapted); protected NodeBuilderType(string content, string raw) { @@ -94,7 +95,7 @@ public NodeBuilderTypeArray(string content, int length): base(content, content) public int Length { get; set; } - public override TypeDefEnum TypeDef => TypeDefEnum.Tuple; + public override TypeDefEnum TypeDef => TypeDefEnum.Array; } public class NodeBuilderTypeCompact : NodeBuilderType diff --git a/Substrate.NET.Metadata/Conversion/Internal/SearchV14.cs b/Substrate.NET.Metadata/Conversion/Internal/SearchV14.cs index 3b702c2..17f5713 100644 --- a/Substrate.NET.Metadata/Conversion/Internal/SearchV14.cs +++ b/Substrate.NET.Metadata/Conversion/Internal/SearchV14.cs @@ -4,6 +4,7 @@ using Substrate.NetApi.Model.Types.Base; using System; using System.Linq; +using System.Reflection.Metadata.Ecma335; namespace Substrate.NET.Metadata.Conversion.Internal { @@ -27,11 +28,32 @@ public static MetadataV14 MetadataV14 } } + public const int StorageEventIndex = 18; + public const int PolkadotRuntimeEventIndex = 20; + public static uint? HardIndexBinding(string type) + { + return type switch + { + "Vec>" => 18, + "TaskAddress" => 29, + "TaskAddress" => 29, + _ => null + }; + } + public static string HardBinding(string type) { return type switch { "BalanceOf" => "U128", + "ExtrinsicsWeight" => "PerDispatchClass", + "DigestOf" => "Digest", + "EventIndex" => "U32", + "Moment" => "U64", + //"AuthorityId" => "sr25519::Public", + "AuthorityId" => "sp_consensus_babe::app::Public", + "BabeAuthorityWeight" => "U64", + "schnorrkel::Randomness" => "[u8;32]", _ => type }; } @@ -107,7 +129,7 @@ public static PortableType FindTypeByIndex(int index) } else if (typeDef.Ty.TypeDef.Value2 is BaseEnum tdp) { - var index = FindIndexByClass(tdp.ToString()); + var index = FindIndexByClass(tdp.Value.ToString()); if (index == null) throw new MetadataConversionException($"Primitive {tdp} not found. Should never happened"); @@ -146,14 +168,20 @@ private static bool FoundAllChildren(List indexesToSearch, TypeDefTuple td foreach (var entry in storage.Entries.Value) { - if (entry.Name.Value == storageClass) - { - return ((CompactIntegerType)entry.StorageType.Value2).Value; - } + //if (entry.Name.Value == storageClass) + //{ + // return ((CompactIntegerType)entry.StorageType.Value2).Value; + //} if (entry.StorageType.Value == StorageType.Type.Plain) { var storagePlainIndex = entry.StorageType.Value2 as TType ?? throw new InvalidOperationException(); + var typeNode = MetadataV14.RuntimeMetadataData.Lookup.Value[storagePlainIndex.Value].Ty; + + if(typeNode.Path.Value.Any() && typeNode.Path.Value[^1].Value == storageClass) + { + return storagePlainIndex.Value; + } var typeDef = MetadataV14.RuntimeMetadataData.Lookup.Value[storagePlainIndex.Value].Ty.TypeDef; var storagePlainName = ""; if (typeDef.Value2 is BaseEnum typeDefPrimitive) @@ -224,8 +252,25 @@ private static bool FoundAllChildren(List indexesToSearch, TypeDefTuple td } } - // Last chance bro - //return StorageClass.TryHardBinding(storageClass); + var splitted = storageClass.Split("::"); + + foreach (var lookup in MetadataV14.RuntimeMetadataData.Lookup.Value) + { + + if(lookup.Ty.TypeDef.Value2 is BaseEnum prim && prim.Value.ToString().Equals(splitted[0], StringComparison.InvariantCultureIgnoreCase)) + { + return (int)lookup.Id.Value; + } + + var path = lookup.Ty.Path.Value; + if (path is not null && + path.Any() && + ConversionUtils.EndsWithArray(path.Select(x => x.Value).ToArray(), splitted)) + { + return (int)lookup.Id.Value; + } + } + return null; } } diff --git a/Substrate.NET.Metadata/V10/ModuleMetadataV10.cs b/Substrate.NET.Metadata/V10/ModuleMetadataV10.cs index 9a16a88..ce23e56 100644 --- a/Substrate.NET.Metadata/V10/ModuleMetadataV10.cs +++ b/Substrate.NET.Metadata/V10/ModuleMetadataV10.cs @@ -47,7 +47,14 @@ public override void Decode(byte[] byteArray, ref int p) public override byte[] Encode() { - throw new NotImplementedException(); + var result = new List(); + result.AddRange(Name.Encode()); + result.AddRange(Storage.Encode()); + result.AddRange(Calls.Encode()); + result.AddRange(Events.Encode()); + result.AddRange(Constants.Encode()); + result.AddRange(Errors.Encode()); + return result.ToArray(); } public MetadataDifferentialModulesV10 ToDifferentialModules(CompareStatus status) diff --git a/Substrate.NET.Metadata/V10/RuntimeMetadataV10.cs b/Substrate.NET.Metadata/V10/RuntimeMetadataV10.cs index c1519a7..92bd807 100644 --- a/Substrate.NET.Metadata/V10/RuntimeMetadataV10.cs +++ b/Substrate.NET.Metadata/V10/RuntimeMetadataV10.cs @@ -1,10 +1,13 @@ using Substrate.NET.Metadata.V9; +using Substrate.NetApi.Model.Meta; using Substrate.NetApi.Model.Types.Base; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; +using static System.Runtime.InteropServices.JavaScript.JSType; +using System.Xml.Linq; namespace Substrate.NET.Metadata.V10 { @@ -24,7 +27,9 @@ public override void Decode(byte[] byteArray, ref int p) public override byte[] Encode() { - throw new NotImplementedException(); + var result = new List(); + result.AddRange(Modules.Encode()); + return result.ToArray(); } } } diff --git a/Substrate.NET.Metadata/V10/StorageEntryMetadataV10.cs b/Substrate.NET.Metadata/V10/StorageEntryMetadataV10.cs index b7ded5e..b76339f 100644 --- a/Substrate.NET.Metadata/V10/StorageEntryMetadataV10.cs +++ b/Substrate.NET.Metadata/V10/StorageEntryMetadataV10.cs @@ -2,6 +2,7 @@ using Substrate.NetApi.Model.Types.Primitive; using Substrate.NET.Metadata.Base; using Substrate.NET.Metadata; +using System.Reflection; namespace Substrate.NET.Metadata.V10 { @@ -9,7 +10,13 @@ public class StorageEntryMetadataV10 : BaseType, IMetadataName { public override byte[] Encode() { - throw new NotImplementedException(); + var result = new List(); + result.AddRange(Name.Encode()); + result.AddRange(StorageModifier.Encode()); + result.AddRange(StorageType.Encode()); + result.AddRange(StorageDefault.Encode()); + result.AddRange(Documentation.Encode()); + return result.ToArray(); } public override void Decode(byte[] byteArray, ref int p) diff --git a/Substrate.NET.Metadata/V10/StorageMetadataV10.cs b/Substrate.NET.Metadata/V10/StorageMetadataV10.cs index 06abc91..2e9f9ee 100644 --- a/Substrate.NET.Metadata/V10/StorageMetadataV10.cs +++ b/Substrate.NET.Metadata/V10/StorageMetadataV10.cs @@ -1,6 +1,7 @@ using Substrate.NET.Metadata.V9; using Substrate.NetApi.Model.Types.Base; using Substrate.NetApi.Model.Types.Primitive; +using System.Xml.Linq; namespace Substrate.NET.Metadata.V10 { @@ -8,7 +9,10 @@ public class PalletStorageMetadataV10 : BaseType { public override byte[] Encode() { - throw new NotImplementedException(); + var result = new List(); + result.AddRange(Prefix.Encode()); + result.AddRange(Entries.Encode()); + return result.ToArray(); } public override void Decode(byte[] byteArray, ref int p) diff --git a/Substrate.NET.Metadata/V11/ExtrinsicMetadataV11.cs b/Substrate.NET.Metadata/V11/ExtrinsicMetadataV11.cs index ffcb11c..017934d 100644 --- a/Substrate.NET.Metadata/V11/ExtrinsicMetadataV11.cs +++ b/Substrate.NET.Metadata/V11/ExtrinsicMetadataV11.cs @@ -23,7 +23,10 @@ public override void Decode(byte[] byteArray, ref int p) public override byte[] Encode() { - throw new NotImplementedException(); + var result = new List(); + result.AddRange(Version.Encode()); + result.AddRange(SignedExtensions.Encode()); + return result.ToArray(); } } } diff --git a/Substrate.NET.Metadata/V11/ModuleMetadataV11.cs b/Substrate.NET.Metadata/V11/ModuleMetadataV11.cs index 37013fe..d63bb0d 100644 --- a/Substrate.NET.Metadata/V11/ModuleMetadataV11.cs +++ b/Substrate.NET.Metadata/V11/ModuleMetadataV11.cs @@ -47,7 +47,14 @@ public override void Decode(byte[] byteArray, ref int p) public override byte[] Encode() { - throw new NotImplementedException(); + var result = new List(); + result.AddRange(Name.Encode()); + result.AddRange(Storage.Encode()); + result.AddRange(Calls.Encode()); + result.AddRange(Events.Encode()); + result.AddRange(Constants.Encode()); + result.AddRange(Errors.Encode()); + return result.ToArray(); } public MetadataDifferentialModulesV11 ToDifferentialModule(CompareStatus status) @@ -66,33 +73,64 @@ public MetadataDifferentialModulesV11 ToDifferentialModule(CompareStatus status) }; } - public ModuleMetadataV14 ToModuleMetadataV14(ConversionBuilder conversionBuilder) + public ModuleMetadataV14 ToModuleMetadataV14(ConversionBuilder conversionBuilder, int index) { var result = new ModuleMetadataV14(); + result.Name = Name; + result.Index = new U8((byte)index); - if(Storage.OptionFlag) - { - result.Storage = new BaseOpt(this.Storage.Value.ToStorageMetadataV14(conversionBuilder)); - } - //else - //{ - // result.Storage = new BaseOpt(); - //} + // We do not do Calls conversion - if(Events.OptionFlag) + if (Events.OptionFlag) { - var eventsVariants = Events.Value.Value.Select(x => x.ToVariant(conversionBuilder)).ToArray(); + result.Events = ToPalletEventV14(conversionBuilder); + + var variantField = new Field( + name: new BaseOpt(), + fieldTy: result.Events.Value.ElemType, + fieldTypeName: new BaseOpt(new Str($"{Name.Value}::Event(new Str[0])); - var palletEvent = new PalletEventMetadataV14(); - palletEvent.ElemType = TType.From(conversionBuilder.AddEventRuntimeLookup(Name.Value, eventsVariants).Value); - result.Events = new BaseOpt(palletEvent); + var eventVariant = new Variant( + name: Name, + variantFields: new BaseVec(new Field[1] { variantField }), + index: new U8((byte)index), + docs: new BaseVec(new Str[0])); + + conversionBuilder.AddPalletEventBlockchainRuntimeEvent(eventVariant); } - - //result.Errors = this.Errors - + result.Errors = ToPalletErrorV14(conversionBuilder); + + result.Constants = new BaseVec(Constants.Value.Select(x => x.ToPalletConstantMetadataV14(conversionBuilder)).ToArray()); + + + if (Storage.OptionFlag) + { + result.Storage = new BaseOpt(this.Storage.Value.ToStorageMetadataV14(conversionBuilder)); + } return result; } + + private BaseOpt ToPalletErrorV14(ConversionBuilder conversionBuilder) + { + var errorsVariants = Errors.Value.Select((x, i) => x.ToVariant(conversionBuilder, i)).ToArray(); + var palletError = new PalletErrorMetadataV14(); + palletError.ElemType = TType.From(conversionBuilder.AddErrorRuntimeLookup(Name.Value, errorsVariants).Value); + return new BaseOpt(palletError); + } + + private BaseOpt ToPalletEventV14(ConversionBuilder conversionBuilder) + { + var eventsVariants = Events.Value.Value.Select((x, i) => x.ToVariant(conversionBuilder, i)).ToArray(); + + var palletEvent = new PalletEventMetadataV14(); + palletEvent.ElemType = TType.From(conversionBuilder.AddEventRuntimeLookup(Name.Value, eventsVariants).Value); + + return new BaseOpt(palletEvent); + } + + } } \ No newline at end of file diff --git a/Substrate.NET.Metadata/V11/RuntimeMetadataV11.cs b/Substrate.NET.Metadata/V11/RuntimeMetadataV11.cs index 18010b7..49ebea2 100644 --- a/Substrate.NET.Metadata/V11/RuntimeMetadataV11.cs +++ b/Substrate.NET.Metadata/V11/RuntimeMetadataV11.cs @@ -25,17 +25,21 @@ public override void Decode(byte[] byteArray, ref int p) public override byte[] Encode() { - throw new NotImplementedException(); + var result = new List(); + result.AddRange(Modules.Encode()); + result.AddRange(Extrinsic.Encode()); + return result.ToArray(); } public RuntimeMetadataV14 ToRuntimeMetadataV14() { var conversion = new ConversionBuilder(new List()); + conversion.ClearEventBlockchainRuntimeEvent(); var res = new RuntimeMetadataV14(); res.Modules = new BaseVec( - Modules.Value.Select(x => x.ToModuleMetadataV14(conversion)) + Modules.Value.Select((x, i) => x.ToModuleMetadataV14(conversion, i)) .ToArray()); return res; diff --git a/Substrate.NET.Metadata/V11/StorageMetadataV11.cs b/Substrate.NET.Metadata/V11/StorageMetadataV11.cs index 607b325..a01f487 100644 --- a/Substrate.NET.Metadata/V11/StorageMetadataV11.cs +++ b/Substrate.NET.Metadata/V11/StorageMetadataV11.cs @@ -11,7 +11,10 @@ public class PalletStorageMetadataV11 : BaseType { public override byte[] Encode() { - throw new NotImplementedException(); + var result = new List(); + result.AddRange(Prefix.Encode()); + result.AddRange(Entries.Encode()); + return result.ToArray(); } public override void Decode(byte[] byteArray, ref int p) diff --git a/Substrate.NET.Metadata/V12/ModuleMetadataV12.cs b/Substrate.NET.Metadata/V12/ModuleMetadataV12.cs index eeded31..16c2c27 100644 --- a/Substrate.NET.Metadata/V12/ModuleMetadataV12.cs +++ b/Substrate.NET.Metadata/V12/ModuleMetadataV12.cs @@ -48,7 +48,15 @@ public override void Decode(byte[] byteArray, ref int p) public override byte[] Encode() { - throw new NotImplementedException(); + var result = new List(); + result.AddRange(Name.Encode()); + result.AddRange(Storage.Encode()); + result.AddRange(Calls.Encode()); + result.AddRange(Events.Encode()); + result.AddRange(Constants.Encode()); + result.AddRange(Errors.Encode()); + result.AddRange(Index.Encode()); + return result.ToArray(); } public MetadataDifferentialModulesV12 ToDifferentialModules(CompareStatus status) diff --git a/Substrate.NET.Metadata/V12/RuntimeMetadataV12.cs b/Substrate.NET.Metadata/V12/RuntimeMetadataV12.cs index f1acd90..b001aa6 100644 --- a/Substrate.NET.Metadata/V12/RuntimeMetadataV12.cs +++ b/Substrate.NET.Metadata/V12/RuntimeMetadataV12.cs @@ -28,7 +28,10 @@ public override void Decode(byte[] byteArray, ref int p) public override byte[] Encode() { - throw new NotImplementedException(); + var result = new List(); + result.AddRange(Modules.Encode()); + result.AddRange(Extrinsic.Encode()); + return result.ToArray(); } } } diff --git a/Substrate.NET.Metadata/V13/ModuleMetadataV13.cs b/Substrate.NET.Metadata/V13/ModuleMetadataV13.cs index eab391a..17e6d22 100644 --- a/Substrate.NET.Metadata/V13/ModuleMetadataV13.cs +++ b/Substrate.NET.Metadata/V13/ModuleMetadataV13.cs @@ -48,7 +48,15 @@ public override void Decode(byte[] byteArray, ref int p) public override byte[] Encode() { - throw new NotImplementedException(); + var result = new List(); + result.AddRange(Name.Encode()); + result.AddRange(Storage.Encode()); + result.AddRange(Calls.Encode()); + result.AddRange(Events.Encode()); + result.AddRange(Constants.Encode()); + result.AddRange(Errors.Encode()); + result.AddRange(Index.Encode()); + return result.ToArray(); } public MetadataDifferentialModulesV13 ToDifferentialModules(CompareStatus status) diff --git a/Substrate.NET.Metadata/V13/RuntimeMetadataV13.cs b/Substrate.NET.Metadata/V13/RuntimeMetadataV13.cs index 731615b..4cdcc0f 100644 --- a/Substrate.NET.Metadata/V13/RuntimeMetadataV13.cs +++ b/Substrate.NET.Metadata/V13/RuntimeMetadataV13.cs @@ -29,7 +29,10 @@ public override void Decode(byte[] byteArray, ref int p) public override byte[] Encode() { - throw new NotImplementedException(); + var result = new List(); + result.AddRange(Modules.Encode()); + result.AddRange(Extrinsic.Encode()); + return result.ToArray(); } } } diff --git a/Substrate.NET.Metadata/V13/StorageEntryMetadataV13.cs b/Substrate.NET.Metadata/V13/StorageEntryMetadataV13.cs index 78f7bf2..0261b01 100644 --- a/Substrate.NET.Metadata/V13/StorageEntryMetadataV13.cs +++ b/Substrate.NET.Metadata/V13/StorageEntryMetadataV13.cs @@ -10,7 +10,13 @@ public class StorageEntryMetadataV13 : BaseType, IMetadataName { public override byte[] Encode() { - throw new NotImplementedException(); + var result = new List(); + result.AddRange(Name.Encode()); + result.AddRange(StorageModifier.Encode()); + result.AddRange(StorageType.Encode()); + result.AddRange(StorageDefault.Encode()); + result.AddRange(Documentation.Encode()); + return result.ToArray(); } public override void Decode(byte[] byteArray, ref int p) diff --git a/Substrate.NET.Metadata/V13/StorageMetadataV13.cs b/Substrate.NET.Metadata/V13/StorageMetadataV13.cs index fa85c53..91d6349 100644 --- a/Substrate.NET.Metadata/V13/StorageMetadataV13.cs +++ b/Substrate.NET.Metadata/V13/StorageMetadataV13.cs @@ -8,7 +8,10 @@ public class PalletStorageMetadataV13 : BaseType { public override byte[] Encode() { - throw new NotImplementedException(); + var result = new List(); + result.AddRange(Prefix.Encode()); + result.AddRange(Entries.Encode()); + return result.ToArray(); } public override void Decode(byte[] byteArray, ref int p) diff --git a/Substrate.NET.Metadata/V14/ExtrinsicMetadataV14.cs b/Substrate.NET.Metadata/V14/ExtrinsicMetadataV14.cs index 2cef652..e677859 100644 --- a/Substrate.NET.Metadata/V14/ExtrinsicMetadataV14.cs +++ b/Substrate.NET.Metadata/V14/ExtrinsicMetadataV14.cs @@ -8,7 +8,11 @@ public class ExtrinsicMetadataV14 : BaseType { public override byte[] Encode() { - throw new NotImplementedException(); + var result = new List(); + result.AddRange(ExtrinsicType.Encode()); + result.AddRange(Version.Encode()); + result.AddRange(SignedExtensions.Encode()); + return result.ToArray(); } public override void Decode(byte[] byteArray, ref int p) diff --git a/Substrate.NET.Metadata/V14/ModuleMetadataV14.cs b/Substrate.NET.Metadata/V14/ModuleMetadataV14.cs index 6f00b59..4822e32 100644 --- a/Substrate.NET.Metadata/V14/ModuleMetadataV14.cs +++ b/Substrate.NET.Metadata/V14/ModuleMetadataV14.cs @@ -10,7 +10,15 @@ public class ModuleMetadataV14 : BaseType, IMetadataName { public override byte[] Encode() { - throw new NotImplementedException(); + var result = new List(); + result.AddRange(Name.Encode()); + result.AddRange(Storage.Encode()); + result.AddRange(Calls.Encode()); + result.AddRange(Events.Encode()); + result.AddRange(Constants.Encode()); + result.AddRange(Errors.Encode()); + result.AddRange(Index.Encode()); + return result.ToArray(); } public override void Decode(byte[] byteArray, ref int p) diff --git a/Substrate.NET.Metadata/V14/PalletMetadataV14.cs b/Substrate.NET.Metadata/V14/PalletMetadataV14.cs index 41d22d9..de0227f 100644 --- a/Substrate.NET.Metadata/V14/PalletMetadataV14.cs +++ b/Substrate.NET.Metadata/V14/PalletMetadataV14.cs @@ -1,8 +1,10 @@ using Substrate.NET.Metadata; using Substrate.NET.Metadata.Base; +using Substrate.NetApi.Model.Extrinsics; using Substrate.NetApi.Model.Types.Base; using Substrate.NetApi.Model.Types.Primitive; using System.Collections.Generic; +using System.Net.Mime; using static Substrate.NET.Metadata.StorageType; namespace Substrate.NET.Metadata.V14 @@ -23,7 +25,10 @@ public PalletStorageMetadataV14(string prefix, IEnumerable(); + result.AddRange(Prefix.Encode()); + result.AddRange(Entries.Encode()); + return result.ToArray(); } public override void Decode(byte[] byteArray, ref int p) @@ -52,7 +57,13 @@ public StorageEntryMetadataV14(Str name, BaseEnum storageModifier, B public override byte[] Encode() { - throw new NotImplementedException(); + var result = new List(); + result.AddRange(Name.Encode()); + result.AddRange(StorageModifier.Encode()); + result.AddRange(StorageType.Encode()); + result.AddRange(StorageDefault.Encode()); + result.AddRange(Documentation.Encode()); + return result.ToArray(); } public override void Decode(byte[] byteArray, ref int p) @@ -129,7 +140,9 @@ public class PalletCallMetadataV14 : BaseType, IMetadataName, IMetadataType { public override byte[] Encode() { - throw new NotImplementedException(); + var result = new List(); + result.AddRange(ElemType.Encode()); + return result.ToArray(); } public override void Decode(byte[] byteArray, ref int p) @@ -150,7 +163,9 @@ public class PalletEventMetadataV14 : BaseType, IMetadataName, IMetadataType { public override byte[] Encode() { - throw new NotImplementedException(); + var result = new List(); + result.AddRange(ElemType.Encode()); + return result.ToArray(); } public override void Decode(byte[] byteArray, ref int p) @@ -172,7 +187,12 @@ public class PalletConstantMetadataV14 : BaseType, IMetadataName { public override byte[] Encode() { - throw new NotImplementedException(); + var result = new List(); + result.AddRange(Name.Encode()); + result.AddRange(ConstantType.Encode()); + result.AddRange(ConstantValue.Encode()); + result.AddRange(Documentation.Encode()); + return result.ToArray(); } public override void Decode(byte[] byteArray, ref int p) @@ -204,7 +224,9 @@ public class PalletErrorMetadataV14 : BaseType, IMetadataName, IMetadataType { public override byte[] Encode() { - throw new NotImplementedException(); + var result = new List(); + result.AddRange(ElemType.Encode()); + return result.ToArray(); } public override void Decode(byte[] byteArray, ref int p) diff --git a/Substrate.NET.Metadata/V14/RuntimeMetadataV14.cs b/Substrate.NET.Metadata/V14/RuntimeMetadataV14.cs index c1da9b2..573c87d 100644 --- a/Substrate.NET.Metadata/V14/RuntimeMetadataV14.cs +++ b/Substrate.NET.Metadata/V14/RuntimeMetadataV14.cs @@ -8,7 +8,12 @@ public class RuntimeMetadataV14 : BaseType { public override byte[] Encode() { - throw new NotImplementedException(); + var result = new List(); + result.AddRange(Lookup.Encode()); + result.AddRange(Modules.Encode()); + result.AddRange(Extrinsic.Encode()); + result.AddRange(TypeId.Encode()); + return result.ToArray(); } public override void Decode(byte[] byteArray, ref int p) diff --git a/Substrate.NET.Metadata/V14/SignedExtensionMetadataV14.cs b/Substrate.NET.Metadata/V14/SignedExtensionMetadataV14.cs index 3c42c50..f84ad61 100644 --- a/Substrate.NET.Metadata/V14/SignedExtensionMetadataV14.cs +++ b/Substrate.NET.Metadata/V14/SignedExtensionMetadataV14.cs @@ -13,7 +13,11 @@ public class SignedExtensionMetadataV14 : BaseType { public override byte[] Encode() { - throw new NotImplementedException(); + var result = new List(); + result.AddRange(SignedIdentifier.Encode()); + result.AddRange(SignedExtType.Encode()); + result.AddRange(AddSignedExtType.Encode()); + return result.ToArray(); } public override void Decode(byte[] byteArray, ref int p) diff --git a/Substrate.NET.Metadata/V15/ModuleMetadataV15.cs b/Substrate.NET.Metadata/V15/ModuleMetadataV15.cs index cd2f375..eb7d7b6 100644 --- a/Substrate.NET.Metadata/V15/ModuleMetadataV15.cs +++ b/Substrate.NET.Metadata/V15/ModuleMetadataV15.cs @@ -10,7 +10,16 @@ public class ModuleMetadataV15 : BaseType, IMetadataName { public override byte[] Encode() { - throw new NotImplementedException(); + var result = new List(); + result.AddRange(Name.Encode()); + result.AddRange(Storage.Encode()); + result.AddRange(Calls.Encode()); + result.AddRange(Events.Encode()); + result.AddRange(Constants.Encode()); + result.AddRange(Errors.Encode()); + result.AddRange(Index.Encode()); + result.AddRange(Docs.Encode()); + return result.ToArray(); } public override void Decode(byte[] byteArray, ref int p) diff --git a/Substrate.NET.Metadata/V15/RuntimeApiMetadataV15.cs b/Substrate.NET.Metadata/V15/RuntimeApiMetadataV15.cs index c3c0bd5..4d8d2bf 100644 --- a/Substrate.NET.Metadata/V15/RuntimeApiMetadataV15.cs +++ b/Substrate.NET.Metadata/V15/RuntimeApiMetadataV15.cs @@ -31,7 +31,11 @@ public override void Decode(byte[] byteArray, ref int p) public override byte[] Encode() { - throw new NotImplementedException(); + var result = new List(); + result.AddRange(Name.Encode()); + result.AddRange(Methods.Encode()); + result.AddRange(Docs.Encode()); + return result.ToArray(); } public Str Name { get; private set; } diff --git a/Substrate.NET.Metadata/V15/RuntimeApiMethodMetadataV15.cs b/Substrate.NET.Metadata/V15/RuntimeApiMethodMetadataV15.cs index d669edc..bf4cb7b 100644 --- a/Substrate.NET.Metadata/V15/RuntimeApiMethodMetadataV15.cs +++ b/Substrate.NET.Metadata/V15/RuntimeApiMethodMetadataV15.cs @@ -1,4 +1,5 @@ using Substrate.NET.Metadata.Base; +using Substrate.NetApi.Model.Extrinsics; using Substrate.NetApi.Model.Types.Base; using Substrate.NetApi.Model.Types.Primitive; using System; @@ -32,7 +33,12 @@ public override void Decode(byte[] byteArray, ref int p) public override byte[] Encode() { - throw new NotImplementedException(); + var result = new List(); + result.AddRange(Name.Encode()); + result.AddRange(Inputs.Encode()); + result.AddRange(Output.Encode()); + result.AddRange(Docs.Encode()); + return result.ToArray(); } public Str Name { get; private set; } diff --git a/Substrate.NET.Metadata/V15/RuntimeApiMethodParamMetadataV15.cs b/Substrate.NET.Metadata/V15/RuntimeApiMethodParamMetadataV15.cs index 55828b7..1a2c35d 100644 --- a/Substrate.NET.Metadata/V15/RuntimeApiMethodParamMetadataV15.cs +++ b/Substrate.NET.Metadata/V15/RuntimeApiMethodParamMetadataV15.cs @@ -26,7 +26,10 @@ public override void Decode(byte[] byteArray, ref int p) public override byte[] Encode() { - throw new NotImplementedException(); + var result = new List(); + result.AddRange(Name.Encode()); + result.AddRange(TypeId.Encode()); + return result.ToArray(); } public Str Name { get; private set; } diff --git a/Substrate.NET.Metadata/V15/RuntimeMetadataV15.cs b/Substrate.NET.Metadata/V15/RuntimeMetadataV15.cs index e22e0ec..6c994ff 100644 --- a/Substrate.NET.Metadata/V15/RuntimeMetadataV15.cs +++ b/Substrate.NET.Metadata/V15/RuntimeMetadataV15.cs @@ -1,6 +1,7 @@ using Substrate.NET.Metadata.Base; using Substrate.NET.Metadata.Base.Portable; using Substrate.NetApi.Model.Types.Base; +using System.Linq; namespace Substrate.NET.Metadata.V15 { @@ -8,7 +9,13 @@ public class RuntimeMetadataV15 : BaseType { public override byte[] Encode() { - throw new NotImplementedException(); + var result = new List(); + result.AddRange(Types.Encode()); + result.AddRange(Modules.Encode()); + result.AddRange(Extrinsic.Encode()); + result.AddRange(TypeId.Encode()); + result.AddRange(Apis.Encode()); + return result.ToArray(); } public override void Decode(byte[] byteArray, ref int p) diff --git a/Substrate.NET.Metadata/V9/ModuleMetadataV9.cs b/Substrate.NET.Metadata/V9/ModuleMetadataV9.cs index 43eb884..f9fdcda 100644 --- a/Substrate.NET.Metadata/V9/ModuleMetadataV9.cs +++ b/Substrate.NET.Metadata/V9/ModuleMetadataV9.cs @@ -44,7 +44,14 @@ public override void Decode(byte[] byteArray, ref int p) public override byte[] Encode() { - throw new NotImplementedException(); + var result = new List(); + result.AddRange(Name.Encode()); + result.AddRange(Storage.Encode()); + result.AddRange(Calls.Encode()); + result.AddRange(Events.Encode()); + result.AddRange(Constants.Encode()); + result.AddRange(Errors.Encode()); + return result.ToArray(); } public MetadataDifferentialModulesV9 ToDifferentialModules(CompareStatus status) diff --git a/Substrate.NET.Metadata/V9/PalletConstantMetadataV9.cs b/Substrate.NET.Metadata/V9/PalletConstantMetadataV9.cs index 079b573..e7710fb 100644 --- a/Substrate.NET.Metadata/V9/PalletConstantMetadataV9.cs +++ b/Substrate.NET.Metadata/V9/PalletConstantMetadataV9.cs @@ -1,10 +1,12 @@ using Substrate.NET.Metadata.Base; using Substrate.NET.Metadata.Base.Portable; using Substrate.NET.Metadata.Conversion; +using Substrate.NET.Metadata.Conversion.Internal; using Substrate.NET.Metadata.V14; using Substrate.NetApi.Model.Types.Base; using Substrate.NetApi.Model.Types.Primitive; using System.Diagnostics; +using System.Net.Mime; namespace Substrate.NET.Metadata.V9 { @@ -20,7 +22,12 @@ public class PalletConstantMetadataV9 : BaseType, IMetadataName public override byte[] Encode() { - throw new NotImplementedException(); + var result = new List(); + result.AddRange(Name.Encode()); + result.AddRange(ConstantType.Encode()); + result.AddRange(Value.Encode()); + result.AddRange(Documentation.Encode()); + return result.ToArray(); } public override void Decode(byte[] byteArray, ref int p) @@ -37,13 +44,13 @@ public override void Decode(byte[] byteArray, ref int p) TypeSize = p - num; } - public PalletConstantMetadataV14 ToPalletConstantMetadataV14(PortableRegistry lookup) + public PalletConstantMetadataV14 ToPalletConstantMetadataV14(ConversionBuilder conversionBuilder) { var result = new PalletConstantMetadataV14(); result.Name = this.Name; result.ConstantValue = this.Value; - result.ConstantType = ConversionV14Helper.AddToLookup(lookup, this.ConstantType.Value); + result.ConstantType = TType.From(conversionBuilder.BuildLookup(this.ConstantType.Value).Value); result.Documentation = this.Documentation; return result; diff --git a/Substrate.NET.Metadata/V9/PalletErrorMetadataV9.cs b/Substrate.NET.Metadata/V9/PalletErrorMetadataV9.cs index bc33565..959df54 100644 --- a/Substrate.NET.Metadata/V9/PalletErrorMetadataV9.cs +++ b/Substrate.NET.Metadata/V9/PalletErrorMetadataV9.cs @@ -1,20 +1,26 @@ -using Substrate.NET.Metadata.Base; +using Newtonsoft.Json.Linq; +using Substrate.NET.Metadata.Base; using Substrate.NET.Metadata.Base.Portable; using Substrate.NET.Metadata.Conversion; +using Substrate.NET.Metadata.Conversion.Internal; using Substrate.NET.Metadata.V14; using Substrate.NetApi.Model.Types.Base; using Substrate.NetApi.Model.Types.Primitive; +using System.Net.Mime; namespace Substrate.NET.Metadata.V9 { public class PalletErrorMetadataV9 : BaseType, IMetadataName { - public Str Name { get; set; } - public BaseVec Docs { get; set; } + public Str Name { get; set; } = default!; + public BaseVec Docs { get; set; } = default!; public override byte[] Encode() { - throw new NotImplementedException(); + var result = new List(); + result.AddRange(Name.Encode()); + result.AddRange(Docs.Encode()); + return result.ToArray(); } public override void Decode(byte[] byteArray, ref int p) @@ -30,13 +36,16 @@ public override void Decode(byte[] byteArray, ref int p) TypeSize = p - num; } - public PalletErrorMetadataV14 ToPalletErrorMetadataV14(PortableRegistry lookup) + public Variant ToVariant(ConversionBuilder conversionBuilder, int index) { - var result = new PalletErrorMetadataV14(); + var res = new Variant(); - result.ElemType = ConversionV14Helper.AddToLookup(lookup, null); + res.Name = Name; + res.Docs = Docs; + res.Index = new U8((byte)index); + res.VariantFields = new BaseVec(new Field[0]); - return result; + return res; } } } diff --git a/Substrate.NET.Metadata/V9/PalletEventMetadataV9.cs b/Substrate.NET.Metadata/V9/PalletEventMetadataV9.cs index d5e248f..2831ae8 100644 --- a/Substrate.NET.Metadata/V9/PalletEventMetadataV9.cs +++ b/Substrate.NET.Metadata/V9/PalletEventMetadataV9.cs @@ -9,7 +9,11 @@ public class PalletEventMetadataV9 : BaseType, IMetadataName { public override byte[] Encode() { - throw new NotImplementedException(); + var result = new List(); + result.AddRange(Name.Encode()); + result.AddRange(Args.Encode()); + result.AddRange(Docs.Encode()); + return result.ToArray(); } public override void Decode(byte[] byteArray, ref int p) @@ -32,16 +36,17 @@ public override void Decode(byte[] byteArray, ref int p) public BaseVec Args { get; set; } public BaseVec Docs { get; set; } - public Variant ToVariant(ConversionBuilder conversionBuilder) + public Variant ToVariant(ConversionBuilder conversionBuilder, int index) { var res = new Variant(); res.Name = Name; res.Docs = Docs; + res.Index = new U8((byte)index); var argsType = Args.Value.Select(x => new { Name = x, TypeId = conversionBuilder.BuildLookup(x.Value) }); res.VariantFields = new BaseVec( - argsType.Select(x => new Field(new BaseOpt(x.Name), TType.From(x.TypeId.Value), new BaseOpt(), new BaseVec()) + argsType.Select(x => new Field(new BaseOpt(x.Name), TType.From(x.TypeId.Value), new BaseOpt(), new BaseVec(new Str[0])) ).ToArray()); return res; diff --git a/Substrate.NET.Metadata/V9/RuntimeMetadataV9.cs b/Substrate.NET.Metadata/V9/RuntimeMetadataV9.cs index e3385c8..b2088c8 100644 --- a/Substrate.NET.Metadata/V9/RuntimeMetadataV9.cs +++ b/Substrate.NET.Metadata/V9/RuntimeMetadataV9.cs @@ -1,5 +1,6 @@ using Substrate.NET.Metadata.Base.Portable; using Substrate.NET.Metadata.Conversion; +using Substrate.NetApi.Model.Extrinsics; using Substrate.NetApi.Model.Types.Base; using Substrate.NetApi.Model.Types.Primitive; @@ -21,7 +22,9 @@ public override void Decode(byte[] byteArray, ref int p) public override byte[] Encode() { - throw new NotImplementedException(); + var result = new List(); + result.AddRange(Modules.Encode()); + return result.ToArray(); } public void AddToDictionnary(PortableRegistry lookup, string palletName) diff --git a/Substrate.NET.Metadata/V9/StorageEntryMetadataV9.cs b/Substrate.NET.Metadata/V9/StorageEntryMetadataV9.cs index 077fae5..e51346e 100644 --- a/Substrate.NET.Metadata/V9/StorageEntryMetadataV9.cs +++ b/Substrate.NET.Metadata/V9/StorageEntryMetadataV9.cs @@ -9,7 +9,13 @@ public class StorageEntryMetadataV9 : BaseType, IMetadataName { public override byte[] Encode() { - throw new NotImplementedException(); + var result = new List(); + result.AddRange(Name.Encode()); + result.AddRange(Modifier.Encode()); + result.AddRange(StorageType.Encode()); + result.AddRange(Default.Encode()); + result.AddRange(Documentation.Encode()); + return result.ToArray(); } public override void Decode(byte[] byteArray, ref int p) diff --git a/Substrate.NET.Metadata/V9/StorageMetadataV9.cs b/Substrate.NET.Metadata/V9/StorageMetadataV9.cs index e15a4a0..02358a2 100644 --- a/Substrate.NET.Metadata/V9/StorageMetadataV9.cs +++ b/Substrate.NET.Metadata/V9/StorageMetadataV9.cs @@ -12,7 +12,10 @@ public class PalletStorageMetadataV9 : BaseType { public override byte[] Encode() { - throw new NotImplementedException(); + var result = new List(); + result.AddRange(Prefix.Encode()); + result.AddRange(Entries.Encode()); + return result.ToArray(); } public override void Decode(byte[] byteArray, ref int p) From 6d4742645db16f741ed294e652ce060e791e900c Mon Sep 17 00:00:00 2001 From: Apolixit Date: Tue, 27 Aug 2024 17:01:37 +0200 Subject: [PATCH 04/15] WIP + add some basic tuple creation if not exists --- .../Conversion/ConversionBuilderTest.cs | 38 +++-- .../Base/Portable/PortableType.cs | 4 +- .../Base/StorageEntryTypeDoubleMap.cs | 21 ++- .../Base/StorageEntryTypeMap.cs | 4 +- Substrate.NET.Metadata/Base/TypeDefs.cs | 4 +- .../Conversion/Internal/ConversionBuilder.cs | 149 +++++++++++++----- .../Internal/ConversionBuilderTree.cs | 124 ++++++--------- .../Conversion/Internal/ConversionUtils.cs | 34 +++- .../Conversion/Internal/NodeBuilderType.cs | 54 +++++-- .../Conversion/Internal/SearchV14.cs | 111 +++++++++---- .../V11/ModuleMetadataV11.cs | 2 + .../V11/RuntimeMetadataV11.cs | 2 + .../V11/StorageEntryMetadataV11.cs | 9 +- .../V9/PalletConstantMetadataV9.cs | 2 +- .../V9/PalletEventMetadataV9.cs | 7 +- 15 files changed, 389 insertions(+), 176 deletions(-) diff --git a/Substrate.NET.Metadata.Tests/Conversion/ConversionBuilderTest.cs b/Substrate.NET.Metadata.Tests/Conversion/ConversionBuilderTest.cs index 1a20eda..3b4bc06 100644 --- a/Substrate.NET.Metadata.Tests/Conversion/ConversionBuilderTest.cs +++ b/Substrate.NET.Metadata.Tests/Conversion/ConversionBuilderTest.cs @@ -34,22 +34,37 @@ private static PortableType[] InitPortableRegistry() [TestCase("u32")] public void GetNode_FromPrimitive_ShouldSucceed(string primitiveType) { - var res = _builder.GetNodeFromV14(primitiveType); + var res = _builder.GetPortableType(primitiveType); - Assert.That(res.Ty.TypeDef.Value, Is.EqualTo(TypeDefEnum.Primitive)); - Assert.That(((BaseEnum)res.Ty.TypeDef.Value2).Value, Is.EqualTo(TypeDefPrimitive.U32)); + Assert.That(res.portableType.Ty.TypeDef.Value, Is.EqualTo(TypeDefEnum.Primitive)); + Assert.That(((BaseEnum)res.portableType.Ty.TypeDef.Value2).Value, Is.EqualTo(TypeDefPrimitive.U32)); } [Test] + //[TestCase(">::Proposal", 46, 4, "ImOnline")] + [TestCase("LockIdentifier", 125, 2)] + [TestCase("(T::BlockNumber, Hash)", 1000, 1)] + [TestCase("(BalanceOf, Vec)", 1000, 1)] + [TestCase("AuthorityId", 46, 4, "ImOnline")] + [TestCase("AuthorityId", 137, 4, "Babe")] + [TestCase("Vec<(AuthorityId, BabeAuthorityWeight)>", 367, 7, "Babe")] + [TestCase("Vec", 48, 10)] + [TestCase("Vec<(T::ValidatorId, T::Keys)>", 411, 14)] + [TestCase("Vec", 55, 4)] + [TestCase("ReportIdOf", 9, 3)] + [TestCase("(T::AccountId, slashing::SpanIndex)", 400, 5)] + [TestCase("slashing::SpanRecord>", 406, 2)] + [TestCase("(EraIndex, T::AccountId)", 396, 5)] + [TestCase("Exposure>", 50, 8)] + [TestCase("Multiplier", 384, 2)] + [TestCase("MaybeRandomness", 370, 3)] + [TestCase("AccountInfo", 3, 4)] [TestCase("schnorrkel::Randomness", 1, 2)] [TestCase("[u8;32]", 1, 2)] - [TestCase("Vec<(AuthorityId, BabeAuthorityWeight)>", 367, 7)] - [TestCase("AuthorityId", 137, 4)] [TestCase("TaskAddress", 29, 2)] [TestCase("Option>", 30, 3)] [TestCase("Vec<(T::BlockNumber, EventIndex)>", 105, 3)] [TestCase("Vec<(EraIndex, SessionIndex)>", 105, 3)] - [TestCase("AccountInfo", 3, 4)] [TestCase("u32", 4, 1)] [TestCase("ExtrinsicsWeight", 7, 2)] // Should be bound with PerDispatchClass [TestCase("DispatchInfo", 22, 4)] @@ -59,9 +74,10 @@ public void GetNode_FromPrimitive_ShouldSucceed(string primitiveType) [TestCase("Vec", 55, 4)] [TestCase("BalanceOf", 6, 1)] //[TestCase("Vec>", 22, 4)] - public void GetIndex_FromComposite_ShouldSucceed(string rustType, int indexExpected, int lengthExpected) + public void GetIndex_FromComposite_ShouldSucceed(string rustType, int indexExpected, int lengthExpected, string palletContext = "") { - var res = _builder.BuildLookup(rustType); + _builder.CurrentPallet = palletContext; + var res = _builder.BuildPortableTypes(rustType); Assert.That(res.Value, Is.EqualTo(indexExpected), "Index are not equals"); Assert.That(_builder.PortableTypes.Count, Is.EqualTo(lengthExpected), "Portable elements are not equals"); @@ -81,7 +97,7 @@ public void BuildNode_ShouldSucceed(string rustType) [TestCase("u32")] public void GetIndex_FromPrimitive_ShouldSucceed(string primitiveType) { - var res = _builder.BuildLookup(primitiveType); + var res = _builder.BuildPortableTypes(primitiveType); Assert.That(res.Value, Is.EqualTo(0)); Assert.That(_builder.PortableTypes.Count, Is.EqualTo(1)); @@ -94,7 +110,7 @@ public void GetIndex_FromPrimitive_ShouldSucceed(string primitiveType) [TestCase("Vec>")] public void Build_FromSequence_ShouldSucceed(string sequenceClass) { - var node = new NodeBuilderTypeUndefined(sequenceClass); + var node = new NodeBuilderTypeUndefined(sequenceClass, string.Empty); var res = ConversionBuilderTree.Build(node); Assert.That(res, Is.Not.Null); @@ -117,6 +133,7 @@ public void BuildTypeDictionnary_FromTuple_ShouldSucceed(string primitiveType) } [Test] + [TestCase("Vec<(::AccountId, BalanceOf)>", new string[] { "AccountId", "BalanceOf" })] [TestCase("[Hasher = BlakeTwo128Concat / Key = AccountId / Value = AccountInfo]", new string[] { "AccountId", "AccountInfo", "Index", "AccountData" })] [TestCase("Vec<(AccountId, Balance)>", new string[] { "AccountId", "Balance" })] [TestCase("DigestOf", new string[] { "DigestOf" })] @@ -135,7 +152,6 @@ public void BuildTypeDictionnary_FromTuple_ShouldSucceed(string primitiveType) [TestCase("Vec<(ParaId, Option<(CollatorId, Retriable)>)>", new string[] { "ParaId", "Option", "CollatorId", "Retriable" })] [TestCase("Vec>", new string[] { "DeferredOffenceOf" })] [TestCase("[Hasher = Identity / Key = Hash / Value = (BlockNumber, Vec)]", new string[] { "Hash", "BlockNumber", "AccountId" })] - [TestCase("Vec<(::AccountId, BalanceOf)>", new string[] { "AccountId", "BalanceOf" })] [TestCase("OpenTip, BlockNumber, Hash>", new string[] { "OpenTip", "AccountId", "BalanceOf", "BlockNumber", "Hash" })] [TestCase("[Key1 = BlockNumber / Key1Hasher = Twox64Concat / Key2 = Hash / Key2Hasher = Identity / Value = BlockAttestations]", new string[] { "BlockNumber", "Hash", "BlockAttestations" })] [TestCase("[Hasher = Identity / Key = EthereumAddress / Value = (BalanceOf, BalanceOf, BlockNumber)]", new string[] { "EthereumAddress", "BalanceOf", "BlockNumber" })] diff --git a/Substrate.NET.Metadata/Base/Portable/PortableType.cs b/Substrate.NET.Metadata/Base/Portable/PortableType.cs index 16540fe..db32d58 100644 --- a/Substrate.NET.Metadata/Base/Portable/PortableType.cs +++ b/Substrate.NET.Metadata/Base/Portable/PortableType.cs @@ -40,7 +40,7 @@ public override void Decode(byte[] byteArray, ref int p) TypeSize = p - start; } - public U32 Id { get; private set; } - public TypePortableForm Ty { get; private set; } + public U32 Id { get; internal set; } + public TypePortableForm Ty { get; internal set; } } } \ No newline at end of file diff --git a/Substrate.NET.Metadata/Base/StorageEntryTypeDoubleMap.cs b/Substrate.NET.Metadata/Base/StorageEntryTypeDoubleMap.cs index c78371b..5f2cbe8 100644 --- a/Substrate.NET.Metadata/Base/StorageEntryTypeDoubleMap.cs +++ b/Substrate.NET.Metadata/Base/StorageEntryTypeDoubleMap.cs @@ -1,4 +1,6 @@ -using Substrate.NetApi.Model.Types.Base; +using Substrate.NET.Metadata.Conversion.Internal; +using Substrate.NET.Metadata.V14; +using Substrate.NetApi.Model.Types.Base; using Substrate.NetApi.Model.Types.Primitive; using System; using System.Collections.Generic; @@ -6,6 +8,7 @@ using System.Text; using System.Threading.Tasks; using System.Xml.Linq; +using static Substrate.NET.Metadata.StorageType; namespace Substrate.NET.Metadata.Base { @@ -56,5 +59,21 @@ public override void Decode(byte[] byteArray, ref int p) TypeSize = p - num; } + + public StorageEntryTypeMapV14 ToStorageEntryTypeMapV14(ConversionBuilder conversionBuilder) + { + var result = new StorageEntryTypeMapV14(); + + result.Hashers = new BaseVec>( + [ + new BaseEnum((Hasher)Enum.Parse(typeof(THasher), Key1Hasher.Value.ToString())), + new BaseEnum((Hasher)Enum.Parse(typeof(THasher), Key2Hasher.Value.ToString())), + ]); + + result.Key = TType.From(conversionBuilder.BuildPortableTypes($"({Key1.Value}, {Key2.Value})").Value); + result.Value = TType.From(conversionBuilder.BuildPortableTypes(Value.Value).Value); + + return result; + } } } diff --git a/Substrate.NET.Metadata/Base/StorageEntryTypeMap.cs b/Substrate.NET.Metadata/Base/StorageEntryTypeMap.cs index b9cf053..da7d208 100644 --- a/Substrate.NET.Metadata/Base/StorageEntryTypeMap.cs +++ b/Substrate.NET.Metadata/Base/StorageEntryTypeMap.cs @@ -60,8 +60,8 @@ public StorageEntryTypeMapV14 ToStorageEntryTypeMapV14(ConversionBuilder convers new BaseEnum((Hasher)Enum.Parse(typeof(Hasher), Hasher.Value.ToString())) ]); - result.Key = TType.From(conversionBuilder.BuildLookup(Key.Value).Value); - result.Value = TType.From(conversionBuilder.BuildLookup(Value.Value).Value); + result.Key = TType.From(conversionBuilder.BuildPortableTypes(Key.Value).Value); + result.Value = TType.From(conversionBuilder.BuildPortableTypes(Value.Value).Value); return result; } diff --git a/Substrate.NET.Metadata/Base/TypeDefs.cs b/Substrate.NET.Metadata/Base/TypeDefs.cs index 590a810..dbf8a42 100644 --- a/Substrate.NET.Metadata/Base/TypeDefs.cs +++ b/Substrate.NET.Metadata/Base/TypeDefs.cs @@ -109,7 +109,7 @@ public override void Decode(byte[] byteArray, ref int p) TypeSize = p - start; } - public BaseVec Fields { get; private set; } + public BaseVec Fields { get; internal set; } } public class TypeDefVariant : BaseType @@ -210,7 +210,7 @@ public override void Decode(byte[] byteArray, ref int p) TypeSize = p - start; } - public BaseVec Fields { get; private set; } + public BaseVec Fields { get; internal set; } } public enum TypeDefPrimitive diff --git a/Substrate.NET.Metadata/Conversion/Internal/ConversionBuilder.cs b/Substrate.NET.Metadata/Conversion/Internal/ConversionBuilder.cs index 509dbd6..8cb7bf0 100644 --- a/Substrate.NET.Metadata/Conversion/Internal/ConversionBuilder.cs +++ b/Substrate.NET.Metadata/Conversion/Internal/ConversionBuilder.cs @@ -1,4 +1,5 @@ -using Substrate.NET.Metadata.Base; +using Microsoft.VisualBasic; +using Substrate.NET.Metadata.Base; using Substrate.NET.Metadata.Base.Portable; using Substrate.NET.Metadata.V14; using Substrate.NetApi.Model.Meta; @@ -13,6 +14,7 @@ using System.Text; using System.Text.RegularExpressions; using System.Threading.Tasks; +using static Substrate.NET.Metadata.Conversion.Internal.SearchV14; using TypeDefExt = Substrate.NetApi.Model.Types.Base.BaseEnumExt< Substrate.NET.Metadata.Base.TypeDefEnum, Substrate.NET.Metadata.Base.TypeDefComposite, @@ -58,6 +60,8 @@ public class ConversionBuilder { public List PortableTypes { get; init; } public List ElementsState { get; init; } + public string CurrentPallet { get; set; } = string.Empty; + public uint? UnknowIndex { get; set; } = null; public const int START_INDEX = 1_000; public ConversionBuilder(List portableTypes) @@ -71,7 +75,17 @@ public ConversionBuilder(List portableTypes) /// public static List UnhandleConversion = new List() { - "Vec::Call, T::BlockNumber>>>" // Pallet scheduler => Storage => Agenda + "Vec::Call, T::BlockNumber>>>", // Pallet scheduler => Storage => Agenda + "ElectionResult>", // V11 => Staking => v1 => Storage => QueuedElected + "PhragmenScore", // V11 => Staking => v1 => Storage => QueuedScore + "ElectionStatus", // V11 => Staking => v1 => Storage => EraElectionStatus + "Vec>", // V11 => Offences => v1 => Storage => DeferredOffences + ">::Proposal", // V11 => Council => v1 => Storage => ProposalOf + //"(BalanceOf, Vec)", // V11 => ElectionsPhragmen => v1 => Storage => Voting ==> Easy to create + "sp_std::marker::PhantomData<(AccountId, Event)>", // V11 => TechnicalMembership => v1 => Events => Dummy + "Vec", // V11 => Parachains => v1 => Storage => RelayDispatchQueue + "IncludedBlocks", // V11 => Attestations => v1 => Storage => RecentParaBlocks + "BlockAttestations", // V11 => Attestations => v1 => Storage => ParaBlockAttestations }; public U32 GetNewIndex() @@ -80,22 +94,30 @@ public U32 GetNewIndex() return new U32(Math.Max(START_INDEX, PortableTypes.Max(x => x.Id.Value) + 1)); } - public U32 BuildLookup(string className) + public U32 BuildPortableTypes(string className) { - if (UnhandleConversion.Contains(className)) return new U32(0); // Ok this is bad + if (UnhandleConversion.Contains(className)) + return new U32(UnknowIndex!.Value); // Ok this is bad - var founded = GetNodeFromV14(className); + var founded = GetPortableType(className); - if(founded != null) - { - ElementsState[^1].IndexFoundInV14 = founded.Id.Value; - return founded.Id; - } + if(founded.searchResult == SearchResult.Founded) + ElementsState[^1].IndexFoundInV14 = founded.portableType.Id.Value; + else + ElementsState[^1].IndexCreated = founded.portableType.Id.Value; - var portableType = CreateNode(className, GetNewIndex()); + return founded.portableType.Id; - ElementsState[^1].IndexCreated = portableType.Id.Value; - return portableType.Id; + //if (founded != null) + //{ + // ElementsState[^1].IndexFoundInV14 = founded.Id.Value; + // return founded.Id; + //} + + //var portableType = CreateNode(className, GetNewIndex()); + + //ElementsState[^1].IndexCreated = portableType.Id.Value; + //return portableType.Id; } @@ -104,33 +126,32 @@ public U32 BuildLookup(string className) /// /// /// - public PortableType? GetNodeFromV14(string className) + public (PortableType portableType, SearchResult searchResult) GetPortableType(string className) { - var nodeRaw = new NodeBuilderTypeUndefined(className); + var nodeRaw = new NodeBuilderTypeUndefined(className, CurrentPallet); // Node like events has do not have to be seached in V14 if (nodeRaw.IndexHardBinding != null) { ElementsState.Add(new ConversionElementState(className, nodeRaw)); - return LoopFromV14((int)nodeRaw.IndexHardBinding!); + return (LoopFromV14((int)nodeRaw.IndexHardBinding!), SearchResult.Founded); } var nodeType = ConversionBuilderTree.Build(nodeRaw); - var index = SearchV14.FindIndexByNode(nodeType); - ElementsState.Add(new ConversionElementState(className, nodeType)); + var index = SearchV14.SearchIndexByNode(nodeType, this); - if (index == null) return null; + ElementsState.Add(new ConversionElementState(className, nodeType)); - return LoopFromV14(index.Value); + return (LoopFromV14(index.index), index.searchResult); } public PortableType LoopFromV14(int index) { - var portableType = SearchV14.FindTypeByIndex(index); var alreadyInserted = PortableTypes.SingleOrDefault(x => x.Id.Value == index); - if (alreadyInserted != null) return alreadyInserted; + var portableType = SearchV14.FindTypeByIndex(index); + PortableTypes.Add(portableType); switch(portableType.Ty.TypeDef.Value) { @@ -196,22 +217,22 @@ public static PortableType CreateNode(string className, U32 currentMaxIndex) var tpf = new TypePortableForm(); - if (ExtractPrimitive(className) is TypeDefPrimitive prim) - { - tpf.Path = new Base.Portable.Path(); - tpf.TypeParams = new BaseVec(); - tpf.TypeDef = new TypeDefExt(); - tpf.TypeDef.Create(TypeDefEnum.Primitive, new BaseEnum(prim)); + //if (ExtractPrimitive(className) is TypeDefPrimitive prim) + //{ + // tpf.Path = new Base.Portable.Path(); + // tpf.TypeParams = new BaseVec(); + // tpf.TypeDef = new TypeDefExt(); + // tpf.TypeDef.Create(TypeDefEnum.Primitive, new BaseEnum(prim)); - return new PortableType(currentMaxIndex, tpf); - } + // return new PortableType(currentMaxIndex, tpf); + //} - var extractGeneric = ExtractGeneric(className); - if (extractGeneric is not null) - { - var toFind = CustomMapping(HarmonizeTypeName(extractGeneric.Value.genericParameters[0])); - var index = SearchV14.FindIndexByClass(toFind); - } + //var extractGeneric = ExtractGeneric(className); + //if (extractGeneric is not null) + //{ + // var toFind = CustomMapping(HarmonizeTypeName(extractGeneric.Value.genericParameters[0])); + // var index = SearchV14.FindIndexByClass(toFind); + //} throw new MetadataConversionException($"Unable to convert {className} to NodeType"); } @@ -574,7 +595,7 @@ public PalletEventMetadataV14 ConvertToEventV14(string eventName, string eventTy { var res = new PalletEventMetadataV14(); - res.ElemType = TType.From(BuildLookup(eventType).Value); + res.ElemType = TType.From(BuildPortableTypes(eventType).Value); return res; } @@ -598,5 +619,59 @@ public void AddPalletEventBlockchainRuntimeEvent(Variant variant) tdv.TypeParam = new BaseVec(list.ToArray()); } + + #region Build node + + /// + /// Composite class use for undefined mapping + /// + /// + public PortableType CreateUnknownNode() + { + var unknownNode = new TypeDefComposite(); + unknownNode.Fields = new BaseVec(new Field[0]); + + var pt = CreatePortableTypeFromNode(unknownNode); + UnknowIndex = pt.Id.Value; + + return pt; + } + public PortableType CreatePortableTypeFromNode(BaseType node) + { + + var portableType = new PortableType(); + + portableType.Id = GetNewIndex(); + portableType.Ty = new TypePortableForm(); + portableType.Ty.Docs = new BaseVec(new Str[0]); + portableType.Ty.Path = new Base.Portable.Path(); + portableType.Ty.Path.Create(new Str[0]); + portableType.Ty.TypeParams = new BaseVec(new TypeParameter[0]); + + if (node is TypeDefTuple tdt) + { + portableType.Ty.TypeDef = new TypeDefExt(); + portableType.Ty.TypeDef.Create(TypeDefEnum.Tuple, tdt); + } + + if (node is TypeDefComposite tdc) + { + portableType.Ty.TypeDef = new TypeDefExt(); + portableType.Ty.TypeDef.Create(TypeDefEnum.Composite, tdc); + } + + PortableTypes.Add(portableType); + + return portableType; + } + public TypeDefTuple BuildTuple(List types) + { + var node = new TypeDefTuple(); + + node.Fields = new BaseVec(types.ToArray()); + + return node; + } + #endregion } } diff --git a/Substrate.NET.Metadata/Conversion/Internal/ConversionBuilderTree.cs b/Substrate.NET.Metadata/Conversion/Internal/ConversionBuilderTree.cs index be33d52..762da12 100644 --- a/Substrate.NET.Metadata/Conversion/Internal/ConversionBuilderTree.cs +++ b/Substrate.NET.Metadata/Conversion/Internal/ConversionBuilderTree.cs @@ -19,72 +19,46 @@ public static string HarmonizeTypeName(string className) public static NodeBuilderType Build(NodeBuilderType nodeBuilderType) { - //if (ExtractMap(className) is (string, string) map) - //{ - // res.Add(map.key); - // res.Add(map.value); - // return ExtractDeeper(res); - //} - - //if (ExtractDoubleMap(className) is (string, string, string) doubleMap) - //{ - // res.Add(doubleMap.key1); - // res.Add(doubleMap.key2); - // res.Add(doubleMap.value); - - // return ExtractDeeper(res); - //} - - if (ExtractTuple(nodeBuilderType.Adapted) is NodeBuilderTypeTuple tuples) + if (ExtractTuple(nodeBuilderType) is NodeBuilderTypeTuple tuples && + nodeBuilderType is NodeBuilderTypeUndefined) { - if (nodeBuilderType is NodeBuilderTypeUndefined) - { - nodeBuilderType = tuples; - } - //return Build(tuples, tuples.Content); + nodeBuilderType = tuples; } - if (ExtractArray(nodeBuilderType.Adapted) is NodeBuilderTypeArray array) + var extractGeneric = ExtractGeneric(nodeBuilderType); + + if (extractGeneric is not null && nodeBuilderType is NodeBuilderTypeUndefined) { - if (nodeBuilderType is NodeBuilderTypeUndefined) - { - nodeBuilderType = array; - } - //return Build(array, array.Content); + nodeBuilderType = extractGeneric!; } - //if (ExtractParameters(nodeBuilderType.Content) is List parameters) - //{ - // //res.AddRange(parameters); - // //return ExtractDeeper(res); - //} - - var extractGeneric = ExtractGeneric(nodeBuilderType.Adapted); - - if (extractGeneric is not null) + if (ExtractArray(nodeBuilderType) is NodeBuilderTypeArray array && nodeBuilderType is NodeBuilderTypeUndefined) { - if (nodeBuilderType is NodeBuilderTypeUndefined) - { - nodeBuilderType = extractGeneric!; - } + nodeBuilderType = array; } - if (ExtractPrimitive(nodeBuilderType.Adapted) is NodeBuilderTypePrimitive primitive) + if (ExtractPrimitive(nodeBuilderType) is NodeBuilderTypePrimitive primitive && nodeBuilderType is NodeBuilderTypeUndefined) { - if (nodeBuilderType is NodeBuilderTypeUndefined) - { - nodeBuilderType = primitive!; - } - + nodeBuilderType = primitive!; return primitive; } if (nodeBuilderType is NodeBuilderTypeUndefined) { var content = HarmonizeTypeName(nodeBuilderType.Adapted); - nodeBuilderType = new NodeBuilderTypeComposite( - SearchV14.HardBinding(content), - nodeBuilderType.Raw); + var hardBinding = SearchV14.HardBinding(content, nodeBuilderType.PalletContext); + + //if(!hardBinding.Equals(nodeBuilderType.Raw, StringComparison.CurrentCultureIgnoreCase)) + if (!string.IsNullOrEmpty(hardBinding) && hardBinding != content) + { + nodeBuilderType = Build(new NodeBuilderTypeUndefined(hardBinding, nodeBuilderType.Raw, nodeBuilderType.PalletContext)); + } + else + { + nodeBuilderType = new NodeBuilderTypeComposite( + SearchV14.HardBinding(content, nodeBuilderType.PalletContext), nodeBuilderType.Raw, nodeBuilderType.PalletContext); + } + } if (nodeBuilderType.Children.Count > 0) @@ -234,17 +208,21 @@ public static NodeBuilderType Build(NodeBuilderType nodeBuilderType) // return null; //} - private static NodeBuilderTypeArray? ExtractArray(string className) + private static NodeBuilderTypeArray? ExtractArray(NodeBuilderType node) { string pattern = @"\[(.*);\s*(\d+)\]"; - Match match = Regex.Match(className, pattern); + Match match = Regex.Match(node.Adapted, pattern); if (match.Success) { //match.Groups[1].Value -> array size - var array = new NodeBuilderTypeArray(className, int.Parse(match.Groups[2].Value)); + var array = new NodeBuilderTypeArray( + node.Adapted, + node.Raw, + int.Parse(match.Groups[2].Value), + node.PalletContext); - array.Children.Add(new NodeBuilderTypeUndefined(match.Groups[1].Value)); + array.Children.Add(new NodeBuilderTypeUndefined(match.Groups[1].Value, node.PalletContext)); return array; } @@ -252,23 +230,23 @@ public static NodeBuilderType Build(NodeBuilderType nodeBuilderType) return null; } - private static NodeBuilderTypeTuple? ExtractTuple(string className) + private static NodeBuilderTypeTuple? ExtractTuple(NodeBuilderType node) { string pattern = @"\((.*)\)$"; - Match match = Regex.Match(className, pattern); + Match match = Regex.Match(node.Adapted, pattern); if (match.Success) { - var nodeTuple = new NodeBuilderTypeTuple(className); + var nodeTuple = new NodeBuilderTypeTuple(node.Adapted, node.PalletContext); if (ExtractParameters(match.Groups[1].Value) is List parameters) { - foreach(var param in parameters) + foreach (var param in parameters) { - nodeTuple.Children.Add(new NodeBuilderTypeUndefined(param)); + nodeTuple.Children.Add(new NodeBuilderTypeUndefined(param, node.PalletContext)); } } - + return nodeTuple; } @@ -328,21 +306,21 @@ public static (string key, string value)? ExtractMap(string className) return null; } - public static NodeBuilderTypePrimitive? ExtractPrimitive(string className) + public static NodeBuilderTypePrimitive? ExtractPrimitive(NodeBuilderType node) { object? res = null; - if (Enum.TryParse(typeof(TypeDefPrimitive), className, true, out res)) + if (Enum.TryParse(typeof(TypeDefPrimitive), node.Adapted, true, out res)) { - return new NodeBuilderTypePrimitive(className, (TypeDefPrimitive)res); + return new NodeBuilderTypePrimitive(node.Adapted, (TypeDefPrimitive)res, node.PalletContext); } return null; } - public static NodeBuilderType? ExtractGeneric(string className) + public static NodeBuilderType? ExtractGeneric(NodeBuilderType node) { string pattern = @"([a-zA-Z:]*|)<(.*)>$"; - Match match = Regex.Match(className, pattern); + Match match = Regex.Match(node.Adapted, pattern); if (match.Success) { @@ -358,11 +336,12 @@ public static (string key, string value)? ExtractMap(string className) NodeBuilderType result = typeDef switch { - TypeDefEnum.Sequence => new NodeBuilderTypeSequence(className), - TypeDefEnum.Variant => new NodeBuilderTypeVariant(className), + TypeDefEnum.Sequence => new NodeBuilderTypeSequence(node.Adapted, node.PalletContext), + TypeDefEnum.Variant when match.Groups[1].Value == "Option" => new NodeBuilderTypeOption(node.Adapted, node.Raw, node.PalletContext), + TypeDefEnum.Variant => new NodeBuilderTypeVariant(node.Adapted, node.PalletContext), TypeDefEnum.Composite => new NodeBuilderTypeComposite( - SearchV14.HardBinding(match.Groups[1].Value), - className), + SearchV14.HardBinding(match.Groups[1].Value, node.PalletContext), + node.Adapted, node.PalletContext), _ => throw new MetadataConversionException($"TypeDef {typeDef} is not handled") }; @@ -372,11 +351,12 @@ public static (string key, string value)? ExtractMap(string className) { foreach (var param in parameters) { - result.Children.Add(new NodeBuilderTypeUndefined(param)); + result.Children.Add(new NodeBuilderTypeUndefined(param, node.PalletContext)); } - } else + } + else { - result.Children.Add(new NodeBuilderTypeUndefined(genericParameters)); + result.Children.Add(new NodeBuilderTypeUndefined(genericParameters, node.PalletContext)); } } diff --git a/Substrate.NET.Metadata/Conversion/Internal/ConversionUtils.cs b/Substrate.NET.Metadata/Conversion/Internal/ConversionUtils.cs index 8023f69..a500932 100644 --- a/Substrate.NET.Metadata/Conversion/Internal/ConversionUtils.cs +++ b/Substrate.NET.Metadata/Conversion/Internal/ConversionUtils.cs @@ -1,12 +1,14 @@ -using System; +using Substrate.NET.Metadata.Base; +using System; using System.Collections.Generic; using System.Linq; +using System.Runtime.CompilerServices; using System.Text; using System.Threading.Tasks; namespace Substrate.NET.Metadata.Conversion.Internal { - internal class ConversionUtils + internal static class ConversionUtils { internal static bool EndsWithArray(T[] array1, T[] array2) { @@ -25,5 +27,33 @@ internal static bool EndsWithArray(T[] array1, T[] array2) return true; } + + internal static bool AreArraysIdentical(T[] array1, T[] array2) + { + if (array1.Length != array2.Length) + { + return false; + } + + for (int i = 0; i < array1.Length; i++) + { + if (!array2.Contains(array1[i])) + { + return false; + } + } + + return true; + } + + internal static bool IsNone(this Variant variant) + { + return variant.Name.Value.Equals("None", StringComparison.CurrentCultureIgnoreCase) && variant.VariantFields.Value.Length == 0; + } + + internal static bool IsSome(this Variant variant, int index) + { + return variant.VariantFields.Value.Length == 1 && (int)variant.VariantFields.Value[0].FieldTy.Value == index; + } } } diff --git a/Substrate.NET.Metadata/Conversion/Internal/NodeBuilderType.cs b/Substrate.NET.Metadata/Conversion/Internal/NodeBuilderType.cs index 037209a..c2a0fa4 100644 --- a/Substrate.NET.Metadata/Conversion/Internal/NodeBuilderType.cs +++ b/Substrate.NET.Metadata/Conversion/Internal/NodeBuilderType.cs @@ -11,14 +11,33 @@ namespace Substrate.NET.Metadata.Conversion.Internal public abstract class NodeBuilderType { public abstract TypeDefEnum TypeDef { get; } + + /// + /// The mapped class to V14 + /// public string Adapted { get; set; } + + /// + /// The initial raw class + /// public string Raw { get; set; } + + /// + /// Pallet context to help identify the pallet. + /// Useful for pallets with the same type name (for example "AuthorityId" which is used in multiple pallets and return different lookup index) + /// + public string PalletContext { get; set; } = string.Empty; + + /// + /// When the code is not enough to identify the mapping (or maybe i am too lazy...), hard map the index + /// public uint? IndexHardBinding => SearchV14.HardIndexBinding(Adapted); - protected NodeBuilderType(string content, string raw) + protected NodeBuilderType(string content, string raw, string palletContext) { Adapted = content; Raw = raw; + PalletContext = palletContext; } public List Children { get; set; } = new List(); @@ -42,7 +61,23 @@ public class NodeBuilderTypeUndefined : NodeBuilderType { public override TypeDefEnum TypeDef => throw new NotImplementedException(); - public NodeBuilderTypeUndefined(string content) : base(content, content) + public NodeBuilderTypeUndefined(string content, string palletContext) : base(content, content, palletContext) + { + } + + public NodeBuilderTypeUndefined(string content, string raw, string palletContext) : base(content, raw, palletContext) + { + } + } + + /// + /// A variant of to handle Option more easily + /// + public class NodeBuilderTypeOption : NodeBuilderType + { + public override TypeDefEnum TypeDef => TypeDefEnum.Variant; + + public NodeBuilderTypeOption(string content, string raw, string palletContext) : base(content, raw, palletContext) { } } @@ -51,7 +86,7 @@ public class NodeBuilderTypePrimitive : NodeBuilderType { public TypeDefPrimitive Primitive { get; set; } - public NodeBuilderTypePrimitive(string content, TypeDefPrimitive primitive): base(content, content) + public NodeBuilderTypePrimitive(string content, TypeDefPrimitive primitive, string palletContext): base(content, content, palletContext) { Primitive = primitive; } @@ -61,7 +96,7 @@ public NodeBuilderTypePrimitive(string content, TypeDefPrimitive primitive): bas public class NodeBuilderTypeComposite : NodeBuilderType { - public NodeBuilderTypeComposite(string content, string raw) : base(content, raw) + public NodeBuilderTypeComposite(string content, string raw, string palletContext) : base(content, raw, palletContext) { } @@ -70,7 +105,7 @@ public NodeBuilderTypeComposite(string content, string raw) : base(content, raw) public class NodeBuilderTypeSequence : NodeBuilderType { - public NodeBuilderTypeSequence(string content) : base(content, content) + public NodeBuilderTypeSequence(string content, string palletContext) : base(content, content, palletContext) { } @@ -79,7 +114,7 @@ public NodeBuilderTypeSequence(string content) : base(content, content) public class NodeBuilderTypeTuple : NodeBuilderType { - public NodeBuilderTypeTuple(string content) : base(content, content) + public NodeBuilderTypeTuple(string content, string palletContext) : base(content, content, palletContext) { } @@ -88,7 +123,7 @@ public NodeBuilderTypeTuple(string content) : base(content, content) public class NodeBuilderTypeArray : NodeBuilderType { - public NodeBuilderTypeArray(string content, int length): base(content, content) + public NodeBuilderTypeArray(string content, string raw, int length, string palletContext): base(content, raw, palletContext) { Length = length; } @@ -100,7 +135,7 @@ public NodeBuilderTypeArray(string content, int length): base(content, content) public class NodeBuilderTypeCompact : NodeBuilderType { - public NodeBuilderTypeCompact(string content) : base(content, content) + public NodeBuilderTypeCompact(string content, string palletContext) : base(content, content, palletContext) { } @@ -109,8 +144,9 @@ public NodeBuilderTypeCompact(string content) : base(content, content) public class NodeBuilderTypeVariant : NodeBuilderType { - public NodeBuilderTypeVariant(string content) : base(content, content) + public NodeBuilderTypeVariant(string content, string palletContext) : base(content, content, palletContext) { + PalletContext = palletContext; } public override TypeDefEnum TypeDef => TypeDefEnum.Variant; diff --git a/Substrate.NET.Metadata/Conversion/Internal/SearchV14.cs b/Substrate.NET.Metadata/Conversion/Internal/SearchV14.cs index 17f5713..fec7e82 100644 --- a/Substrate.NET.Metadata/Conversion/Internal/SearchV14.cs +++ b/Substrate.NET.Metadata/Conversion/Internal/SearchV14.cs @@ -10,6 +10,12 @@ namespace Substrate.NET.Metadata.Conversion.Internal { public static class SearchV14 { + public enum SearchResult + { + Founded, + Created + } + #region V14 hex private static string v14Hex = "0x6d6574610e1109000c1c73705f636f72651863727970746f2c4163636f756e7449643332000004000401205b75383b2033325d0000040000032000000008000800000503000c08306672616d655f73797374656d2c4163636f756e74496e666f0814496e64657801102c4163636f756e74446174610114001401146e6f6e6365100114496e646578000124636f6e73756d657273100120526566436f756e7400012470726f766964657273100120526566436f756e7400012c73756666696369656e7473100120526566436f756e740001106461746114012c4163636f756e7444617461000010000005050014083c70616c6c65745f62616c616e6365732c4163636f756e7444617461041c42616c616e63650118001001106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500012c6d6973635f66726f7a656e18011c42616c616e63650001286665655f66726f7a656e18011c42616c616e636500001800000507001c0c346672616d655f737570706f72741c77656967687473405065724469737061746368436c6173730404540120000c01186e6f726d616c2001045400012c6f7065726174696f6e616c200104540001246d616e6461746f727920010454000020000005060024083c7072696d69746976655f74797065731048323536000004000401205b75383b2033325d00002800000208002c102873705f72756e74696d651c67656e6572696318646967657374184469676573740410486173680124000401106c6f67733001545665633c4469676573744974656d3c486173683e3e000030000002340034102873705f72756e74696d651c67656e6572696318646967657374284469676573744974656d0410486173680124011c3c4368616e67657354726965526f6f740400240110486173680002002850726552756e74696d650800380144436f6e73656e737573456e67696e654964000028011c5665633c75383e00060024436f6e73656e7375730800380144436f6e73656e737573456e67696e654964000028011c5665633c75383e000400105365616c0800380144436f6e73656e737573456e67696e654964000028011c5665633c75383e000500444368616e676573547269655369676e616c04003c01444368616e676573547269655369676e616c000700144f74686572040028011c5665633c75383e0000006452756e74696d65456e7669726f6e6d656e745570646174656400080000380000030400000008003c102873705f72756e74696d651c67656e6572696318646967657374444368616e676573547269655369676e616c000104404e6577436f6e66696775726174696f6e04004001804f7074696f6e3c4368616e67657354726965436f6e66696775726174696f6e3e000000004004184f7074696f6e04045401440108104e6f6e6500000010536f6d650400440000010000440c1c73705f636f7265306368616e6765735f74726965604368616e67657354726965436f6e66696775726174696f6e000008013c6469676573745f696e74657276616c10010c7533320001346469676573745f6c6576656c7310010c7533320000480000024c004c08306672616d655f73797374656d2c4576656e745265636f7264080445015004540124000c011470686173659d01011450686173650001146576656e7450010445000118746f70696373a10101185665633c543e0000500840706f6c6b61646f745f72756e74696d65144576656e740001801853797374656d04005401706672616d655f73797374656d3a3a4576656e743c52756e74696d653e000000245363686564756c6572040070018070616c6c65745f7363686564756c65723a3a4576656e743c52756e74696d653e0001001c496e6469636573040084017870616c6c65745f696e64696365733a3a4576656e743c52756e74696d653e0004002042616c616e636573040088017c70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d653e0005001c5374616b696e67040090017870616c6c65745f7374616b696e673a3a4576656e743c52756e74696d653e000700204f6666656e636573040094015870616c6c65745f6f6666656e6365733a3a4576656e740008001c53657373696f6e04009c015470616c6c65745f73657373696f6e3a3a4576656e740009001c4772616e6470610400a0015470616c6c65745f6772616e6470613a3a4576656e74000b0020496d4f6e6c696e650400b4018070616c6c65745f696d5f6f6e6c696e653a3a4576656e743c52756e74696d653e000c002444656d6f63726163790400d8018070616c6c65745f64656d6f63726163793a3a4576656e743c52756e74696d653e000e001c436f756e63696c0400e401fc70616c6c65745f636f6c6c6563746976653a3a4576656e743c52756e74696d652c2070616c6c65745f636f6c6c6563746976653a3a496e7374616e6365313e000f0048546563686e6963616c436f6d6d69747465650400ec01fc70616c6c65745f636f6c6c6563746976653a3a4576656e743c52756e74696d652c2070616c6c65745f636f6c6c6563746976653a3a496e7374616e6365323e0010004050687261676d656e456c656374696f6e0400f001a470616c6c65745f656c656374696f6e735f70687261676d656e3a3a4576656e743c52756e74696d653e0011004c546563686e6963616c4d656d626572736869700400fc01fc70616c6c65745f6d656d626572736869703a3a4576656e743c52756e74696d652c2070616c6c65745f6d656d626572736869703a3a496e7374616e6365313e00120020547265617375727904000101017c70616c6c65745f74726561737572793a3a4576656e743c52756e74696d653e00130018436c61696d73040005010158636c61696d733a3a4576656e743c52756e74696d653e0018001c56657374696e6704001101017870616c6c65745f76657374696e673a3a4576656e743c52756e74696d653e0019001c5574696c69747904001501015470616c6c65745f7574696c6974793a3a4576656e74001a00204964656e7469747904001901017c70616c6c65745f6964656e746974793a3a4576656e743c52756e74696d653e001c001450726f787904001d01017070616c6c65745f70726f78793a3a4576656e743c52756e74696d653e001d00204d756c746973696704002901017c70616c6c65745f6d756c74697369673a3a4576656e743c52756e74696d653e001e0020426f756e7469657304003101017c70616c6c65745f626f756e746965733a3a4576656e743c52756e74696d653e002200105469707304003501016c70616c6c65745f746970733a3a4576656e743c52756e74696d653e00230068456c656374696f6e50726f76696465724d756c746950686173650400390101d070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173653a3a4576656e743c52756e74696d653e0024003450617261496e636c7573696f6e04004501019070617261636861696e735f696e636c7573696f6e3a3a4576656e743c52756e74696d653e00350014506172617304007501015c70617261636861696e735f70617261733a3a4576656e740038000c556d7004007901015470617261636861696e735f756d703a3a4576656e74003b001048726d7004008501017c70617261636861696e735f68726d703a3a4576656e743c52756e74696d653e003c002452656769737472617204008d01017c70617261735f7265676973747261723a3a4576656e743c52756e74696d653e00460014536c6f7473040091010154736c6f74733a3a4576656e743c52756e74696d653e0047002041756374696f6e7304009501016061756374696f6e733a3a4576656e743c52756e74696d653e0048002443726f77646c6f616e04009901016463726f77646c6f616e3a3a4576656e743c52756e74696d653e00490000540c306672616d655f73797374656d1870616c6c6574144576656e740404540001184045787472696e7369635375636365737304005801304469737061746368496e666f000004b4416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e205c5b696e666f5c5d3c45787472696e7369634661696c6564080064013444697370617463684572726f7200005801304469737061746368496e666f00010490416e2065787472696e736963206661696c65642e205c5b6572726f722c20696e666f5c5d2c436f64655570646174656400020450603a636f6465602077617320757064617465642e284e65774163636f756e740400000130543a3a4163636f756e7449640003047841206e6577205c5b6163636f756e745c5d2077617320637265617465642e344b696c6c65644163636f756e740400000130543a3a4163636f756e74496400040468416e205c5b6163636f756e745c5d20776173207265617065642e2052656d61726b65640800000130543a3a4163636f756e744964000024011c543a3a48617368000504d04f6e206f6e2d636861696e2072656d61726b2068617070656e65642e205c5b6f726967696e2c2072656d61726b5f686173685c5d04704576656e7420666f72207468652053797374656d2070616c6c65742e580c346672616d655f737570706f72741c77656967687473304469737061746368496e666f00000c0118776569676874200118576569676874000114636c6173735c01344469737061746368436c617373000120706179735f6665656001105061797300005c0c346672616d655f737570706f72741c77656967687473344469737061746368436c61737300010c184e6f726d616c0000002c4f7065726174696f6e616c000100244d616e6461746f727900020000600c346672616d655f737570706f72741c7765696768747310506179730001080c596573000000084e6f0001000064082873705f72756e74696d653444697370617463684572726f72000120144f746865720000003043616e6e6f744c6f6f6b7570000100244261644f726967696e000200184d6f64756c65080114696e64657808010875380001146572726f72080108753800030044436f6e73756d657252656d61696e696e670004002c4e6f50726f76696465727300050014546f6b656e0400680128546f6b656e4572726f720006002841726974686d6574696304006c013c41726974686d657469634572726f720007000068082873705f72756e74696d6528546f6b656e4572726f7200011c1c4e6f46756e647300000020576f756c644469650001003042656c6f774d696e696d756d0002003043616e6e6f7443726561746500030030556e6b6e6f776e41737365740004001846726f7a656e0005002c556e737570706f72746564000600006c082873705f72756e74696d653c41726974686d657469634572726f7200010c24556e646572666c6f77000000204f766572666c6f77000100384469766973696f6e42795a65726f00020000700c4070616c6c65745f7363686564756c65721870616c6c6574144576656e7404045400010c245363686564756c65640800100138543a3a426c6f636b4e756d626572000010010c753332000004905363686564756c656420736f6d65207461736b2e205c5b7768656e2c20696e6465785c5d2043616e63656c65640800100138543a3a426c6f636b4e756d626572000010010c7533320001048c43616e63656c656420736f6d65207461736b2e205c5b7768656e2c20696e6465785c5d28446973706174636865640c0074016c5461736b416464726573733c543a3a426c6f636b4e756d6265723e000078013c4f7074696f6e3c5665633c75383e3e00007c01384469737061746368526573756c74000204a84469737061746368656420736f6d65207461736b2e205c5b7461736b2c2069642c20726573756c745c5d04304576656e747320747970652e74000004081010007804184f7074696f6e04045401280108104e6f6e6500000010536f6d6504002800000100007c0418526573756c740804540180044501640108084f6b040080000000000c4572720400640000010000800000040000840c3870616c6c65745f696e64696365731870616c6c6574144576656e7404045400010c34496e64657841737369676e65640800000130543a3a4163636f756e744964000010013c543a3a4163636f756e74496e646578000004b041206163636f756e7420696e646578207761732061737369676e65642e205c5b696e6465782c2077686f5c5d28496e6465784672656564040010013c543a3a4163636f756e74496e646578000104e441206163636f756e7420696e64657820686173206265656e2066726565642075702028756e61737369676e6564292e205c5b696e6465785c5d2c496e64657846726f7a656e080010013c543a3a4163636f756e74496e6465780000000130543a3a4163636f756e744964000204250141206163636f756e7420696e64657820686173206265656e2066726f7a656e20746f206974732063757272656e74206163636f756e742049442e205c5b696e6465782c2077686f5c5d04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a090909880c3c70616c6c65745f62616c616e6365731870616c6c6574144576656e740804540004490001201c456e646f7765640800000130543a3a4163636f756e7449640000180128543a3a42616c616e63650000042101416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e205c5b6163636f756e742c20667265655f62616c616e63655c5d20447573744c6f73740800000130543a3a4163636f756e7449640000180128543a3a42616c616e63650001083d01416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742ccc726573756c74696e6720696e20616e206f75747269676874206c6f73732e205c5b6163636f756e742c2062616c616e63655c5d205472616e736665720c00000130543a3a4163636f756e7449640000000130543a3a4163636f756e7449640000180128543a3a42616c616e63650002049c5472616e73666572207375636365656465642e205c5b66726f6d2c20746f2c2076616c75655c5d2842616c616e63655365740c00000130543a3a4163636f756e7449640000180128543a3a42616c616e63650000180128543a3a42616c616e6365000304c8412062616c616e6365207761732073657420627920726f6f742e205c5b77686f2c20667265652c2072657365727665645c5d1c4465706f7369740800000130543a3a4163636f756e7449640000180128543a3a42616c616e63650004041d01536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e205c5b77686f2c206465706f7369745c5d2052657365727665640800000130543a3a4163636f756e7449640000180128543a3a42616c616e63650005041d01536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e205c5b77686f2c2076616c75655c5d28556e72657365727665640800000130543a3a4163636f756e7449640000180128543a3a42616c616e63650006042501536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e205c5b77686f2c2076616c75655c5d485265736572766552657061747269617465641000000130543a3a4163636f756e7449640000000130543a3a4163636f756e7449640000180128543a3a42616c616e636500008c011853746174757300070c4d01536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742ed846696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652ea45c5b66726f6d2c20746f2c2062616c616e63652c2064657374696e6174696f6e5f7374617475735c5d04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a0909098c14346672616d655f737570706f72741874726169747318746f6b656e73106d6973633442616c616e636553746174757300010810467265650000002052657365727665640001000090103870616c6c65745f7374616b696e671870616c6c65741870616c6c6574144576656e740404540001301c457261506169640c00100120457261496e646578000018013042616c616e63654f663c543e000018013042616c616e63654f663c543e00000c550154686520657261207061796f757420686173206265656e207365743b207468652066697273742062616c616e6365206973207468652076616c696461746f722d7061796f75743b20746865207365636f6e64206973c07468652072656d61696e6465722066726f6d20746865206d6178696d756d20616d6f756e74206f66207265776172642ea85c5b6572615f696e6465782c2076616c696461746f725f7061796f75742c2072656d61696e6465725c5d2052657761726465640800000130543a3a4163636f756e744964000018013042616c616e63654f663c543e0001040501546865206e6f6d696e61746f7220686173206265656e207265776172646564206279207468697320616d6f756e742e205c5b73746173682c20616d6f756e745c5d1c536c61736865640800000130543a3a4163636f756e744964000018013042616c616e63654f663c543e00020821014f6e652076616c696461746f722028616e6420697473206e6f6d696e61746f72732920686173206265656e20736c61736865642062792074686520676976656e20616d6f756e742e545c5b76616c696461746f722c20616d6f756e745c5d684f6c64536c617368696e675265706f7274446973636172646564040010013053657373696f6e496e6465780003081901416e206f6c6420736c617368696e67207265706f72742066726f6d2061207072696f72206572612077617320646973636172646564206265636175736520697420636f756c648c6e6f742062652070726f6365737365642e205c5b73657373696f6e5f696e6465785c5d385374616b657273456c65637465640004048441206e657720736574206f66207374616b6572732077617320656c65637465642e18426f6e6465640800000130543a3a4163636f756e744964000018013042616c616e63654f663c543e000510d0416e206163636f756e742068617320626f6e646564207468697320616d6f756e742e205c5b73746173682c20616d6f756e745c5d004d014e4f54453a2054686973206576656e74206973206f6e6c7920656d6974746564207768656e2066756e64732061726520626f6e64656420766961206120646973706174636861626c652e204e6f7461626c792c210169742077696c6c206e6f7420626520656d697474656420666f72207374616b696e672072657761726473207768656e20746865792061726520616464656420746f207374616b652e20556e626f6e6465640800000130543a3a4163636f756e744964000018013042616c616e63654f663c543e000604d8416e206163636f756e742068617320756e626f6e646564207468697320616d6f756e742e205c5b73746173682c20616d6f756e745c5d2457697468647261776e0800000130543a3a4163636f756e744964000018013042616c616e63654f663c543e0007085901416e206163636f756e74206861732063616c6c6564206077697468647261775f756e626f6e6465646020616e642072656d6f76656420756e626f6e64696e67206368756e6b7320776f727468206042616c616e636560ac66726f6d2074686520756e6c6f636b696e672071756575652e205c5b73746173682c20616d6f756e745c5d184b69636b65640800000130543a3a4163636f756e7449640000000130543a3a4163636f756e744964000804090141206e6f6d696e61746f7220686173206265656e206b69636b65642066726f6d20612076616c696461746f722e205c5b6e6f6d696e61746f722c2073746173685c5d545374616b696e67456c656374696f6e4661696c6564000904ac54686520656c656374696f6e206661696c65642e204e6f206e65772065726120697320706c616e6e65642e1c4368696c6c65640400000130543a3a4163636f756e744964000a082101416e206163636f756e74206861732073746f707065642070617274696369706174696e672061732065697468657220612076616c696461746f72206f72206e6f6d696e61746f722e245c5b73746173685c5d345061796f7574537461727465640800100120457261496e6465780000000130543a3a4163636f756e744964000b041501546865207374616b657273272072657761726473206172652067657474696e6720706169642e205c5b6572615f696e6465782c2076616c696461746f725f73746173685c5d04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a090909940c3c70616c6c65745f6f6666656e6365731870616c6c6574144576656e740001041c4f6666656e636508009801104b696e6400002801384f706171756554696d65536c6f7400000c5101546865726520697320616e206f6666656e6365207265706f72746564206f662074686520676976656e20606b696e64602068617070656e656420617420746865206073657373696f6e5f696e6465786020616e643501286b696e642d7370656369666963292074696d6520736c6f742e2054686973206576656e74206973206e6f74206465706f736974656420666f72206475706c696361746520736c61736865732e4c5c5b6b696e642c2074696d65736c6f745c5d2e04304576656e747320747970652e980000031000000008009c0c3870616c6c65745f73657373696f6e1870616c6c6574144576656e74000104284e657753657373696f6e040010013053657373696f6e496e64657800000849014e65772073657373696f6e206861732068617070656e65642e204e6f746520746861742074686520617267756d656e7420697320746865205c5b73657373696f6e5f696e6465785c5d2c206e6f74207468659c626c6f636b206e756d626572206173207468652074797065206d6967687420737567676573742e04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a090909a00c3870616c6c65745f6772616e6470611870616c6c6574144576656e7400010c384e6577417574686f7269746965730400a40134417574686f726974794c697374000004d44e657720617574686f726974792073657420686173206265656e206170706c6965642e205c5b617574686f726974795f7365745c5d185061757365640001049843757272656e7420617574686f726974792073657420686173206265656e207061757365642e1c526573756d65640002049c43757272656e7420617574686f726974792073657420686173206265656e20726573756d65642e04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a090909a4000002a800a800000408ac2000ac0c4c73705f66696e616c6974795f6772616e6470610c617070185075626c696300000400b0013c656432353531393a3a5075626c69630000b00c1c73705f636f72651c65643235353139185075626c6963000004000401205b75383b2033325d0000b40c4070616c6c65745f696d5f6f6e6c696e651870616c6c6574144576656e7404045400010c4448656172746265617452656365697665640400b80138543a3a417574686f726974794964000004010141206e657720686561727462656174207761732072656365697665642066726f6d2060417574686f72697479496460205c5b617574686f726974795f69645c5d1c416c6c476f6f64000104d041742074686520656e64206f66207468652073657373696f6e2c206e6f206f6666656e63652077617320636f6d6d69747465642e2c536f6d654f66666c696e650400c0016c5665633c4964656e74696669636174696f6e5475706c653c543e3e000204390141742074686520656e64206f66207468652073657373696f6e2c206174206c65617374206f6e652076616c696461746f722077617320666f756e6420746f206265205c5b6f66666c696e655c5d2e04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a090909b8104070616c6c65745f696d5f6f6e6c696e651c737232353531392c6170705f73723235353139185075626c696300000400bc013c737232353531393a3a5075626c69630000bc0c1c73705f636f72651c73723235353139185075626c6963000004000401205b75383b2033325d0000c0000002c400c40000040800c800c8083870616c6c65745f7374616b696e67204578706f7375726508244163636f756e74496401001c42616c616e63650118000c0114746f74616ccc011c42616c616e636500010c6f776ecc011c42616c616e63650001186f7468657273d001ac5665633c496e646976696475616c4578706f737572653c4163636f756e7449642c2042616c616e63653e3e0000cc0000061800d0000002d400d4083870616c6c65745f7374616b696e6748496e646976696475616c4578706f7375726508244163636f756e74496401001c42616c616e636501180008010c77686f0001244163636f756e74496400011476616c7565cc011c42616c616e63650000d80c4070616c6c65745f64656d6f63726163791870616c6c6574144576656e740404540001442050726f706f736564080010012450726f70496e646578000018013042616c616e63654f663c543e0000042d0141206d6f74696f6e20686173206265656e2070726f706f7365642062792061207075626c6963206163636f756e742e205c5b70726f706f73616c5f696e6465782c206465706f7369745c5d185461626c65640c0010012450726f70496e646578000018013042616c616e63654f663c543e0000dc01445665633c543a3a4163636f756e7449643e000108450141207075626c69632070726f706f73616c20686173206265656e207461626c656420666f72207265666572656e64756d20766f74652e205c5b70726f706f73616c5f696e6465782c206465706f7369742c306465706f7369746f72735c5d3845787465726e616c5461626c656400020494416e2065787465726e616c2070726f706f73616c20686173206265656e207461626c65642e1c53746172746564080010013c5265666572656e64756d496e6465780000e00134566f74655468726573686f6c64000304c041207265666572656e64756d2068617320626567756e2e205c5b7265665f696e6465782c207468726573686f6c645c5d18506173736564040010013c5265666572656e64756d496e646578000404e4412070726f706f73616c20686173206265656e20617070726f766564206279207265666572656e64756d2e205c5b7265665f696e6465785c5d244e6f74506173736564040010013c5265666572656e64756d496e646578000504e4412070726f706f73616c20686173206265656e2072656a6563746564206279207265666572656e64756d2e205c5b7265665f696e6465785c5d2443616e63656c6c6564040010013c5265666572656e64756d496e646578000604b841207265666572656e64756d20686173206265656e2063616e63656c6c65642e205c5b7265665f696e6465785c5d204578656375746564080010013c5265666572656e64756d496e64657800007c01384469737061746368526573756c74000704c8412070726f706f73616c20686173206265656e20656e61637465642e205c5b7265665f696e6465782c20726573756c745c5d2444656c6567617465640800000130543a3a4163636f756e7449640000000130543a3a4163636f756e7449640008041d01416e206163636f756e74206861732064656c65676174656420746865697220766f746520746f20616e6f74686572206163636f756e742e205c5b77686f2c207461726765745c5d2c556e64656c6567617465640400000130543a3a4163636f756e744964000904f4416e205c5b6163636f756e745c5d206861732063616e63656c6c656420612070726576696f75732064656c65676174696f6e206f7065726174696f6e2e185665746f65640c00000130543a3a4163636f756e744964000024011c543a3a486173680000100138543a3a426c6f636b4e756d626572000a040d01416e2065787465726e616c2070726f706f73616c20686173206265656e207665746f65642e205c5b77686f2c2070726f706f73616c5f686173682c20756e74696c5c5d34507265696d6167654e6f7465640c0024011c543a3a486173680000000130543a3a4163636f756e744964000018013042616c616e63654f663c543e000b045d01412070726f706f73616c277320707265696d61676520776173206e6f7465642c20616e6420746865206465706f7369742074616b656e2e205c5b70726f706f73616c5f686173682c2077686f2c206465706f7369745c5d30507265696d616765557365640c0024011c543a3a486173680000000130543a3a4163636f756e744964000018013042616c616e63654f663c543e000c081101412070726f706f73616c20707265696d616765207761732072656d6f76656420616e6420757365642028746865206465706f736974207761732072657475726e6564292e905c5b70726f706f73616c5f686173682c2070726f76696465722c206465706f7369745c5d3c507265696d616765496e76616c6964080024011c543a3a48617368000010013c5265666572656e64756d496e646578000d080901412070726f706f73616c20636f756c64206e6f7420626520657865637574656420626563617573652069747320707265696d6167652077617320696e76616c69642e705c5b70726f706f73616c5f686173682c207265665f696e6465785c5d3c507265696d6167654d697373696e67080024011c543a3a48617368000010013c5265666572656e64756d496e646578000e080901412070726f706f73616c20636f756c64206e6f7420626520657865637574656420626563617573652069747320707265696d61676520776173206d697373696e672e705c5b70726f706f73616c5f686173682c207265665f696e6465785c5d38507265696d616765526561706564100024011c543a3a486173680000000130543a3a4163636f756e744964000018013042616c616e63654f663c543e0000000130543a3a4163636f756e744964000f08290141207265676973746572656420707265696d616765207761732072656d6f76656420616e6420746865206465706f73697420636f6c6c656374656420627920746865207265617065722eb05c5b70726f706f73616c5f686173682c2070726f76696465722c206465706f7369742c207265617065725c5d2c426c61636b6c6973746564040024011c543a3a48617368001004d4412070726f706f73616c205c5b686173685c5d20686173206265656e20626c61636b6c6973746564207065726d616e656e746c792e04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a090909dc0000020000e00c4070616c6c65745f64656d6f637261637938766f74655f7468726573686f6c6434566f74655468726573686f6c6400010c5053757065724d616a6f72697479417070726f76650000005053757065724d616a6f72697479416761696e73740001003853696d706c654d616a6f7269747900020000e40c4470616c6c65745f636f6c6c6563746976651870616c6c6574144576656e7408045400044900011c2050726f706f7365641000000130543a3a4163636f756e744964000010013450726f706f73616c496e646578000024011c543a3a48617368000010012c4d656d626572436f756e7400000c490141206d6f74696f6e2028676976656e20686173682920686173206265656e2070726f706f7365642028627920676976656e206163636f756e742920776974682061207468726573686f6c642028676976656e3c604d656d626572436f756e7460292ed45c5b6163636f756e742c2070726f706f73616c5f696e6465782c2070726f706f73616c5f686173682c207468726573686f6c645c5d14566f7465641400000130543a3a4163636f756e744964000024011c543a3a486173680000e80110626f6f6c000010012c4d656d626572436f756e74000010012c4d656d626572436f756e7400010c050141206d6f74696f6e2028676976656e20686173682920686173206265656e20766f746564206f6e20627920676976656e206163636f756e742c206c656176696e671501612074616c6c79202879657320766f74657320616e64206e6f20766f74657320676976656e20726573706563746976656c7920617320604d656d626572436f756e7460292ea85c5b6163636f756e742c2070726f706f73616c5f686173682c20766f7465642c207965732c206e6f5c5d20417070726f766564040024011c543a3a48617368000208c041206d6f74696f6e2077617320617070726f76656420627920746865207265717569726564207468726573686f6c642e445c5b70726f706f73616c5f686173685c5d2c446973617070726f766564040024011c543a3a48617368000308d041206d6f74696f6e20776173206e6f7420617070726f76656420627920746865207265717569726564207468726573686f6c642e445c5b70726f706f73616c5f686173685c5d204578656375746564080024011c543a3a4861736800007c01384469737061746368526573756c74000408210141206d6f74696f6e207761732065786563757465643b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e645c5b70726f706f73616c5f686173682c20726573756c745c5d384d656d6265724578656375746564080024011c543a3a4861736800007c01384469737061746368526573756c740005084901412073696e676c65206d656d6265722064696420736f6d6520616374696f6e3b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e645c5b70726f706f73616c5f686173682c20726573756c745c5d18436c6f7365640c0024011c543a3a48617368000010012c4d656d626572436f756e74000010012c4d656d626572436f756e740006085501412070726f706f73616c2077617320636c6f736564206265636175736520697473207468726573686f6c64207761732072656163686564206f7220616674657220697473206475726174696f6e207761732075702e685c5b70726f706f73616c5f686173682c207965732c206e6f5c5d04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a090909e80000050000ec0c4470616c6c65745f636f6c6c6563746976651870616c6c6574144576656e7408045400044900011c2050726f706f7365641000000130543a3a4163636f756e744964000010013450726f706f73616c496e646578000024011c543a3a48617368000010012c4d656d626572436f756e7400000c490141206d6f74696f6e2028676976656e20686173682920686173206265656e2070726f706f7365642028627920676976656e206163636f756e742920776974682061207468726573686f6c642028676976656e3c604d656d626572436f756e7460292ed45c5b6163636f756e742c2070726f706f73616c5f696e6465782c2070726f706f73616c5f686173682c207468726573686f6c645c5d14566f7465641400000130543a3a4163636f756e744964000024011c543a3a486173680000e80110626f6f6c000010012c4d656d626572436f756e74000010012c4d656d626572436f756e7400010c050141206d6f74696f6e2028676976656e20686173682920686173206265656e20766f746564206f6e20627920676976656e206163636f756e742c206c656176696e671501612074616c6c79202879657320766f74657320616e64206e6f20766f74657320676976656e20726573706563746976656c7920617320604d656d626572436f756e7460292ea85c5b6163636f756e742c2070726f706f73616c5f686173682c20766f7465642c207965732c206e6f5c5d20417070726f766564040024011c543a3a48617368000208c041206d6f74696f6e2077617320617070726f76656420627920746865207265717569726564207468726573686f6c642e445c5b70726f706f73616c5f686173685c5d2c446973617070726f766564040024011c543a3a48617368000308d041206d6f74696f6e20776173206e6f7420617070726f76656420627920746865207265717569726564207468726573686f6c642e445c5b70726f706f73616c5f686173685c5d204578656375746564080024011c543a3a4861736800007c01384469737061746368526573756c74000408210141206d6f74696f6e207761732065786563757465643b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e645c5b70726f706f73616c5f686173682c20726573756c745c5d384d656d6265724578656375746564080024011c543a3a4861736800007c01384469737061746368526573756c740005084901412073696e676c65206d656d6265722064696420736f6d6520616374696f6e3b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e645c5b70726f706f73616c5f686173682c20726573756c745c5d18436c6f7365640c0024011c543a3a48617368000010012c4d656d626572436f756e74000010012c4d656d626572436f756e740006085501412070726f706f73616c2077617320636c6f736564206265636175736520697473207468726573686f6c64207761732072656163686564206f7220616674657220697473206475726174696f6e207761732075702e685c5b70726f706f73616c5f686173682c207965732c206e6f5c5d04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a090909f00c6470616c6c65745f656c656374696f6e735f70687261676d656e1870616c6c6574144576656e7404045400011c1c4e65775465726d0400f401ec5665633c283c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e7449642c2042616c616e63654f663c543e293e000014550141206e6577207465726d2077697468205c5b6e65775f6d656d626572735c5d2e205468697320696e64696361746573207468617420656e6f7567682063616e64696461746573206578697374656420746f2072756e550174686520656c656374696f6e2c206e6f74207468617420656e6f756768206861766520686173206265656e20656c65637465642e2054686520696e6e65722076616c7565206d757374206265206578616d696e65644501666f72207468697320707572706f73652e204120604e65775465726d285c5b5c5d296020696e64696361746573207468617420736f6d652063616e6469646174657320676f7420746865697220626f6e645501736c617368656420616e64206e6f6e65207765726520656c65637465642c207768696c73742060456d7074795465726d60206d65616e732074686174206e6f2063616e64696461746573206578697374656420746f2c626567696e20776974682e24456d7074795465726d00010831014e6f20286f72206e6f7420656e6f756768292063616e64696461746573206578697374656420666f72207468697320726f756e642e205468697320697320646966666572656e742066726f6dc8604e65775465726d285c5b5c5d29602e2053656520746865206465736372697074696f6e206f6620604e65775465726d602e34456c656374696f6e4572726f72000204e4496e7465726e616c206572726f722068617070656e6564207768696c6520747279696e6720746f20706572666f726d20656c656374696f6e2e304d656d6265724b69636b656404000001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e744964000308510141205c5b6d656d6265725c5d20686173206265656e2072656d6f7665642e20546869732073686f756c6420616c7761797320626520666f6c6c6f7765642062792065697468657220604e65775465726d60206f723060456d7074795465726d602e2452656e6f756e63656404000001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e74496400040498536f6d656f6e65206861732072656e6f756e6365642074686569722063616e6469646163792e4043616e646964617465536c617368656408000001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e744964000018013042616c616e63654f663c543e000510590141205c5b63616e6469646174655c5d2077617320736c6173686564206279205c5b616d6f756e745c5d2064756520746f206661696c696e6720746f206f627461696e20612073656174206173206d656d626572206f722872756e6e65722d75702e00e44e6f74652074686174206f6c64206d656d6265727320616e642072756e6e6572732d75702061726520616c736f2063616e646964617465732e4453656174486f6c646572536c617368656408000001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e744964000018013042616c616e63654f663c543e000604550141205c5b7365617420686f6c6465725c5d2077617320736c6173686564206279205c5b616d6f756e745c5d206279206265696e6720666f72636566756c6c792072656d6f7665642066726f6d20746865207365742e04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a090909f4000002f800f800000408001800fc0c4470616c6c65745f6d656d626572736869701870616c6c6574144576656e740804540004490001182c4d656d6265724164646564000004e054686520676976656e206d656d626572207761732061646465643b2073656520746865207472616e73616374696f6e20666f722077686f2e344d656d62657252656d6f766564000104e854686520676976656e206d656d626572207761732072656d6f7665643b2073656520746865207472616e73616374696f6e20666f722077686f2e384d656d6265727353776170706564000204d854776f206d656d62657273207765726520737761707065643b2073656520746865207472616e73616374696f6e20666f722077686f2e304d656d6265727352657365740003041501546865206d656d62657273686970207761732072657365743b2073656520746865207472616e73616374696f6e20666f722077686f20746865206e6577207365742069732e284b65794368616e676564000404844f6e65206f6620746865206d656d6265727327206b657973206368616e6765642e1444756d6d790005046c5068616e746f6d206d656d6265722c206e6576657220757365642e04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a09090901010c3c70616c6c65745f74726561737572791870616c6c6574144576656e7408045400044900011c2050726f706f736564040010013450726f706f73616c496e646578000004804e65772070726f706f73616c2e205c5b70726f706f73616c5f696e6465785c5d205370656e64696e67040018013c42616c616e63654f663c542c20493e00010439015765206861766520656e6465642061207370656e6420706572696f6420616e642077696c6c206e6f7720616c6c6f636174652066756e64732e205c5b6275646765745f72656d61696e696e675c5d1c417761726465640c0010013450726f706f73616c496e646578000018013c42616c616e63654f663c542c20493e0000000130543a3a4163636f756e7449640002041901536f6d652066756e64732068617665206265656e20616c6c6f63617465642e205c5b70726f706f73616c5f696e6465782c2061776172642c2062656e65666963696172795c5d2052656a6563746564080010013450726f706f73616c496e646578000018013c42616c616e63654f663c542c20493e0003042101412070726f706f73616c207761732072656a65637465643b2066756e6473207765726520736c61736865642e205c5b70726f706f73616c5f696e6465782c20736c61736865645c5d144275726e74040018013c42616c616e63654f663c542c20493e000404ac536f6d65206f66206f75722066756e64732068617665206265656e206275726e742e205c5b6275726e5c5d20526f6c6c6f766572040018013c42616c616e63654f663c542c20493e0005082d015370656e64696e67206861732066696e69736865643b20746869732069732074686520616d6f756e74207468617420726f6c6c73206f76657220756e74696c206e657874207370656e642e505c5b6275646765745f72656d61696e696e675c5d1c4465706f736974040018013c42616c616e63654f663c542c20493e000604ac536f6d652066756e64732068617665206265656e206465706f73697465642e205c5b6465706f7369745c5d04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a0909090501105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e18636c61696d731870616c6c6574144576656e740404540001041c436c61696d65640c00000130543a3a4163636f756e74496400000901013c457468657265756d41646472657373000018013042616c616e63654f663c543e000004f0536f6d656f6e6520636c61696d656420736f6d6520444f54732e20605b77686f2c20657468657265756d5f616464726573732c20616d6f756e745d6004a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a09090909010c5c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e18636c61696d733c457468657265756d41646472657373000004000d0101205b75383b2032305d00000d0100000314000000080011010c3870616c6c65745f76657374696e671870616c6c6574144576656e740404540001083856657374696e67557064617465640800000130543a3a4163636f756e744964000018013042616c616e63654f663c543e00000c510154686520616d6f756e742076657374656420686173206265656e20757064617465642e205468697320636f756c6420696e6469636174652061206368616e676520696e2066756e647320617661696c61626c652e25015468652062616c616e636520676976656e2069732074686520616d6f756e74207768696368206973206c65667420756e7665737465642028616e642074687573206c6f636b6564292e545c5b6163636f756e742c20756e7665737465645c5d4056657374696e67436f6d706c657465640400000130543a3a4163636f756e7449640001049c416e205c5b6163636f756e745c5d20686173206265636f6d652066756c6c79207665737465642e04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a09090915010c3870616c6c65745f7574696c6974791870616c6c6574144576656e7400010c404261746368496e746572727570746564080010010c753332000064013444697370617463684572726f7200000855014261746368206f66206469737061746368657320646964206e6f7420636f6d706c6574652066756c6c792e20496e646578206f66206669727374206661696c696e6720646973706174636820676976656e2c2061738c77656c6c20617320746865206572726f722e205c5b696e6465782c206572726f725c5d384261746368436f6d706c65746564000104c84261746368206f66206469737061746368657320636f6d706c657465642066756c6c792077697468206e6f206572726f722e344974656d436f6d706c657465640002041d01412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206e6f206572726f722e04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a09090919010c3c70616c6c65745f6964656e746974791870616c6c6574144576656e740404540001282c4964656e746974795365740400000130543a3a4163636f756e7449640000040d0141206e616d652077617320736574206f72207265736574202877686963682077696c6c2072656d6f766520616c6c206a756467656d656e7473292e205c5b77686f5c5d3c4964656e74697479436c65617265640800000130543a3a4163636f756e744964000018013042616c616e63654f663c543e000104110141206e616d652077617320636c65617265642c20616e642074686520676976656e2062616c616e63652072657475726e65642e205c5b77686f2c206465706f7369745c5d384964656e746974794b696c6c65640800000130543a3a4163636f756e744964000018013042616c616e63654f663c543e000204090141206e616d65207761732072656d6f76656420616e642074686520676976656e2062616c616e636520736c61736865642e205c5b77686f2c206465706f7369745c5d484a756467656d656e745265717565737465640800000130543a3a4163636f756e7449640000100138526567697374726172496e646578000304010141206a756467656d656e74207761732061736b65642066726f6d2061207265676973747261722e205c5b77686f2c207265676973747261725f696e6465785c5d504a756467656d656e74556e7265717565737465640800000130543a3a4163636f756e7449640000100138526567697374726172496e646578000404ec41206a756467656d656e74207265717565737420776173207265747261637465642e205c5b77686f2c207265676973747261725f696e6465785c5d384a756467656d656e74476976656e0800000130543a3a4163636f756e7449640000100138526567697374726172496e646578000504050141206a756467656d656e742077617320676976656e2062792061207265676973747261722e205c5b7461726765742c207265676973747261725f696e6465785c5d3852656769737472617241646465640400100138526567697374726172496e646578000604a84120726567697374726172207761732061646465642e205c5b7265676973747261725f696e6465785c5d405375624964656e7469747941646465640c00000130543a3a4163636f756e7449640000000130543a3a4163636f756e744964000018013042616c616e63654f663c543e000704510141207375622d6964656e746974792077617320616464656420746f20616e206964656e7469747920616e6420746865206465706f73697420706169642e205c5b7375622c206d61696e2c206465706f7369745c5d485375624964656e7469747952656d6f7665640c00000130543a3a4163636f756e7449640000000130543a3a4163636f756e744964000018013042616c616e63654f663c543e000808090141207375622d6964656e74697479207761732072656d6f7665642066726f6d20616e206964656e7469747920616e6420746865206465706f7369742066726565642e585c5b7375622c206d61696e2c206465706f7369745c5d485375624964656e746974795265766f6b65640c00000130543a3a4163636f756e7449640000000130543a3a4163636f756e744964000018013042616c616e63654f663c543e000908190141207375622d6964656e746974792077617320636c65617265642c20616e642074686520676976656e206465706f7369742072657061747269617465642066726f6d2074686525016d61696e206964656e74697479206163636f756e7420746f20746865207375622d6964656e74697479206163636f756e742e205c5b7375622c206d61696e2c206465706f7369745c5d04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a0909091d010c3070616c6c65745f70726f78791870616c6c6574144576656e740404540001103450726f7879457865637574656404007c01384469737061746368526573756c74000004e8412070726f78792077617320657865637574656420636f72726563746c792c20776974682074686520676976656e205c5b726573756c745c5d2e40416e6f6e796d6f7573437265617465641000000130543a3a4163636f756e7449640000000130543a3a4163636f756e744964000021010130543a3a50726f78795479706500002501010c75313600010ce8416e6f6e796d6f7573206163636f756e7420686173206265656e2063726561746564206279206e65772070726f7879207769746820676976656e0901646973616d626967756174696f6e20696e64657820616e642070726f787920747970652e205c5b616e6f6e796d6f75732c2077686f2c2070726f78795f747970652c58646973616d626967756174696f6e5f696e6465785c5d24416e6e6f756e6365640c00000130543a3a4163636f756e7449640000000130543a3a4163636f756e744964000024013443616c6c486173684f663c543e0002044d01416e20616e6e6f756e63656d656e742077617320706c6163656420746f206d616b6520612063616c6c20696e20746865206675747572652e205c5b7265616c2c2070726f78792c2063616c6c5f686173685c5d2850726f787941646465641000000130543a3a4163636f756e7449640000000130543a3a4163636f756e744964000021010130543a3a50726f7879547970650000100138543a3a426c6f636b4e756d626572000304f8412070726f7879207761732061646465642e205c5b64656c656761746f722c2064656c6567617465652c2070726f78795f747970652c2064656c61795c5d04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a09090921010840706f6c6b61646f745f72756e74696d652450726f78795479706500011c0c416e790000002c4e6f6e5472616e7366657200010028476f7665726e616e63650002001c5374616b696e67000300444964656e746974794a756467656d656e740005002c43616e63656c50726f78790006001c41756374696f6e000700002501000005040029010c3c70616c6c65745f6d756c74697369671870616c6c6574144576656e740404540001102c4e65774d756c74697369670c00000130543a3a4163636f756e7449640000000130543a3a4163636f756e744964000004012043616c6c48617368000004190141206e6577206d756c7469736967206f7065726174696f6e2068617320626567756e2e205c5b617070726f76696e672c206d756c74697369672c2063616c6c5f686173685c5d404d756c7469736967417070726f76616c1000000130543a3a4163636f756e74496400002d01016454696d65706f696e743c543a3a426c6f636b4e756d6265723e0000000130543a3a4163636f756e744964000004012043616c6c48617368000108c841206d756c7469736967206f7065726174696f6e20686173206265656e20617070726f76656420627920736f6d656f6e652eb45c5b617070726f76696e672c2074696d65706f696e742c206d756c74697369672c2063616c6c5f686173685c5d404d756c746973696745786563757465641400000130543a3a4163636f756e74496400002d01016454696d65706f696e743c543a3a426c6f636b4e756d6265723e0000000130543a3a4163636f756e744964000004012043616c6c4861736800007c01384469737061746368526573756c74000204550141206d756c7469736967206f7065726174696f6e20686173206265656e2065786563757465642e205c5b617070726f76696e672c2074696d65706f696e742c206d756c74697369672c2063616c6c5f686173685c5d444d756c746973696743616e63656c6c65641000000130543a3a4163636f756e74496400002d01016454696d65706f696e743c543a3a426c6f636b4e756d6265723e0000000130543a3a4163636f756e744964000004012043616c6c486173680003045d0141206d756c7469736967206f7065726174696f6e20686173206265656e2063616e63656c6c65642e205c5b63616e63656c6c696e672c2074696d65706f696e742c206d756c74697369672c2063616c6c5f686173685c5d04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a0909092d01083c70616c6c65745f6d756c74697369672454696d65706f696e74042c426c6f636b4e756d62657201100008011868656967687410012c426c6f636b4e756d626572000114696e64657810010c753332000031010c3c70616c6c65745f626f756e746965731870616c6c6574144576656e7404045400011c38426f756e747950726f706f736564040010012c426f756e7479496e646578000004784e657720626f756e74792070726f706f73616c2e205c5b696e6465785c5d38426f756e747952656a6563746564080010012c426f756e7479496e646578000018013042616c616e63654f663c543e0001040d014120626f756e74792070726f706f73616c207761732072656a65637465643b2066756e6473207765726520736c61736865642e205c5b696e6465782c20626f6e645c5d48426f756e7479426563616d65416374697665040010012c426f756e7479496e646578000204e04120626f756e74792070726f706f73616c2069732066756e64656420616e6420626563616d65206163746976652e205c5b696e6465785c5d34426f756e747941776172646564080010012c426f756e7479496e6465780000000130543a3a4163636f756e744964000304f04120626f756e7479206973206177617264656420746f20612062656e65666963696172792e205c5b696e6465782c2062656e65666963696172795c5d34426f756e7479436c61696d65640c0010012c426f756e7479496e646578000018013042616c616e63654f663c543e0000000130543a3a4163636f756e74496400040409014120626f756e747920697320636c61696d65642062792062656e65666963696172792e205c5b696e6465782c207061796f75742c2062656e65666963696172795c5d38426f756e747943616e63656c6564040010012c426f756e7479496e646578000504804120626f756e74792069732063616e63656c6c65642e205c5b696e6465785c5d38426f756e7479457874656e646564040010012c426f756e7479496e646578000604984120626f756e74792065787069727920697320657874656e6465642e205c5b696e6465785c5d04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a09090935010c2c70616c6c65745f746970731870616c6c6574144576656e74040454000114184e6577546970040024011c543a3a48617368000004c841206e6577207469702073756767657374696f6e20686173206265656e206f70656e65642e205c5b7469705f686173685c5d28546970436c6f73696e67040024011c543a3a486173680001040d0141207469702073756767657374696f6e206861732072656163686564207468726573686f6c6420616e6420697320636c6f73696e672e205c5b7469705f686173685c5d24546970436c6f7365640c0024011c543a3a486173680000000130543a3a4163636f756e744964000018013042616c616e63654f663c543e000204ec41207469702073756767657374696f6e20686173206265656e20636c6f7365642e205c5b7469705f686173682c2077686f2c207061796f75745c5d30546970526574726163746564040024011c543a3a48617368000304c441207469702073756767657374696f6e20686173206265656e207265747261637465642e205c5b7469705f686173685c5d28546970536c61736865640c0024011c543a3a486173680000000130543a3a4163636f756e744964000018013042616c616e63654f663c543e000404010141207469702073756767657374696f6e20686173206265656e20736c61736865642e205c5b7469705f686173682c2066696e6465722c206465706f7369745c5d04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a09090939010c9070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173651870616c6c6574144576656e7404045400011838536f6c7574696f6e53746f72656408003d01013c456c656374696f6e436f6d707574650000e80110626f6f6c000018b44120736f6c7574696f6e207761732073746f72656420776974682074686520676976656e20636f6d707574652e003d0149662074686520736f6c7574696f6e206973207369676e65642c2074686973206d65616e732074686174206974206861736e277420796574206265656e2070726f6365737365642e204966207468650501736f6c7574696f6e20697320756e7369676e65642c2074686973206d65616e7320746861742069742068617320616c736f206265656e2070726f6365737365642e0051015468652060626f6f6c6020697320607472756560207768656e20612070726576696f757320736f6c7574696f6e2077617320656a656374656420746f206d616b6520726f6f6d20666f722074686973206f6e652e44456c656374696f6e46696e616c697a656404004101015c4f7074696f6e3c456c656374696f6e436f6d707574653e000108550154686520656c656374696f6e20686173206265656e2066696e616c697a65642c20776974682060536f6d6560206f662074686520676976656e20636f6d7075746174696f6e2c206f7220656c73652069662074686560656c656374696f6e206661696c65642c20604e6f6e65602e20526577617264656408000001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e744964000018013042616c616e63654f663c543e0002042501416e206163636f756e7420686173206265656e20726577617264656420666f72207468656972207369676e6564207375626d697373696f6e206265696e672066696e616c697a65642e1c536c617368656408000001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e744964000018013042616c616e63654f663c543e0003042101416e206163636f756e7420686173206265656e20736c617368656420666f72207375626d697474696e6720616e20696e76616c6964207369676e6564207375626d697373696f6e2e485369676e6564506861736553746172746564040010010c753332000404c0546865207369676e6564207068617365206f662074686520676976656e20726f756e642068617320737461727465642e50556e7369676e6564506861736553746172746564040010010c753332000504c854686520756e7369676e6564207068617365206f662074686520676976656e20726f756e642068617320737461727465642e04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a0909093d01089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173653c456c656374696f6e436f6d707574650001141c4f6e436861696e000000185369676e656400010020556e7369676e65640002002046616c6c6261636b00030024456d657267656e637900040000410104184f7074696f6e040454013d010108104e6f6e6500000010536f6d6504003d0100000100004501106c706f6c6b61646f745f72756e74696d655f70617261636861696e7324696e636c7573696f6e1870616c6c6574144576656e7404045400010c3c43616e6469646174654261636b656410004901016443616e646964617465526563656970743c543a3a486173683e000069010120486561644461746100006d010124436f7265496e64657800007101012847726f7570496e646578000004c0412063616e64696461746520776173206261636b65642e20605b63616e6469646174652c20686561645f646174615d604443616e646964617465496e636c7564656410004901016443616e646964617465526563656970743c543a3a486173683e000069010120486561644461746100006d010124436f7265496e64657800007101012847726f7570496e646578000104c8412063616e6469646174652077617320696e636c756465642e20605b63616e6469646174652c20686561645f646174615d604443616e64696461746554696d65644f75740c004901016443616e646964617465526563656970743c543a3a486173683e000069010120486561644461746100006d010124436f7265496e646578000204bc412063616e6469646174652074696d6564206f75742e20605b63616e6469646174652c20686561645f646174615d6004a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a09090949010c4c706f6c6b61646f745f7072696d6974697665730876314043616e6469646174655265636569707404044801240008012864657363726970746f724d01015843616e64696461746544657363726970746f723c483e000140636f6d6d69746d656e74735f686173682401104861736800004d010c4c706f6c6b61646f745f7072696d6974697665730876314c43616e64696461746544657363726970746f7204044801240024011c706172615f696451010108496400013072656c61795f706172656e7424010448000120636f6c6c61746f7255010128436f6c6c61746f7249640001787065727369737465645f76616c69646174696f6e5f646174615f6861736824011048617368000120706f765f6861736824011048617368000130657261737572655f726f6f74240110486173680001247369676e617475726559010144436f6c6c61746f725369676e6174757265000124706172615f686561642401104861736800015076616c69646174696f6e5f636f64655f686173686501014856616c69646174696f6e436f646548617368000051010c48706f6c6b61646f745f70617261636861696e287072696d6974697665730849640000040010010c75333200005501104c706f6c6b61646f745f7072696d69746976657308763030636f6c6c61746f725f617070185075626c696300000400bc013c737232353531393a3a5075626c696300005901104c706f6c6b61646f745f7072696d69746976657308763030636f6c6c61746f725f617070245369676e6174757265000004005d010148737232353531393a3a5369676e617475726500005d010c1c73705f636f72651c73723235353139245369676e617475726500000400610101205b75383b2036345d0000610100000340000000080065010c48706f6c6b61646f745f70617261636861696e287072696d6974697665734856616c69646174696f6e436f6465486173680000040024011048617368000069010c48706f6c6b61646f745f70617261636861696e287072696d6974697665732048656164446174610000040028011c5665633c75383e00006d010c4c706f6c6b61646f745f7072696d69746976657308763124436f7265496e6465780000040010010c753332000071010c4c706f6c6b61646f745f7072696d6974697665730876312847726f7570496e6465780000040010010c75333200007501106c706f6c6b61646f745f72756e74696d655f70617261636861696e731470617261731870616c6c6574144576656e740001144843757272656e74436f646555706461746564040051010118506172614964000004cc43757272656e7420636f646520686173206265656e207570646174656420666f72206120506172612e2060706172615f6964604843757272656e744865616455706461746564040051010118506172614964000104cc43757272656e74206865616420686173206265656e207570646174656420666f72206120506172612e2060706172615f69646050436f6465557067726164655363686564756c6564040051010118506172614964000204dc4120636f6465207570677261646520686173206265656e207363686564756c656420666f72206120506172612e2060706172615f696460304e6577486561644e6f746564040051010118506172614964000304bc41206e6577206865616420686173206265656e206e6f74656420666f72206120506172612e2060706172615f69646030416374696f6e517565756564080051010118506172614964000010013053657373696f6e496e646578000404f041207061726120686173206265656e2071756575656420746f20657865637574652070656e64696e6720616374696f6e732e2060706172615f69646004a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a0909097901106c706f6c6b61646f745f72756e74696d655f70617261636861696e730c756d701870616c6c6574144576656e7400011c34496e76616c6964466f726d617404000401244d657373616765496400000878557077617264206d65737361676520697320696e76616c69642058434d2e205c5b206964205c5d48556e737570706f7274656456657273696f6e04000401244d6573736167654964000108b4557077617264206d65737361676520697320756e737570706f727465642076657273696f6e206f662058434d2e205c5b206964205c5d38457865637574656455707761726408000401244d657373616765496400007d01011c4f7574636f6d65000208bc557077617264206d65737361676520657865637574656420776974682074686520676976656e206f7574636f6d652e445c5b2069642c206f7574636f6d65205c5d3c5765696768744578686175737465640c000401244d657373616765496400002001185765696768740000200118576569676874000308f054686520776569676874206c696d697420666f722068616e646c696e6720646f776e77617264206d657373616765732077617320726561636865642e745c5b2069642c2072656d61696e696e672c207265717569726564205c5d585570776172644d6573736167657352656365697665640c0051010118506172614964000010010c753332000010010c7533320004080101536f6d6520646f776e77617264206d657373616765732068617665206265656e20726563656976656420616e642077696c6c2062652070726f6365737365642e5c5c5b20706172612c20636f756e742c2073697a65205c5d484f766572776569676874456e71756575656410005101011850617261496400000401244d6573736167654964000020013c4f766572776569676874496e6465780000200118576569676874000518090154686520776569676874206275646765742077617320657863656564656420666f7220616e20696e646976696475616c20646f776e77617264206d6573736167652e00550154686973206d6573736167652063616e206265206c617465722064697370617463686564206d616e75616c6c79207573696e672060736572766963655f6f7665727765696768746020646973706174636861626c65987573696e67207468652061737369676e656420606f7665727765696768745f696e646578602e00a85c5b20706172612c2069642c206f7665727765696768745f696e6465782c207265717569726564205c5d484f7665727765696768745365727669636564080020013c4f766572776569676874496e64657800002001185765696768740006105101446f776e77617264206d6573736167652066726f6d20746865206f7665727765696768742071756575652077617320657865637574656420776974682074686520676976656e2061637475616c2077656967687414757365642e00705c5b206f7665727765696768745f696e6465782c2075736564205c5d04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a0909097d01100c78636d087632187472616974731c4f7574636f6d6500010c20436f6d706c657465040020011857656967687400000028496e636f6d706c65746508002001185765696768740000810101144572726f72000100144572726f720400810101144572726f72000200008101100c78636d08763218747261697473144572726f72000168204f766572666c6f7700000034556e696d706c656d656e74656400010060556e74727573746564526573657276654c6f636174696f6e00020064556e7472757374656454656c65706f72744c6f636174696f6e000300444d756c74694c6f636174696f6e46756c6c000400684d756c74694c6f636174696f6e4e6f74496e7665727469626c65000500244261644f726967696e0006003c496e76616c69644c6f636174696f6e0007003441737365744e6f74466f756e64000800544661696c6564546f5472616e7361637441737365740009003c4e6f74576974686472617761626c65000a00484c6f636174696f6e43616e6e6f74486f6c64000b0054457863656564734d61784d65737361676553697a65000c005844657374696e6174696f6e556e737570706f72746564000d00245472616e73706f7274000e0028556e726f757461626c65000f0030556e6b6e6f776e436c61696d001000384661696c6564546f4465636f646500110054546f6f4d7563685765696768745265717569726564001200384e6f74486f6c64696e674665657300130030546f6f457870656e736976650014001054726170040020010c7536340015004c556e68616e646c656458636d56657273696f6e001600485765696768744c696d69745265616368656404002001185765696768740017001c426172726965720018004c5765696768744e6f74436f6d70757461626c65001900008501106c706f6c6b61646f745f72756e74696d655f70617261636861696e731068726d701870616c6c6574144576656e74040454000110504f70656e4368616e6e656c526571756573746564100051010118506172614964000051010118506172614964000010010c753332000010010c753332000008704f70656e2048524d50206368616e6e656c207265717565737465642e1d01605b73656e6465722c20726563697069656e742c2070726f706f7365645f6d61785f63617061636974792c2070726f706f7365645f6d61785f6d6573736167655f73697a655d604c4f70656e4368616e6e656c43616e63656c656408005101011850617261496400008901013448726d704368616e6e656c49640001082901416e2048524d50206368616e6e656c20726571756573742073656e7420627920746865207265636569766572207761732063616e63656c6564206279206569746865722070617274792e70605b62795f70617261636861696e2c206368616e6e656c5f69645d604c4f70656e4368616e6e656c4163636570746564080051010118506172614964000051010118506172614964000204c44f70656e2048524d50206368616e6e656c2061636365707465642e20605b73656e6465722c20726563697069656e745d60344368616e6e656c436c6f73656408005101011850617261496400008901013448726d704368616e6e656c4964000304c448524d50206368616e6e656c20636c6f7365642e20605b62795f70617261636861696e2c206368616e6e656c5f69645d6004a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a09090989010c48706f6c6b61646f745f70617261636861696e287072696d6974697665733448726d704368616e6e656c4964000008011873656e646572510101084964000124726563697069656e7451010108496400008d01105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e3c70617261735f7265676973747261721870616c6c6574144576656e7404045400010c28526567697374657265640800510101185061726149640000000130543a3a4163636f756e744964000000304465726567697374657265640400510101185061726149640001002052657365727665640800510101185061726149640000000130543a3a4163636f756e74496400020004a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a0909099101105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e14736c6f74731870616c6c6574144576656e74040454000108384e65774c65617365506572696f6404001001404c65617365506572696f644f663c543e0000049041206e657720605b6c656173655f706572696f645d6020697320626567696e6e696e672e184c65617365641800510101185061726149640000000130543a3a4163636f756e74496400001001404c65617365506572696f644f663c543e00001001404c65617365506572696f644f663c543e000018013042616c616e63654f663c543e000018013042616c616e63654f663c543e00011035014120706172612068617320776f6e2074686520726967687420746f206120636f6e74696e756f757320736574206f66206c6561736520706572696f647320617320612070617261636861696e2e450146697273742062616c616e636520697320616e7920657874726120616d6f756e74207265736572766564206f6e20746f70206f662074686520706172612773206578697374696e67206465706f7369742eb05365636f6e642062616c616e63652069732074686520746f74616c20616d6f756e742072657365727665642e4901605b70617261636861696e5f69642c206c65617365722c20706572696f645f626567696e2c20706572696f645f636f756e742c2065787472615f72657365727665642c20746f74616c5f616d6f756e745d6004a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a0909099501105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e2061756374696f6e731870616c6c6574144576656e7404045400011c3841756374696f6e537461727465640c0010013041756374696f6e496e64657800001001404c65617365506572696f644f663c543e0000100138543a3a426c6f636b4e756d62657200000c4901416e2061756374696f6e20737461727465642e2050726f76696465732069747320696e64657820616e642074686520626c6f636b206e756d6265722077686572652069742077696c6c20626567696e20746f1501636c6f736520616e6420746865206669727374206c6561736520706572696f64206f662074686520717561647275706c657420746861742069732061756374696f6e65642e9c605b61756374696f6e5f696e6465782c206c656173655f706572696f642c20656e64696e675d603441756374696f6e436c6f736564040010013041756374696f6e496e6465780001040101416e2061756374696f6e20656e6465642e20416c6c2066756e6473206265636f6d6520756e72657365727665642e20605b61756374696f6e5f696e6465785d602052657365727665640c00000130543a3a4163636f756e744964000018013042616c616e63654f663c543e000018013042616c616e63654f663c543e000208490146756e6473207765726520726573657276656420666f7220612077696e6e696e67206269642e2046697273742062616c616e63652069732074686520657874726120616d6f756e742072657365727665642ef45365636f6e642069732074686520746f74616c2e20605b6269646465722c2065787472615f72657365727665642c20746f74616c5f616d6f756e745d6028556e72657365727665640800000130543a3a4163636f756e744964000018013042616c616e63654f663c543e000304290146756e6473207765726520756e72657365727665642073696e636520626964646572206973206e6f206c6f6e676572206163746976652e20605b6269646465722c20616d6f756e745d604852657365727665436f6e66697363617465640c00510101185061726149640000000130543a3a4163636f756e744964000018013042616c616e63654f663c543e00040c7501536f6d656f6e6520617474656d7074656420746f206c65617365207468652073616d6520736c6f7420747769636520666f7220612070617261636861696e2e2054686520616d6f756e742069732068656c6420696e207265736572766598627574206e6f2070617261636861696e20736c6f7420686173206265656e206c65617365642e80605b70617261636861696e5f69642c206c65617365722c20616d6f756e745d602c42696441636365707465641400000130543a3a4163636f756e744964000051010118506172614964000018013042616c616e63654f663c543e00001001404c65617365506572696f644f663c543e00001001404c65617365506572696f644f663c543e000508c841206e65772062696420686173206265656e206163636570746564206173207468652063757272656e742077696e6e65722ebc605b77686f2c20706172615f69642c20616d6f756e742c2066697273745f736c6f742c206c6173745f736c6f745d603457696e6e696e674f6666736574080010013041756374696f6e496e6465780000100138543a3a426c6f636b4e756d6265720006086d015468652077696e6e696e67206f6666736574207761732063686f73656e20666f7220616e2061756374696f6e2e20546869732077696c6c206d617020696e746f20746865206057696e6e696e67602073746f72616765206d61702e7c605b61756374696f6e5f696e6465782c20626c6f636b5f6e756d6265725d6004a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a0909099901105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e2463726f77646c6f616e1870616c6c6574144576656e740404540001281c43726561746564040051010118506172614964000004c84372656174652061206e65772063726f77646c6f616e696e672063616d706169676e2e20605b66756e645f696e6465785d602c436f6e74726962757465640c00000130543a3a4163636f756e744964000051010118506172614964000018013042616c616e63654f663c543e000104e0436f6e747269627574656420746f20612063726f77642073616c652e20605b77686f2c2066756e645f696e6465782c20616d6f756e745d602057697468647265770c00000130543a3a4163636f756e744964000051010118506172614964000018013042616c616e63654f663c543e0002040d0157697468647265772066756c6c2062616c616e6365206f66206120636f6e7472696275746f722e20605b77686f2c2066756e645f696e6465782c20616d6f756e745d60445061727469616c6c79526566756e6465640400510101185061726149640003082d01546865206c6f616e7320696e20612066756e642068617665206265656e207061727469616c6c7920646973736f6c7665642c20692e652e2074686572652061726520736f6d65206c656674f06f766572206368696c64206b6579732074686174207374696c6c206e65656420746f206265206b696c6c65642e20605b66756e645f696e6465785d602c416c6c526566756e646564040051010118506172614964000404d8416c6c206c6f616e7320696e20612066756e642068617665206265656e20726566756e6465642e20605b66756e645f696e6465785d6024446973736f6c7665640400510101185061726149640005048446756e6420697320646973736f6c7665642e20605b66756e645f696e6465785d603c48616e646c65426964526573756c7408005101011850617261496400007c01384469737061746368526573756c74000604f454686520726573756c74206f6620747279696e6720746f207375626d69742061206e65772062696420746f2074686520536c6f74732070616c6c65742e18456469746564040051010118506172614964000704010154686520636f6e66696775726174696f6e20746f20612063726f77646c6f616e20686173206265656e206564697465642e20605b66756e645f696e6465785d602c4d656d6f557064617465640c00000130543a3a4163636f756e744964000051010118506172614964000028011c5665633c75383e000804c841206d656d6f20686173206265656e20757064617465642e20605b77686f2c2066756e645f696e6465782c206d656d6f5d603c4164646564546f4e65775261697365040051010118506172614964000904a0412070617261636861696e20686173206265656e206d6f76656420746f20604e657752616973656004a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a0909099d0108306672616d655f73797374656d14506861736500010c384170706c7945787472696e736963040010010c7533320000003046696e616c697a6174696f6e00010038496e697469616c697a6174696f6e00020000a1010000022400a5010000027400a90108306672616d655f73797374656d584c61737452756e74696d6555706772616465496e666f0000080130737065635f76657273696f6ead01014c636f6465633a3a436f6d706163743c7533323e000124737065635f6e616d65b101016473705f72756e74696d653a3a52756e74696d65537472696e670000ad010000061000b1010000050200b5010c306672616d655f73797374656d1870616c6c65741043616c6c0404540001282866696c6c5f626c6f636b040114726174696fb901011c50657262696c6c00000405014120646973706174636820746861742077696c6c2066696c6c2074686520626c6f636b2077656967687420757020746f2074686520676976656e20726174696f2e1872656d61726b04011872656d61726b28011c5665633c75383e000114684d616b6520736f6d65206f6e2d636861696e2072656d61726b2e002823203c7765696768743e202d20604f283129602c23203c2f7765696768743e387365745f686561705f7061676573040114706167657320010c753634000224f853657420746865206e756d626572206f6620706167657320696e2074686520576562417373656d626c7920656e7669726f6e6d656e74277320686561702e002823203c7765696768743e202d20604f28312960482d20312073746f726167652077726974652e602d2042617365205765696768743a20312e34303520c2b5735c2d203120777269746520746f20484541505f50414745533c2d203120646967657374206974656d2c23203c2f7765696768743e207365745f636f6465040110636f646528011c5665633c75383e0003306453657420746865206e65772072756e74696d6520636f64652e002823203c7765696768743e31012d20604f2843202b2053296020776865726520604360206c656e677468206f662060636f64656020616e642060536020636f6d706c6578697479206f66206063616e5f7365745f636f64656045012d20312063616c6c20746f206063616e5f7365745f636f6465603a20604f28532960202863616c6c73206073705f696f3a3a6d6973633a3a72756e74696d655f76657273696f6e60207768696368206973342020657870656e73697665292e842d20312073746f726167652077726974652028636f64656320604f28432960292e402d203120646967657374206974656d2e282d2031206576656e742e4d0154686520776569676874206f6620746869732066756e6374696f6e20697320646570656e64656e74206f6e207468652072756e74696d652c206275742067656e6572616c6c7920746869732069732076657279b8657870656e736976652e2057652077696c6c207472656174207468697320617320612066756c6c20626c6f636b2e2c23203c2f7765696768743e5c7365745f636f64655f776974686f75745f636865636b73040110636f646528011c5665633c75383e000424190153657420746865206e65772072756e74696d6520636f646520776974686f757420646f696e6720616e7920636865636b73206f662074686520676976656e2060636f6465602e002823203c7765696768743e8c2d20604f2843296020776865726520604360206c656e677468206f662060636f646560842d20312073746f726167652077726974652028636f64656320604f28432960292e402d203120646967657374206974656d2e282d2031206576656e742e550154686520776569676874206f6620746869732066756e6374696f6e20697320646570656e64656e74206f6e207468652072756e74696d652e2057652077696c6c207472656174207468697320617320612066756c6c48626c6f636b2e2023203c2f7765696768743e5c7365745f6368616e6765735f747269655f636f6e66696704014c6368616e6765735f747269655f636f6e6669674001804f7074696f6e3c4368616e67657354726965436f6e66696775726174696f6e3e0005289c53657420746865206e6577206368616e676573207472696520636f6e66696775726174696f6e2e002823203c7765696768743e202d20604f28312960ac2d20312073746f72616765207772697465206f722064656c6574652028636f64656320604f28312960292ed42d20312063616c6c20746f20606465706f7369745f6c6f67603a20557365732060617070656e6460204150492c20736f204f283129602d2042617365205765696768743a20372e32313820c2b573302d204442205765696768743aa4202020202d205772697465733a204368616e67657320547269652c2053797374656d204469676573742c23203c2f7765696768743e2c7365745f73746f726167650401146974656d73bd0101345665633c4b657956616c75653e0006206853657420736f6d65206974656d73206f662073746f726167652e002823203c7765696768743e902d20604f2849296020776865726520604960206c656e677468206f6620606974656d7360782d206049602073746f72616765207772697465732028604f28312960292e702d2042617365205765696768743a20302e353638202a206920c2b573642d205772697465733a204e756d626572206f66206974656d732c23203c2f7765696768743e306b696c6c5f73746f726167650401106b657973c50101205665633c4b65793e000720744b696c6c20736f6d65206974656d732066726f6d2073746f726167652e002823203c7765696768743ef82d20604f28494b296020776865726520604960206c656e677468206f6620606b6579736020616e6420604b60206c656e677468206f66206f6e65206b6579602d206049602073746f726167652064656c6574696f6e732e6c2d2042617365205765696768743a202e333738202a206920c2b573642d205772697465733a204e756d626572206f66206974656d732c23203c2f7765696768743e2c6b696c6c5f70726566697808011870726566697828010c4b657900011c7375626b65797310010c75333200082c11014b696c6c20616c6c2073746f72616765206974656d7320776974682061206b657920746861742073746172747320776974682074686520676976656e207072656669782e0039012a2a4e4f54453a2a2a2057652072656c79206f6e2074686520526f6f74206f726967696e20746f2070726f7669646520757320746865206e756d626572206f66207375626b65797320756e6465723d0174686520707265666978207765206172652072656d6f76696e6720746f2061636375726174656c792063616c63756c6174652074686520776569676874206f6620746869732066756e6374696f6e2e002823203c7765696768743ed82d20604f285029602077686572652060506020616d6f756e74206f66206b657973207769746820707265666978206070726566697860602d206050602073746f726167652064656c6574696f6e732e702d2042617365205765696768743a20302e383334202a205020c2b5737c2d205772697465733a204e756d626572206f66207375626b657973202b20312c23203c2f7765696768743e4472656d61726b5f776974685f6576656e7404011872656d61726b28011c5665633c75383e000918a44d616b6520736f6d65206f6e2d636861696e2072656d61726b20616e6420656d6974206576656e742e002823203c7765696768743eb42d20604f28622960207768657265206220697320746865206c656e677468206f66207468652072656d61726b2e282d2031206576656e742e2c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632eb9010c3473705f61726974686d65746963287065725f7468696e67731c50657262696c6c0000040010010c7533320000bd01000002c10100c10100000408282800c5010000022800c9010c306672616d655f73797374656d186c696d69747330426c6f636b5765696768747300000c0128626173655f626c6f636b2001185765696768740001246d61785f626c6f636b2001185765696768740001247065725f636c617373cd0101845065724469737061746368436c6173733c57656967687473506572436c6173733e0000cd010c346672616d655f737570706f72741c77656967687473405065724469737061746368436c61737304045401d101000c01186e6f726d616cd10101045400012c6f7065726174696f6e616cd1010104540001246d616e6461746f7279d1010104540000d1010c306672616d655f73797374656d186c696d6974733c57656967687473506572436c6173730000100138626173655f65787472696e7369632001185765696768740001346d61785f65787472696e736963d50101384f7074696f6e3c5765696768743e0001246d61785f746f74616cd50101384f7074696f6e3c5765696768743e0001207265736572766564d50101384f7074696f6e3c5765696768743e0000d50104184f7074696f6e04045401200108104e6f6e6500000010536f6d650400200000010000d9010c306672616d655f73797374656d186c696d6974732c426c6f636b4c656e677468000004010c6d6178dd0101545065724469737061746368436c6173733c7533323e0000dd010c346672616d655f737570706f72741c77656967687473405065724469737061746368436c6173730404540110000c01186e6f726d616c1001045400012c6f7065726174696f6e616c100104540001246d616e6461746f7279100104540000e1010c346672616d655f737570706f72741c776569676874733c52756e74696d65446257656967687400000801107265616420011857656967687400011477726974652001185765696768740000e501082873705f76657273696f6e3852756e74696d6556657273696f6e00001c0124737065635f6e616d65b101013452756e74696d65537472696e67000124696d706c5f6e616d65b101013452756e74696d65537472696e67000144617574686f72696e675f76657273696f6e10010c753332000130737065635f76657273696f6e10010c753332000130696d706c5f76657273696f6e10010c75333200011061706973e901011c4170697356656300014c7472616e73616374696f6e5f76657273696f6e10010c7533320000e901040c436f7704045401ed01000400ed01000000ed01000002f10100f10100000408f5011000f501000003080000000800f9010c306672616d655f73797374656d1870616c6c6574144572726f720404540001143c496e76616c6964537065634e616d650000081101546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e63726561736500010841015468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e00020cec4661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e0009014569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f73697465000304fc537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e74000404350154686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e046c4572726f7220666f72207468652053797374656d2070616c6c6574fd01000002010200010204184f7074696f6e0404540105020108104e6f6e6500000010536f6d650400050200000100000502084070616c6c65745f7363686564756c65722c5363686564756c65645632101043616c6c0109022c426c6f636b4e756d62657201103450616c6c6574734f726967696e019505244163636f756e7449640100001401206d617962655f696478013c4f7074696f6e3c5665633c75383e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6c0902011043616c6c0001386d617962655f706572696f646963110201944f7074696f6e3c7363686564756c653a3a506572696f643c426c6f636b4e756d6265723e3e0001186f726967696e9505013450616c6c6574734f726967696e000009020840706f6c6b61646f745f72756e74696d651043616c6c00019c1853797374656d0400b50101ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53797374656d2c2052756e74696d653e000000245363686564756c657204000d0201b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5363686564756c65722c2052756e74696d653e00010010426162650400150201a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c426162652c2052756e74696d653e0002002454696d657374616d7004003d0201b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54696d657374616d702c2052756e74696d653e0003001c496e64696365730400450201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c496e64696365732c2052756e74696d653e0004002042616c616e6365730400490201b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42616c616e6365732c2052756e74696d653e00050028417574686f72736869700400550201bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c417574686f72736869702c2052756e74696d653e0006001c5374616b696e6704005d0201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5374616b696e672c2052756e74696d653e0007001c53657373696f6e0400810201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53657373696f6e2c2052756e74696d653e0009001c4772616e6470610400950201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4772616e6470612c2052756e74696d653e000b0020496d4f6e6c696e650400c10201b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c496d4f6e6c696e652c2052756e74696d653e000c002444656d6f63726163790400dd0201b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c44656d6f63726163792c2052756e74696d653e000e001c436f756e63696c0400ed0201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f756e63696c2c2052756e74696d653e000f0048546563686e6963616c436f6d6d69747465650400f50201dd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c546563686e6963616c436f6d6d69747465652c2052756e74696d653e0010004050687261676d656e456c656374696f6e0400f90201d50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50687261676d656e456c656374696f6e2c2052756e74696d653e0011004c546563686e6963616c4d656d626572736869700400010301e10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c546563686e6963616c4d656d626572736869702c2052756e74696d653e0012002054726561737572790400050301b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54726561737572792c2052756e74696d653e00130018436c61696d730400090301ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436c61696d732c2052756e74696d653e0018001c56657374696e670400250301b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c56657374696e672c2052756e74696d653e0019001c5574696c69747904002d0301b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5574696c6974792c2052756e74696d653e001a00204964656e746974790400350301b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4964656e746974792c2052756e74696d653e001c001450726f78790400d50301a90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50726f78792c2052756e74696d653e001d00204d756c74697369670400dd0301b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d756c74697369672c2052756e74696d653e001e0020426f756e746965730400e50301b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c426f756e746965732c2052756e74696d653e00220010546970730400e90301a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c546970732c2052756e74696d653e00230068456c656374696f6e50726f76696465724d756c746950686173650400ed0301fd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c456c656374696f6e50726f76696465724d756c746950686173652c2052756e74696d653e00240034436f6e66696775726174696f6e0400d90401c90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f6e66696775726174696f6e2c2052756e74696d653e0033002c50617261735368617265640400dd0401c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50617261735368617265642c2052756e74696d653e0034003450617261496e636c7573696f6e0400e10401c90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50617261496e636c7573696f6e2c2052756e74696d653e0035003050617261496e686572656e740400e50401c50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50617261496e686572656e742c2052756e74696d653e0036001450617261730400510501a90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50617261732c2052756e74696d653e0038002c496e697469616c697a65720400550501c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c496e697469616c697a65722c2052756e74696d653e0039000c446d700400590501a10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c446d702c2052756e74696d653e003a000c556d7004005d0501a10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c556d702c2052756e74696d653e003b001048726d700400610501a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c48726d702c2052756e74696d653e003c00245265676973747261720400650501b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5265676973747261722c2052756e74696d653e00460014536c6f74730400690501a90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c536c6f74732c2052756e74696d653e0047002041756374696f6e7304006d0501b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c41756374696f6e732c2052756e74696d653e0048002443726f77646c6f616e0400750501b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c43726f77646c6f616e2c2052756e74696d653e004900000d020c4070616c6c65745f7363686564756c65721870616c6c65741043616c6c040454000118207363686564756c651001107768656e100138543a3a426c6f636b4e756d6265720001386d617962655f706572696f646963110201a04f7074696f6e3c7363686564756c653a3a506572696f643c543a3a426c6f636b4e756d6265723e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6c09020160426f783c3c5420617320436f6e6669673e3a3a43616c6c3e00002870416e6f6e796d6f75736c79207363686564756c652061207461736b2e002823203c7765696768743e9c2d2053203d204e756d626572206f6620616c7265616479207363686564756c65642063616c6c738c2d2042617365205765696768743a2032322e3239202b202e313236202a205320c2b573302d204442205765696768743a48202020202d20526561643a204167656e64614c202020202d2057726974653a204167656e646139012d2057696c6c20757365206261736520776569676874206f662032352077686963682073686f756c6420626520676f6f6420666f7220757020746f203330207363686564756c65642063616c6c732c23203c2f7765696768743e1863616e63656c0801107768656e100138543a3a426c6f636b4e756d626572000114696e64657810010c7533320001289443616e63656c20616e20616e6f6e796d6f75736c79207363686564756c6564207461736b2e002823203c7765696768743e9c2d2053203d204e756d626572206f6620616c7265616479207363686564756c65642063616c6c73902d2042617365205765696768743a2032322e3135202b20322e383639202a205320c2b573302d204442205765696768743a48202020202d20526561643a204167656e64616c202020202d2057726974653a204167656e64612c204c6f6f6b75703d012d2057696c6c20757365206261736520776569676874206f66203130302077686963682073686f756c6420626520676f6f6420666f7220757020746f203330207363686564756c65642063616c6c732c23203c2f7765696768743e387363686564756c655f6e616d6564140108696428011c5665633c75383e0001107768656e100138543a3a426c6f636b4e756d6265720001386d617962655f706572696f646963110201a04f7074696f6e3c7363686564756c653a3a506572696f643c543a3a426c6f636b4e756d6265723e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6c09020160426f783c3c5420617320436f6e6669673e3a3a43616c6c3e000228585363686564756c652061206e616d6564207461736b2e002823203c7765696768743e9c2d2053203d204e756d626572206f6620616c7265616479207363686564756c65642063616c6c73882d2042617365205765696768743a2032392e36202b202e313539202a205320c2b573302d204442205765696768743a68202020202d20526561643a204167656e64612c204c6f6f6b75706c202020202d2057726974653a204167656e64612c204c6f6f6b757049012d2057696c6c20757365206261736520776569676874206f662033352077686963682073686f756c6420626520676f6f6420666f72206d6f7265207468616e203330207363686564756c65642063616c6c732c23203c2f7765696768743e3063616e63656c5f6e616d6564040108696428011c5665633c75383e0003287843616e63656c2061206e616d6564207363686564756c6564207461736b2e002823203c7765696768743e9c2d2053203d204e756d626572206f6620616c7265616479207363686564756c65642063616c6c73902d2042617365205765696768743a2032342e3931202b20322e393037202a205320c2b573302d204442205765696768743a68202020202d20526561643a204167656e64612c204c6f6f6b75706c202020202d2057726974653a204167656e64612c204c6f6f6b75703d012d2057696c6c20757365206261736520776569676874206f66203130302077686963682073686f756c6420626520676f6f6420666f7220757020746f203330207363686564756c65642063616c6c732c23203c2f7765696768743e387363686564756c655f61667465721001146166746572100138543a3a426c6f636b4e756d6265720001386d617962655f706572696f646963110201a04f7074696f6e3c7363686564756c653a3a506572696f643c543a3a426c6f636b4e756d6265723e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6c09020160426f783c3c5420617320436f6e6669673e3a3a43616c6c3e000414a8416e6f6e796d6f75736c79207363686564756c652061207461736b20616674657220612064656c61792e002823203c7765696768743e5453616d65206173205b607363686564756c65605d2e2c23203c2f7765696768743e507363686564756c655f6e616d65645f6166746572140108696428011c5665633c75383e0001146166746572100138543a3a426c6f636b4e756d6265720001386d617962655f706572696f646963110201a04f7074696f6e3c7363686564756c653a3a506572696f643c543a3a426c6f636b4e756d6265723e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6c09020160426f783c3c5420617320436f6e6669673e3a3a43616c6c3e000514905363686564756c652061206e616d6564207461736b20616674657220612064656c61792e002823203c7765696768743ec453616d65206173205b607363686564756c655f6e616d6564605d2853656c663a3a7363686564756c655f6e616d6564292e2c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e110204184f7074696f6e04045401740108104e6f6e6500000010536f6d65040074000001000015020c2c70616c6c65745f626162651870616c6c65741043616c6c04045400010c4c7265706f72745f65717569766f636174696f6e08014865717569766f636174696f6e5f70726f6f6619020184426f783c45717569766f636174696f6e50726f6f663c543a3a4865616465723e3e00013c6b65795f6f776e65725f70726f6f662d020140543a3a4b65794f776e657250726f6f6600001009015265706f727420617574686f726974792065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667905017468652065717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f660d01616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63652077696c6c306265207265706f727465642e707265706f72745f65717569766f636174696f6e5f756e7369676e656408014865717569766f636174696f6e5f70726f6f6619020184426f783c45717569766f636174696f6e50726f6f663c543a3a4865616465723e3e00013c6b65795f6f776e65725f70726f6f662d020140543a3a4b65794f776e657250726f6f6600012009015265706f727420617574686f726974792065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667905017468652065717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f660d01616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63652077696c6c306265207265706f727465642e0d01546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c791501626c6f636b20617574686f72732077696c6c2063616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c2061732073756368150169662074686520626c6f636b20617574686f7220697320646566696e65642069742077696c6c20626520646566696e6564206173207468652065717569766f636174696f6e247265706f727465722e48706c616e5f636f6e6669675f6368616e6765040118636f6e666967310201504e657874436f6e66696744657363726970746f720002105d01506c616e20616e2065706f636820636f6e666967206368616e67652e205468652065706f636820636f6e666967206368616e6765206973207265636f7264656420616e642077696c6c20626520656e6163746564206f6e5101746865206e6578742063616c6c20746f2060656e6163745f65706f63685f6368616e6765602e2054686520636f6e6669672077696c6c20626520616374697661746564206f6e652065706f63682061667465722e59014d756c7469706c652063616c6c7320746f2074686973206d6574686f642077696c6c207265706c61636520616e79206578697374696e6720706c616e6e656420636f6e666967206368616e6765207468617420686164546e6f74206265656e20656e6163746564207965742e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e1902084873705f636f6e73656e7375735f736c6f74734445717569766f636174696f6e50726f6f660818486561646572011d02084964012502001001206f6666656e646572250201084964000110736c6f7429020110536c6f7400013066697273745f6865616465721d0201184865616465720001347365636f6e645f6865616465721d02011848656164657200001d02102873705f72756e74696d651c67656e65726963186865616465721848656164657208184e756d626572011010486173680121020014012c706172656e745f68617368240130486173683a3a4f75747075740001186e756d626572ad0101184e756d62657200012873746174655f726f6f74240130486173683a3a4f757470757400013c65787472696e736963735f726f6f74240130486173683a3a4f75747075740001186469676573742c01504469676573743c486173683a3a4f75747075743e000021020c2873705f72756e74696d65187472616974732c426c616b6554776f3235360000000025020c4473705f636f6e73656e7375735f626162650c617070185075626c696300000400bc013c737232353531393a3a5075626c696300002902084873705f636f6e73656e7375735f736c6f747310536c6f740000040020010c75363400002d02082873705f73657373696f6e3c4d656d6265727368697050726f6f6600000c011c73657373696f6e10013053657373696f6e496e646578000128747269655f6e6f646573c50101305665633c5665633c75383e3e00013c76616c696461746f725f636f756e7410013856616c696461746f72436f756e74000031020c4473705f636f6e73656e7375735f626162651c64696765737473504e657874436f6e66696744657363726970746f720001040856310801046335020128287536342c2075363429000134616c6c6f7765645f736c6f747339020130416c6c6f776564536c6f7473000100003502000004082020003902084473705f636f6e73656e7375735f6261626530416c6c6f776564536c6f747300010c305072696d617279536c6f7473000000745072696d617279416e645365636f6e64617279506c61696e536c6f74730001006c5072696d617279416e645365636f6e64617279565246536c6f7473000200003d020c4070616c6c65745f74696d657374616d701870616c6c65741043616c6c0404540001040c73657404010c6e6f7741020124543a3a4d6f6d656e7400004054536574207468652063757272656e742074696d652e005501546869732063616c6c2073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6ed470686173652c20696620746869732063616c6c206861736e2774206265656e20696e766f6b656420627920746861742074696d652e0041015468652074696d657374616d702073686f756c642062652067726561746572207468616e207468652070726576696f7573206f6e652062792074686520616d6f756e742073706563696669656420627940604d696e696d756d506572696f64602e00d4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652060496e686572656e74602e002823203c7765696768743e31012d20604f2831296020284e6f7465207468617420696d706c656d656e746174696f6e73206f6620604f6e54696d657374616d7053657460206d75737420616c736f20626520604f283129602961012d20312073746f72616765207265616420616e6420312073746f72616765206d75746174696f6e2028636f64656320604f28312960292e202862656361757365206f6620604469645570646174653a3a74616b656020696e402020606f6e5f66696e616c697a656029d42d2031206576656e742068616e646c657220606f6e5f74696d657374616d705f736574602e204d75737420626520604f283129602e2c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e4102000006200045020c3870616c6c65745f696e64696365731870616c6c65741043616c6c04045400011414636c61696d040114696e64657810013c543a3a4163636f756e74496e6465780000489841737369676e20616e2070726576696f75736c7920756e61737369676e656420696e6465782e00dc5061796d656e743a20604465706f736974602069732072657365727665642066726f6d207468652073656e646572206163636f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e00f02d2060696e646578603a2074686520696e64657820746f20626520636c61696d65642e2054686973206d757374206e6f7420626520696e207573652e0090456d6974732060496e64657841737369676e656460206966207375636365737366756c2e002823203c7765696768743e242d20604f283129602e982d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28312960292e602d204f6e652072657365727665206f7065726174696f6e2e302d204f6e65206576656e742e4c2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d902d204442205765696768743a203120526561642f577269746520284163636f756e7473292c23203c2f7765696768743e207472616e7366657208010c6e6577000130543a3a4163636f756e744964000114696e64657810013c543a3a4163636f756e74496e6465780001505d0141737369676e20616e20696e64657820616c7265616479206f776e6564206279207468652073656e64657220746f20616e6f74686572206163636f756e742e205468652062616c616e6365207265736572766174696f6eb86973206566666563746976656c79207472616e7366657272656420746f20746865206e6577206163636f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0025012d2060696e646578603a2074686520696e64657820746f2062652072652d61737369676e65642e2054686973206d757374206265206f776e6564206279207468652073656e6465722e5d012d20606e6577603a20746865206e6577206f776e6572206f662074686520696e6465782e20546869732066756e6374696f6e2069732061206e6f2d6f7020696620697420697320657175616c20746f2073656e6465722e0090456d6974732060496e64657841737369676e656460206966207375636365737366756c2e002823203c7765696768743e242d20604f283129602e982d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28312960292e642d204f6e65207472616e73666572206f7065726174696f6e2e302d204f6e65206576656e742e4c2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d302d204442205765696768743ae02020202d2052656164733a20496e6469636573204163636f756e74732c2053797374656d204163636f756e742028726563697069656e7429e42020202d205772697465733a20496e6469636573204163636f756e74732c2053797374656d204163636f756e742028726563697069656e74292c23203c2f7765696768743e1066726565040114696e64657810013c543a3a4163636f756e74496e646578000248944672656520757020616e20696e646578206f776e6564206279207468652073656e6465722e005d015061796d656e743a20416e792070726576696f7573206465706f73697420706c6163656420666f722074686520696e64657820697320756e726573657276656420696e207468652073656e646572206163636f756e742e005501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d757374206f776e2074686520696e6465782e000d012d2060696e646578603a2074686520696e64657820746f2062652066726565642e2054686973206d757374206265206f776e6564206279207468652073656e6465722e0084456d6974732060496e646578467265656460206966207375636365737366756c2e002823203c7765696768743e242d20604f283129602e982d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28312960292e602d204f6e652072657365727665206f7065726174696f6e2e302d204f6e65206576656e742e4c2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d902d204442205765696768743a203120526561642f577269746520284163636f756e7473292c23203c2f7765696768743e38666f7263655f7472616e736665720c010c6e6577000130543a3a4163636f756e744964000114696e64657810013c543a3a4163636f756e74496e646578000118667265657a65e80110626f6f6c0003545501466f72636520616e20696e64657820746f20616e206163636f756e742e205468697320646f65736e277420726571756972652061206465706f7369742e2049662074686520696e64657820697320616c7265616479e868656c642c207468656e20616e79206465706f736974206973207265696d62757273656420746f206974732063757272656e74206f776e65722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e00a42d2060696e646578603a2074686520696e64657820746f206265202872652d2961737369676e65642e5d012d20606e6577603a20746865206e6577206f776e6572206f662074686520696e6465782e20546869732066756e6374696f6e2069732061206e6f2d6f7020696620697420697320657175616c20746f2073656e6465722e41012d2060667265657a65603a2069662073657420746f206074727565602c2077696c6c20667265657a652074686520696e64657820736f2069742063616e6e6f74206265207472616e736665727265642e0090456d6974732060496e64657841737369676e656460206966207375636365737366756c2e002823203c7765696768743e242d20604f283129602e982d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28312960292e782d20557020746f206f6e652072657365727665206f7065726174696f6e2e302d204f6e65206576656e742e4c2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d302d204442205765696768743af42020202d2052656164733a20496e6469636573204163636f756e74732c2053797374656d204163636f756e7420286f726967696e616c206f776e657229f82020202d205772697465733a20496e6469636573204163636f756e74732c2053797374656d204163636f756e7420286f726967696e616c206f776e6572292c23203c2f7765696768743e18667265657a65040114696e64657810013c543a3a4163636f756e74496e6465780004484101467265657a6520616e20696e64657820736f2069742077696c6c20616c7761797320706f696e7420746f207468652073656e646572206163636f756e742e205468697320636f6e73756d657320746865206465706f7369742e005901546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d757374206861766520616c6e6f6e2d66726f7a656e206163636f756e742060696e646578602e00ac2d2060696e646578603a2074686520696e64657820746f2062652066726f7a656e20696e20706c6163652e0088456d6974732060496e64657846726f7a656e60206966207375636365737366756c2e002823203c7765696768743e242d20604f283129602e982d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28312960292e702d20557020746f206f6e6520736c617368206f7065726174696f6e2e302d204f6e65206576656e742e4c2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d902d204442205765696768743a203120526561642f577269746520284163636f756e7473292c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e49020c3c70616c6c65745f62616c616e6365731870616c6c65741043616c6c080454000449000118207472616e73666572080110646573744d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500011476616c7565cc0128543a3a42616c616e6365000070d45472616e7366657220736f6d65206c697175696420667265652062616c616e636520746f20616e6f74686572206163636f756e742e000501607472616e73666572602077696c6c207365742074686520604672656542616c616e636560206f66207468652073656e64657220616e642072656365697665722e1d0149742077696c6c2064656372656173652074686520746f74616c2069737375616e6365206f66207468652073797374656d2062792074686520605472616e73666572466565602e11014966207468652073656e6465722773206163636f756e742069732062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c74b06f6620746865207472616e736665722c20746865206163636f756e742077696c6c206265207265617065642e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520605369676e65646020627920746865207472616e736163746f722e002823203c7765696768743e61012d20446570656e64656e74206f6e20617267756d656e747320627574206e6f7420637269746963616c2c20676976656e2070726f70657220696d706c656d656e746174696f6e7320666f7220696e70757420636f6e66696794202074797065732e205365652072656c617465642066756e6374696f6e732062656c6f772e31012d20497420636f6e7461696e732061206c696d69746564206e756d626572206f6620726561647320616e642077726974657320696e7465726e616c6c7920616e64206e6f20636f6d706c6578382020636f6d7075746174696f6e2e004852656c617465642066756e6374696f6e733a004d0120202d2060656e737572655f63616e5f77697468647261776020697320616c776179732063616c6c656420696e7465726e616c6c792062757420686173206120626f756e64656420636f6d706c65786974792e290120202d205472616e7366657272696e672062616c616e63657320746f206163636f756e7473207468617420646964206e6f74206578697374206265666f72652077696c6c206361757365cc2020202060543a3a4f6e4e65774163636f756e743a3a6f6e5f6e65775f6163636f756e746020746f2062652063616c6c65642e5d0120202d2052656d6f76696e6720656e6f7567682066756e64732066726f6d20616e206163636f756e742077696c6c20747269676765722060543a3a4475737452656d6f76616c3a3a6f6e5f756e62616c616e636564602e5d0120202d20607472616e736665725f6b6565705f616c6976656020776f726b73207468652073616d652077617920617320607472616e73666572602c206275742068617320616e206164646974696f6e616c20636865636bdc202020207468617420746865207472616e736665722077696c6c206e6f74206b696c6c20746865206f726967696e206163636f756e742e842d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d41012d2042617365205765696768743a2037332e363420c2b5732c20776f7273742063617365207363656e6172696f20286163636f756e7420637265617465642c206163636f756e742072656d6f76656429d82d204442205765696768743a2031205265616420616e64203120577269746520746f2064657374696e6174696f6e206163636f756e7411012d204f726967696e206163636f756e7420697320616c726561647920696e206d656d6f72792c20736f206e6f204442206f7065726174696f6e7320666f72207468656d2e2c23203c2f7765696768743e2c7365745f62616c616e63650c010c77686f4d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001206e65775f66726565cc0128543a3a42616c616e63650001306e65775f7265736572766564cc0128543a3a42616c616e636500014890536574207468652062616c616e636573206f66206120676976656e206163636f756e742e001d01546869732077696c6c20616c74657220604672656542616c616e63656020616e642060526573657276656442616c616e63656020696e2073746f726167652e2069742077696c6c0501616c736f2064656372656173652074686520746f74616c2069737375616e6365206f66207468652073797374656d202860546f74616c49737375616e636560292e1501496620746865206e65772066726565206f722072657365727665642062616c616e63652069732062656c6f7720746865206578697374656e7469616c206465706f7369742cfc69742077696c6c20726573657420746865206163636f756e74206e6f6e63652028606672616d655f73797374656d3a3a4163636f756e744e6f6e636560292e00b0546865206469737061746368206f726967696e20666f7220746869732063616c6c2069732060726f6f74602e002823203c7765696768743e7c2d20496e646570656e64656e74206f662074686520617267756d656e74732ec02d20436f6e7461696e732061206c696d69746564206e756d626572206f6620726561647320616e64207772697465732e542d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d382d2042617365205765696768743a64202020202d204372656174696e673a2032372e353620c2b57360202020202d204b696c6c696e673a2033352e313120c2b573942d204442205765696768743a203120526561642c203120577269746520746f206077686f602c23203c2f7765696768743e38666f7263655f7472616e736665720c0118736f757263654d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365000110646573744d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500011476616c7565cc0128543a3a42616c616e63650002184d0145786163746c7920617320607472616e73666572602c2065786365707420746865206f726967696e206d75737420626520726f6f7420616e642074686520736f75726365206163636f756e74206d6179206265287370656369666965642e2823203c7765696768743e4d012d2053616d65206173207472616e736665722c20627574206164646974696f6e616c207265616420616e6420777269746520626563617573652074686520736f75726365206163636f756e74206973206e6f747c2020617373756d656420746f20626520696e20746865206f7665726c61792e2c23203c2f7765696768743e4c7472616e736665725f6b6565705f616c697665080110646573744d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500011476616c7565cc0128543a3a42616c616e636500032c4d0153616d6520617320746865205b607472616e73666572605d2063616c6c2c206275742077697468206120636865636b207468617420746865207472616e736665722077696c6c206e6f74206b696c6c207468653c6f726967696e206163636f756e742e00b8393925206f66207468652074696d6520796f752077616e74205b607472616e73666572605d20696e73746561642e00c05b607472616e73666572605d3a207374727563742e50616c6c65742e68746d6c236d6574686f642e7472616e736665722823203c7765696768743ee42d2043686561706572207468616e207472616e736665722062656361757365206163636f756e742063616e6e6f74206265206b696c6c65642e5c2d2042617365205765696768743a2035312e3420c2b57319012d204442205765696768743a2031205265616420616e64203120577269746520746f2064657374202873656e64657220697320696e206f7665726c617920616c72656164792928233c2f7765696768743e307472616e736665725f616c6c080110646573744d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001286b6565705f616c697665e80110626f6f6c00044405015472616e736665722074686520656e74697265207472616e7366657261626c652062616c616e63652066726f6d207468652063616c6c6572206163636f756e742e0059014e4f54453a20546869732066756e6374696f6e206f6e6c7920617474656d70747320746f207472616e73666572205f7472616e7366657261626c655f2062616c616e6365732e2054686973206d65616e7320746861746101616e79206c6f636b65642c2072657365727665642c206f72206578697374656e7469616c206465706f7369747320287768656e20606b6565705f616c6976656020697320607472756560292c2077696c6c206e6f742062655d017472616e7366657272656420627920746869732066756e6374696f6e2e20546f20656e73757265207468617420746869732066756e6374696f6e20726573756c747320696e2061206b696c6c6564206163636f756e742c4501796f75206d69676874206e65656420746f207072657061726520746865206163636f756e742062792072656d6f76696e6720616e79207265666572656e636520636f756e746572732c2073746f72616765406465706f736974732c206574632e2e2e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205369676e65642e00a02d206064657374603a2054686520726563697069656e74206f6620746865207472616e736665722e59012d20606b6565705f616c697665603a204120626f6f6c65616e20746f2064657465726d696e652069662074686520607472616e736665725f616c6c60206f7065726174696f6e2073686f756c642073656e6420616c6c4d0120206f66207468652066756e647320746865206163636f756e74206861732c2063617573696e67207468652073656e646572206163636f756e7420746f206265206b696c6c6564202866616c7365292c206f72590120207472616e736665722065766572797468696e6720657863657074206174206c6561737420746865206578697374656e7469616c206465706f7369742c2077686963682077696c6c2067756172616e74656520746fc820206b656570207468652073656e646572206163636f756e7420616c697665202874727565292e2023203c7765696768743e39012d204f2831292e204a757374206c696b65207472616e736665722c206275742072656164696e672074686520757365722773207472616e7366657261626c652062616c616e63652066697273742e302020233c2f7765696768743e3c666f7263655f756e7265736572766508010c77686f4d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365000118616d6f756e74180128543a3a42616c616e636500050cb0556e7265736572766520736f6d652062616c616e63652066726f6d2061207573657220627920666f7263652e006c43616e206f6e6c792062652063616c6c656420627920524f4f542e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e4d020c2873705f72756e74696d65306d756c746961646472657373304d756c74694164647265737308244163636f756e7449640100304163636f756e74496e6465780180011408496404000001244163636f756e74496400000014496e6465780400510201304163636f756e74496e6465780001000c526177040028011c5665633c75383e0002002441646472657373333204000401205b75383b2033325d0003002441646472657373323004000d0101205b75383b2032305d000400005102000006800055020c4470616c6c65745f617574686f72736869701870616c6c65741043616c6c040454000104287365745f756e636c65730401286e65775f756e636c6573590201385665633c543a3a4865616465723e0000046050726f76696465206120736574206f6620756e636c65732e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e59020000021d02005d02103870616c6c65745f7374616b696e671870616c6c65741870616c6c65741043616c6c04045400016410626f6e640c0128636f6e74726f6c6c65724d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500011476616c7565cc013042616c616e63654f663c543e00011470617965656102017c52657761726444657374696e6174696f6e3c543a3a4163636f756e7449643e000044610154616b6520746865206f726967696e206163636f756e74206173206120737461736820616e64206c6f636b207570206076616c756560206f66206974732062616c616e63652e2060636f6e74726f6c6c6572602077696c6c80626520746865206163636f756e74207468617420636f6e74726f6c732069742e002d016076616c756560206d757374206265206d6f7265207468616e2074686520606d696e696d756d5f62616c616e636560207370656369666965642062792060543a3a43757272656e6379602e002101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20627920746865207374617368206163636f756e742e003c456d6974732060426f6e646564602e2823203c7765696768743ed02d20496e646570656e64656e74206f662074686520617267756d656e74732e204d6f64657261746520636f6d706c65786974792e1c2d204f2831292e642d20546872656520657874726120444220656e74726965732e004d014e4f54453a2054776f206f66207468652073746f726167652077726974657320286053656c663a3a626f6e646564602c206053656c663a3a7061796565602920617265205f6e657665725f20636c65616e65643d01756e6c6573732074686520606f726967696e602066616c6c732062656c6f77205f6578697374656e7469616c206465706f7369745f20616e6420676574732072656d6f76656420617320647573742e482d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2c23203c2f7765696768743e28626f6e645f65787472610401386d61785f6164646974696f6e616ccc013042616c616e63654f663c543e00013c610141646420736f6d6520657874726120616d6f756e742074686174206861766520617070656172656420696e207468652073746173682060667265655f62616c616e63656020696e746f207468652062616c616e636520757030666f72207374616b696e672e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c65722e004d01557365207468697320696620746865726520617265206164646974696f6e616c2066756e647320696e20796f7572207374617368206163636f756e74207468617420796f75207769736820746f20626f6e642e5501556e6c696b65205b60626f6e64605d2853656c663a3a626f6e6429206f72205b60756e626f6e64605d2853656c663a3a756e626f6e642920746869732066756e6374696f6e20646f6573206e6f7420696d706f7365bc616e79206c696d69746174696f6e206f6e2074686520616d6f756e7420746861742063616e2062652061646465642e003c456d6974732060426f6e646564602e002823203c7765696768743ee42d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e1c2d204f2831292e2c23203c2f7765696768743e18756e626f6e6404011476616c7565cc013042616c616e63654f663c543e00024c51015363686564756c65206120706f7274696f6e206f662074686520737461736820746f20626520756e6c6f636b656420726561647920666f72207472616e73666572206f75742061667465722074686520626f6e64fc706572696f6420656e64732e2049662074686973206c656176657320616e20616d6f756e74206163746976656c7920626f6e646564206c657373207468616e2101543a3a43757272656e63793a3a6d696e696d756d5f62616c616e636528292c207468656e20697420697320696e6372656173656420746f207468652066756c6c20616d6f756e742e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0045014f6e63652074686520756e6c6f636b20706572696f6420697320646f6e652c20796f752063616e2063616c6c206077697468647261775f756e626f6e6465646020746f2061637475616c6c79206d6f7665bc7468652066756e6473206f7574206f66206d616e6167656d656e7420726561647920666f72207472616e736665722e0039014e6f206d6f7265207468616e2061206c696d69746564206e756d626572206f6620756e6c6f636b696e67206368756e6b73202873656520604d41585f554e4c4f434b494e475f4348554e4b536029390163616e20636f2d657869737473206174207468652073616d652074696d652e20496e207468617420636173652c205b6043616c6c3a3a77697468647261775f756e626f6e646564605d206e656564f8746f2062652063616c6c656420666972737420746f2072656d6f766520736f6d65206f6620746865206368756e6b732028696620706f737369626c65292e00390149662061207573657220656e636f756e74657273207468652060496e73756666696369656e74426f6e6460206572726f72207768656e2063616c6c696e6720746869732065787472696e7369632c1901746865792073686f756c642063616c6c20606368696c6c6020666972737420696e206f7264657220746f206672656520757020746865697220626f6e6465642066756e64732e0044456d6974732060556e626f6e646564602e009453656520616c736f205b6043616c6c3a3a77697468647261775f756e626f6e646564605d2e4477697468647261775f756e626f6e6465640401486e756d5f736c617368696e675f7370616e7310010c75333200033c290152656d6f766520616e7920756e6c6f636b6564206368756e6b732066726f6d207468652060756e6c6f636b696e67602071756575652066726f6d206f7572206d616e6167656d656e742e0031015468697320657373656e7469616c6c7920667265657320757020746861742062616c616e636520746f206265207573656420627920746865207374617368206163636f756e7420746f20646f4877686174657665722069742077616e74732e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722e0048456d697473206057697468647261776e602e006853656520616c736f205b6043616c6c3a3a756e626f6e64605d2e002823203c7765696768743e0501436f6d706c6578697479204f285329207768657265205320697320746865206e756d626572206f6620736c617368696e67207370616e7320746f2072656d6f766509014e4f54453a2057656967687420616e6e6f746174696f6e20697320746865206b696c6c207363656e6172696f2c20776520726566756e64206f74686572776973652e2c23203c2f7765696768743e2076616c696461746504011470726566736502013856616c696461746f725072656673000414e44465636c617265207468652064657369726520746f2076616c696461746520666f7220746865206f726967696e20636f6e74726f6c6c65722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e206e6f6d696e61746504011c746172676574736d0201a05665633c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653e00052c0d014465636c617265207468652064657369726520746f206e6f6d696e6174652060746172676574736020666f7220746865206f726967696e20636f6e74726f6c6c65722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e002823203c7765696768743e2d012d20546865207472616e73616374696f6e277320636f6d706c65786974792069732070726f706f7274696f6e616c20746f207468652073697a65206f662060746172676574736020284e29fc77686963682069732063617070656420617420436f6d7061637441737369676e6d656e74733a3a4c494d495420284d41585f4e4f4d494e4154494f4e53292ed42d20426f74682074686520726561647320616e642077726974657320666f6c6c6f7720612073696d696c6172207061747465726e2e2c23203c2f7765696768743e146368696c6c00062cc44465636c617265206e6f2064657369726520746f206569746865722076616c6964617465206f72206e6f6d696e6174652e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e002823203c7765696768743ee42d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e502d20436f6e7461696e73206f6e6520726561642ec42d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e2c23203c2f7765696768743e247365745f706179656504011470617965656102017c52657761726444657374696e6174696f6e3c543a3a4163636f756e7449643e000740b42852652d2973657420746865207061796d656e742074617267657420666f72206120636f6e74726f6c6c65722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e002823203c7765696768743ee42d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e942d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec42d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e242d2d2d2d2d2d2d2d2d382d205765696768743a204f283129302d204442205765696768743a48202020202d20526561643a204c656467657248202020202d2057726974653a2050617965652c23203c2f7765696768743e387365745f636f6e74726f6c6c6572040128636f6e74726f6c6c65724d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650008408c2852652d297365742074686520636f6e74726f6c6c6572206f6620612073746173682e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c65722e002823203c7765696768743ee42d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e942d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec42d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e282d2d2d2d2d2d2d2d2d2d305765696768743a204f283129284442205765696768743af02d20526561643a20426f6e6465642c204c6564676572204e657720436f6e74726f6c6c65722c204c6564676572204f6c6420436f6e74726f6c6c6572f42d2057726974653a20426f6e6465642c204c6564676572204e657720436f6e74726f6c6c65722c204c6564676572204f6c6420436f6e74726f6c6c65722c23203c2f7765696768743e4c7365745f76616c696461746f725f636f756e7404010c6e6577ad01010c75333200092090536574732074686520696465616c206e756d626572206f662076616c696461746f72732e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002823203c7765696768743e305765696768743a204f2831295857726974653a2056616c696461746f7220436f756e742c23203c2f7765696768743e60696e6372656173655f76616c696461746f725f636f756e740401286164646974696f6e616cad01010c753332000a1ca8496e6372656d656e74732074686520696465616c206e756d626572206f662076616c696461746f72732e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002823203c7765696768743e9853616d65206173205b6053656c663a3a7365745f76616c696461746f725f636f756e74605d2e2c23203c2f7765696768743e547363616c655f76616c696461746f725f636f756e74040118666163746f727102011c50657263656e74000b1cd05363616c652075702074686520696465616c206e756d626572206f662076616c696461746f7273206279206120666163746f722e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002823203c7765696768743e9853616d65206173205b6053656c663a3a7365745f76616c696461746f725f636f756e74605d2e2c23203c2f7765696768743e34666f7263655f6e6f5f65726173000c3cac466f72636520746865726520746f206265206e6f206e6577206572617320696e646566696e6974656c792e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002423205761726e696e6700190154686520656c656374696f6e2070726f6365737320737461727473206d756c7469706c6520626c6f636b73206265666f72652074686520656e64206f6620746865206572612e3901546875732074686520656c656374696f6e2070726f63657373206d6179206265206f6e676f696e67207768656e20746869732069732063616c6c65642e20496e2074686973206361736520746865dc656c656374696f6e2077696c6c20636f6e74696e756520756e74696c20746865206e65787420657261206973207472696767657265642e002823203c7765696768743e3c2d204e6f20617267756d656e74732e382d205765696768743a204f283129442d2057726974653a20466f7263654572612c23203c2f7765696768743e34666f7263655f6e65775f657261000d404901466f72636520746865726520746f2062652061206e6577206572612061742074686520656e64206f6620746865206e6578742073657373696f6e2e20416674657220746869732c2069742077696c6c2062659c726573657420746f206e6f726d616c20286e6f6e2d666f7263656429206265686176696f75722e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002423205761726e696e6700190154686520656c656374696f6e2070726f6365737320737461727473206d756c7469706c6520626c6f636b73206265666f72652074686520656e64206f6620746865206572612e4901496620746869732069732063616c6c6564206a757374206265666f72652061206e657720657261206973207472696767657265642c2074686520656c656374696f6e2070726f63657373206d6179206e6f748c6861766520656e6f75676820626c6f636b7320746f20676574206120726573756c742e002823203c7765696768743e3c2d204e6f20617267756d656e74732e382d205765696768743a204f283129402d20577269746520466f7263654572612c23203c2f7765696768743e447365745f696e76756c6e657261626c6573040134696e76756c6e657261626c6573dc01445665633c543a3a4163636f756e7449643e000e20c8536574207468652076616c696461746f72732077686f2063616e6e6f7420626520736c61736865642028696620616e79292e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002823203c7765696768743e182d204f285629582d2057726974653a20496e76756c6e657261626c65732c23203c2f7765696768743e34666f7263655f756e7374616b650801147374617368000130543a3a4163636f756e7449640001486e756d5f736c617368696e675f7370616e7310010c753332000f280901466f72636520612063757272656e74207374616b657220746f206265636f6d6520636f6d706c6574656c7920756e7374616b65642c20696d6d6564696174656c792e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002823203c7765696768743ee84f285329207768657265205320697320746865206e756d626572206f6620736c617368696e67207370616e7320746f2062652072656d6f766564b452656164733a20426f6e6465642c20536c617368696e67205370616e732c204163636f756e742c204c6f636b7345015772697465733a20426f6e6465642c20536c617368696e67205370616e73202869662053203e2030292c204c65646765722c2050617965652c2056616c696461746f72732c204e6f6d696e61746f72732ca44163636f756e742c204c6f636b732057726974657320456163683a205370616e536c617368202a20532c23203c2f7765696768743e50666f7263655f6e65775f6572615f616c776179730010380101466f72636520746865726520746f2062652061206e6577206572612061742074686520656e64206f662073657373696f6e7320696e646566696e6974656c792e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002423205761726e696e6700190154686520656c656374696f6e2070726f6365737320737461727473206d756c7469706c6520626c6f636b73206265666f72652074686520656e64206f6620746865206572612e4901496620746869732069732063616c6c6564206a757374206265666f72652061206e657720657261206973207472696767657265642c2074686520656c656374696f6e2070726f63657373206d6179206e6f748c6861766520656e6f75676820626c6f636b7320746f20676574206120726573756c742e002823203c7765696768743e382d205765696768743a204f283129442d2057726974653a20466f7263654572612c23203c2f7765696768743e5463616e63656c5f64656665727265645f736c61736808010c657261100120457261496e646578000134736c6173685f696e6469636573750201205665633c7533323e0011349443616e63656c20656e6163746d656e74206f66206120646566657272656420736c6173682e00b043616e2062652063616c6c6564206279207468652060543a3a536c61736843616e63656c4f726967696e602e000101506172616d65746572733a2065726120616e6420696e6469636573206f662074686520736c617368657320666f7220746861742065726120746f206b696c6c2e002823203c7765696768743e50436f6d706c65786974793a204f2855202b205329b477697468205520756e6170706c69656420736c6173686573207765696768746564207769746820553d31303030d0616e64205320697320746865206e756d626572206f6620736c61736820696e646963657320746f2062652063616e63656c65642e642d20526561643a20556e6170706c69656420536c6173686573682d2057726974653a20556e6170706c69656420536c61736865732c23203c2f7765696768743e387061796f75745f7374616b65727308013c76616c696461746f725f7374617368000130543a3a4163636f756e74496400010c657261100120457261496e6465780012540d01506179206f757420616c6c20746865207374616b65727320626568696e6420612073696e676c652076616c696461746f7220666f7220612073696e676c65206572612e0049012d206076616c696461746f725f73746173686020697320746865207374617368206163636f756e74206f66207468652076616c696461746f722e205468656972206e6f6d696e61746f72732c20757020746f2501202060543a3a4d61784e6f6d696e61746f72526577617264656450657256616c696461746f72602c2077696c6c20616c736f207265636569766520746865697220726577617264732e31012d206065726160206d617920626520616e7920657261206265747765656e20605b63757272656e745f657261202d20686973746f72795f64657074683b2063757272656e745f6572615d602e005501546865206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e20416e79206163636f756e742063616e2063616c6c20746869732066756e6374696f6e2c206576656e206966746974206973206e6f74206f6e65206f6620746865207374616b6572732e002823203c7765696768743efc2d2054696d6520636f6d706c65786974793a206174206d6f7374204f284d61784e6f6d696e61746f72526577617264656450657256616c696461746f72292ec02d20436f6e7461696e732061206c696d69746564206e756d626572206f6620726561647320616e64207772697465732e2c2d2d2d2d2d2d2d2d2d2d2d19014e20697320746865204e756d626572206f66207061796f75747320666f72207468652076616c696461746f722028696e636c7564696e67207468652076616c696461746f72291c5765696768743a842d205265776172642044657374696e6174696f6e205374616b65643a204f284e29c02d205265776172642044657374696e6174696f6e20436f6e74726f6c6c657220284372656174696e67293a204f284e29004d0120204e4f54453a20776569676874732061726520617373756d696e672074686174207061796f75747320617265206d61646520746f20616c697665207374617368206163636f756e7420285374616b6564292e55012020506179696e67206576656e2061206465616420636f6e74726f6c6c65722069732063686561706572207765696768742d776973652e20576520646f6e277420646f20616e7920726566756e647320686572652e2c23203c2f7765696768743e187265626f6e6404011476616c7565cc013042616c616e63654f663c543e001324dc5265626f6e64206120706f7274696f6e206f6620746865207374617368207363686564756c656420746f20626520756e6c6f636b65642e00d4546865206469737061746368206f726967696e206d757374206265207369676e65642062792074686520636f6e74726f6c6c65722e002823203c7765696768743ed02d2054696d6520636f6d706c65786974793a204f284c292c207768657265204c20697320756e6c6f636b696e67206368756e6b73902d20426f756e64656420627920604d41585f554e4c4f434b494e475f4348554e4b53602ef02d2053746f72616765206368616e6765733a2043616e277420696e6372656173652073746f726167652c206f6e6c792064656372656173652069742e2c23203c2f7765696768743e447365745f686973746f72795f64657074680801446e65775f686973746f72795f6465707468ad010120457261496e6465780001446572615f6974656d735f64656c65746564ad01010c7533320014582d015365742060486973746f72794465707468602076616c75652e20546869732066756e6374696f6e2077696c6c2064656c65746520616e7920686973746f727920696e666f726d6174696f6e7c7768656e2060486973746f727944657074686020697320726564756365642e002c506172616d65746572733a0d012d20606e65775f686973746f72795f6465707468603a20546865206e657720686973746f727920646570746820796f7520776f756c64206c696b6520746f207365742e59012d20606572615f6974656d735f64656c65746564603a20546865206e756d626572206f66206974656d7320746861742077696c6c2062652064656c6574656420627920746869732064697370617463682e20546869735d01202073686f756c64207265706f727420616c6c207468652073746f72616765206974656d7320746861742077696c6c2062652064656c6574656420627920636c656172696e67206f6c642065726120686973746f72792e590120204e656564656420746f207265706f727420616e2061636375726174652077656967687420666f72207468652064697370617463682e20547275737465642062792060526f6f746020746f207265706f727420616e4820206163637572617465206e756d6265722e00504f726967696e206d75737420626520726f6f742e002823203c7765696768743edc2d20453a204e756d626572206f6620686973746f7279206465707468732072656d6f7665642c20692e652e203130202d3e2037203d2033382d205765696768743a204f284529302d204442205765696768743a9c202020202d2052656164733a2043757272656e74204572612c20486973746f72792044657074686c202020202d205772697465733a20486973746f72792044657074682d01202020202d20436c6561722050726566697820456163683a20457261205374616b6572732c204572615374616b657273436c69707065642c204572617356616c696461746f7250726566732501202020202d2057726974657320456163683a204572617356616c696461746f725265776172642c2045726173526577617264506f696e74732c2045726173546f74616c5374616b652c6c20202020202045726173537461727453657373696f6e496e6465782c23203c2f7765696768743e28726561705f73746173680801147374617368000130543a3a4163636f756e7449640001486e756d5f736c617368696e675f7370616e7310010c7533320015405d0152656d6f766520616c6c20646174612073747275637475726520636f6e6365726e696e672061207374616b65722f7374617368206f6e6365206974732062616c616e636520697320617420746865206d696e696d756d2e5d015468697320697320657373656e7469616c6c79206571756976616c656e7420746f206077697468647261775f756e626f6e64656460206578636570742069742063616e2062652063616c6c656420627920616e796f6e65f4616e6420746865207461726765742060737461736860206d7573742068617665206e6f2066756e6473206c656674206265796f6e64207468652045442e008c546869732063616e2062652063616c6c65642066726f6d20616e79206f726967696e2e00fc2d20607374617368603a20546865207374617368206163636f756e7420746f20726561702e204974732062616c616e6365206d757374206265207a65726f2e002823203c7765696768743e2101436f6d706c65786974793a204f285329207768657265205320697320746865206e756d626572206f6620736c617368696e67207370616e73206f6e20746865206163636f756e742e284442205765696768743ad42d2052656164733a205374617368204163636f756e742c20426f6e6465642c20536c617368696e67205370616e732c204c6f636b734d012d205772697465733a20426f6e6465642c20536c617368696e67205370616e73202869662053203e2030292c204c65646765722c2050617965652c2056616c696461746f72732c204e6f6d696e61746f72732c5820205374617368204163636f756e742c204c6f636b73702d2057726974657320456163683a205370616e536c617368202a20532c23203c2f7765696768743e106b69636b04010c77686f6d0201a05665633c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653e00162ce052656d6f76652074686520676976656e206e6f6d696e6174696f6e732066726f6d207468652063616c6c696e672076616c696461746f722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e004d012d206077686f603a2041206c697374206f66206e6f6d696e61746f72207374617368206163636f756e74732077686f20617265206e6f6d696e6174696e6720746869732076616c696461746f72207768696368c0202073686f756c64206e6f206c6f6e676572206265206e6f6d696e6174696e6720746869732076616c696461746f722e0055014e6f74653a204d616b696e6720746869732063616c6c206f6e6c79206d616b65732073656e736520696620796f7520666972737420736574207468652076616c696461746f7220707265666572656e63657320746f78626c6f636b20616e792066757274686572206e6f6d696e6174696f6e732e487365745f7374616b696e675f6c696d6974731401486d696e5f6e6f6d696e61746f725f626f6e6418013042616c616e63654f663c543e0001486d696e5f76616c696461746f725f626f6e6418013042616c616e63654f663c543e00014c6d61785f6e6f6d696e61746f725f636f756e747902012c4f7074696f6e3c7533323e00014c6d61785f76616c696461746f725f636f756e747902012c4f7074696f6e3c7533323e0001247468726573686f6c647d02013c4f7074696f6e3c50657263656e743e001734b85570646174652074686520766172696f7573207374616b696e67206c696d69747320746869732070616c6c65742e0025012a20606d696e5f6e6f6d696e61746f725f626f6e64603a20546865206d696e696d756d2061637469766520626f6e64206e656564656420746f2062652061206e6f6d696e61746f722e25012a20606d696e5f76616c696461746f725f626f6e64603a20546865206d696e696d756d2061637469766520626f6e64206e656564656420746f20626520612076616c696461746f722e55012a20606d61785f6e6f6d696e61746f725f636f756e74603a20546865206d6178206e756d626572206f662075736572732077686f2063616e2062652061206e6f6d696e61746f72206174206f6e63652e205768656e98202073657420746f20604e6f6e65602c206e6f206c696d697420697320656e666f726365642e55012a20606d61785f76616c696461746f725f636f756e74603a20546865206d6178206e756d626572206f662075736572732077686f2063616e20626520612076616c696461746f72206174206f6e63652e205768656e98202073657420746f20604e6f6e65602c206e6f206c696d697420697320656e666f726365642e00a84f726967696e206d75737420626520526f6f7420746f2063616c6c20746869732066756e6374696f6e2e0035014e4f54453a204578697374696e67206e6f6d696e61746f727320616e642076616c696461746f72732077696c6c206e6f742062652061666665637465642062792074686973207570646174652e1101746f206b69636b2070656f706c6520756e64657220746865206e6577206c696d6974732c20606368696c6c5f6f74686572602073686f756c642062652063616c6c65642e2c6368696c6c5f6f74686572040128636f6e74726f6c6c6572000130543a3a4163636f756e74496400185441014465636c61726520612060636f6e74726f6c6c65726020746f2073746f702070617274696369706174696e672061732065697468657220612076616c696461746f72206f72206e6f6d696e61746f722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e004101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2c206275742063616e2062652063616c6c656420627920616e796f6e652e0059014966207468652063616c6c6572206973207468652073616d652061732074686520636f6e74726f6c6c6572206265696e672074617267657465642c207468656e206e6f206675727468657220636865636b7320617265d8656e666f726365642c20616e6420746869732066756e6374696f6e2062656861766573206a757374206c696b6520606368696c6c602e005d014966207468652063616c6c657220697320646966666572656e74207468616e2074686520636f6e74726f6c6c6572206265696e672074617267657465642c2074686520666f6c6c6f77696e6720636f6e646974696f6e73306d757374206265206d65743a3d012a204120604368696c6c5468726573686f6c6460206d7573742062652073657420616e6420636865636b656420776869636820646566696e657320686f7720636c6f736520746f20746865206d6178550120206e6f6d696e61746f7273206f722076616c696461746f7273207765206d757374207265616368206265666f72652075736572732063616e207374617274206368696c6c696e67206f6e652d616e6f746865722e59012a204120604d61784e6f6d696e61746f72436f756e746020616e6420604d617856616c696461746f72436f756e7460206d75737420626520736574207768696368206973207573656420746f2064657465726d696e65902020686f7720636c6f73652077652061726520746f20746865207468726573686f6c642e5d012a204120604d696e4e6f6d696e61746f72426f6e646020616e6420604d696e56616c696461746f72426f6e6460206d7573742062652073657420616e6420636865636b65642c2077686963682064657465726d696e65735101202069662074686973206973206120706572736f6e20746861742073686f756c64206265206368696c6c6564206265636175736520746865792068617665206e6f74206d657420746865207468726573686f6c64402020626f6e642072657175697265642e005501546869732063616e2062652068656c7066756c20696620626f6e6420726571756972656d656e74732061726520757064617465642c20616e64207765206e65656420746f2072656d6f7665206f6c642075736572739877686f20646f206e6f74207361746973667920746865736520726571756972656d656e74732e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e6102083870616c6c65745f7374616b696e674452657761726444657374696e6174696f6e04244163636f756e74496401000114185374616b656400000014537461736800010028436f6e74726f6c6c65720002001c4163636f756e7404000001244163636f756e744964000300104e6f6e65000400006502083870616c6c65745f7374616b696e673856616c696461746f7250726566730000080128636f6d6d697373696f6e6902011c50657262696c6c00011c626c6f636b6564e80110626f6f6c00006902000006b901006d020000024d020071020c3473705f61726974686d65746963287065725f7468696e67731c50657263656e74000004000801087538000075020000021000790204184f7074696f6e04045401100108104e6f6e6500000010536f6d6504001000000100007d0204184f7074696f6e0404540171020108104e6f6e6500000010536f6d6504007102000001000081020c3870616c6c65745f73657373696f6e1870616c6c65741043616c6c040454000108207365745f6b6579730801106b6579738502011c543a3a4b65797300011470726f6f6628011c5665633c75383e000038e453657473207468652073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c657220746f20606b657973602e1d01416c6c6f777320616e206163636f756e7420746f20736574206974732073657373696f6e206b6579207072696f7220746f206265636f6d696e6720612076616c696461746f722ec05468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e00d0546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265207369676e65642e002823203c7765696768743e11012d20436f6d706c65786974793a20604f283129602e2041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f6698202060543a3a4b6579733a3a6b65795f6964732829602077686963682069732066697865642eec2d20446252656164733a20606f726967696e206163636f756e74602c2060543a3a56616c696461746f7249644f66602c20604e6578744b65797360a02d2044625772697465733a20606f726967696e206163636f756e74602c20604e6578744b65797360802d204462526561647320706572206b65792069643a20604b65794f776e657260842d20446257726974657320706572206b65792069643a20604b65794f776e6572602c23203c2f7765696768743e2870757267655f6b657973000130c852656d6f76657320616e792073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c65722ec05468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e00d0546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265207369676e65642e002823203c7765696768743e61012d20436f6d706c65786974793a20604f2831296020696e206e756d626572206f66206b65792074797065732e2041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468a420206f662060543a3a4b6579733a3a6b65795f6964732829602077686963682069732066697865642eec2d20446252656164733a2060543a3a56616c696461746f7249644f66602c20604e6578744b657973602c20606f726967696e206163636f756e7460a02d2044625772697465733a20604e6578744b657973602c20606f726967696e206163636f756e7460842d20446257726974657320706572206b65792069643a20604b65794f776e6572602c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e85020840706f6c6b61646f745f72756e74696d652c53657373696f6e4b657973000018011c6772616e647061ac01d03c4772616e647061206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c696300011062616265250201c43c42616265206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c6963000124696d5f6f6e6c696e65b801d43c496d4f6e6c696e65206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c6963000138706172615f76616c696461746f72890201e03c496e697469616c697a6572206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c696300013c706172615f61737369676e6d656e748d0201f03c5061726153657373696f6e496e666f206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c696300014c617574686f726974795f646973636f76657279910201fc3c417574686f72697479446973636f76657279206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c696300008902104c706f6c6b61646f745f7072696d6974697665730876303476616c696461746f725f617070185075626c696300000400bc013c737232353531393a3a5075626c696300008d02104c706f6c6b61646f745f7072696d6974697665730876313861737369676e6d656e745f617070185075626c696300000400bc013c737232353531393a3a5075626c6963000091020c5873705f617574686f726974795f646973636f766572790c617070185075626c696300000400bc013c737232353531393a3a5075626c6963000095020c3870616c6c65745f6772616e6470611870616c6c65741043616c6c04045400010c4c7265706f72745f65717569766f636174696f6e08014865717569766f636174696f6e5f70726f6f66990201bc426f783c45717569766f636174696f6e50726f6f663c543a3a486173682c20543a3a426c6f636b4e756d6265723e3e00013c6b65795f6f776e65725f70726f6f662d020140543a3a4b65794f776e657250726f6f6600001009015265706f727420766f7465722065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667920746865f465717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66f8616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63654477696c6c206265207265706f727465642e707265706f72745f65717569766f636174696f6e5f756e7369676e656408014865717569766f636174696f6e5f70726f6f66990201bc426f783c45717569766f636174696f6e50726f6f663c543a3a486173682c20543a3a426c6f636b4e756d6265723e3e00013c6b65795f6f776e65725f70726f6f662d020140543a3a4b65794f776e657250726f6f6600012409015265706f727420766f7465722065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667920746865f465717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66f8616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63654477696c6c206265207265706f727465642e000d01546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c791501626c6f636b20617574686f72732077696c6c2063616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c2061732073756368150169662074686520626c6f636b20617574686f7220697320646566696e65642069742077696c6c20626520646566696e6564206173207468652065717569766f636174696f6e247265706f727465722e306e6f74655f7374616c6c656408011464656c6179100138543a3a426c6f636b4e756d62657200016c626573745f66696e616c697a65645f626c6f636b5f6e756d626572100138543a3a426c6f636b4e756d62657200021c19014e6f74652074686174207468652063757272656e7420617574686f7269747920736574206f6620746865204752414e4450412066696e616c697479206761646765742068617325017374616c6c65642e20546869732077696c6c2074726967676572206120666f7263656420617574686f7269747920736574206368616e67652061742074686520626567696e6e696e671d016f6620746865206e6578742073657373696f6e2c20746f20626520656e6163746564206064656c61796020626c6f636b7320616674657220746861742e205468652064656c6179110173686f756c64206265206869676820656e6f75676820746f20736166656c7920617373756d6520746861742074686520626c6f636b207369676e616c6c696e67207468652501666f72636564206368616e67652077696c6c206e6f742062652072652d6f726765642028652e672e203130303020626c6f636b73292e20546865204752414e44504120766f74657273250177696c6c20737461727420746865206e657720617574686f7269747920736574207573696e672074686520676976656e2066696e616c697a656420626c6f636b20617320626173652e584f6e6c792063616c6c61626c6520627920726f6f742e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e9902084c73705f66696e616c6974795f6772616e6470614445717569766f636174696f6e50726f6f660804480124044e0110000801187365745f6964200114536574496400013065717569766f636174696f6e9d02014845717569766f636174696f6e3c482c204e3e00009d02084c73705f66696e616c6974795f6772616e6470613045717569766f636174696f6e0804480124044e011001081c507265766f74650400a1020139016772616e6470613a3a45717569766f636174696f6e3c417574686f7269747949642c206772616e6470613a3a507265766f74653c482c204e3e2c0a417574686f726974795369676e61747572653e00000024507265636f6d6d69740400b5020141016772616e6470613a3a45717569766f636174696f6e3c417574686f7269747949642c206772616e6470613a3a507265636f6d6d69743c482c204e3e2c0a417574686f726974795369676e61747572653e00010000a102084066696e616c6974795f6772616e6470613045717569766f636174696f6e0c08496401ac045601a502045301a90200100130726f756e645f6e756d62657220010c7536340001206964656e74697479ac010849640001146669727374b102011828562c2053290001187365636f6e64b102011828562c2053290000a502084066696e616c6974795f6772616e6470611c507265766f74650804480124044e01100008012c7461726765745f68617368240104480001347461726765745f6e756d6265721001044e0000a9020c4c73705f66696e616c6974795f6772616e6470610c617070245369676e617475726500000400ad020148656432353531393a3a5369676e61747572650000ad020c1c73705f636f72651c65643235353139245369676e617475726500000400610101205b75383b2036345d0000b10200000408a502a90200b502084066696e616c6974795f6772616e6470613045717569766f636174696f6e0c08496401ac045601b902045301a90200100130726f756e645f6e756d62657220010c7536340001206964656e74697479ac010849640001146669727374bd02011828562c2053290001187365636f6e64bd02011828562c2053290000b902084066696e616c6974795f6772616e64706124507265636f6d6d69740804480124044e01100008012c7461726765745f68617368240104480001347461726765745f6e756d6265721001044e0000bd0200000408b902a90200c1020c4070616c6c65745f696d5f6f6e6c696e651870616c6c65741043616c6c04045400010424686561727462656174080124686561727462656174c50201644865617274626561743c543a3a426c6f636b4e756d6265723e0001247369676e6174757265d90201bc3c543a3a417574686f7269747949642061732052756e74696d654170705075626c69633e3a3a5369676e61747572650000242823203c7765696768743e61012d20436f6d706c65786974793a20604f284b202b20452960207768657265204b206973206c656e677468206f6620604b6579736020286865617274626561742e76616c696461746f72735f6c656e2920616e642045206973d820206c656e677468206f6620606865617274626561742e6e6574776f726b5f73746174652e65787465726e616c5f61646472657373608820202d20604f284b29603a206465636f64696e67206f66206c656e67746820604b60ac20202d20604f284529603a206465636f64696e672f656e636f64696e67206f66206c656e6774682060456039012d20446252656164733a2070616c6c65745f73657373696f6e206056616c696461746f7273602c2070616c6c65745f73657373696f6e206043757272656e74496e646578602c20604b657973602c5820206052656365697665644865617274626561747360802d2044625772697465733a2060526563656976656448656172746265617473602c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ec502084070616c6c65745f696d5f6f6e6c696e6524486561727462656174042c426c6f636b4e756d626572011000140130626c6f636b5f6e756d62657210012c426c6f636b4e756d6265720001346e6574776f726b5f7374617465c90201484f70617175654e6574776f726b537461746500013473657373696f6e5f696e64657810013053657373696f6e496e64657800013c617574686f726974795f696e64657810012441757468496e64657800013876616c696461746f72735f6c656e10010c7533320000c9020c1c73705f636f7265206f6666636861696e484f70617175654e6574776f726b5374617465000008011c706565725f6964cd0201304f706171756550656572496400014865787465726e616c5f616464726573736573d10201505665633c4f70617175654d756c7469616464723e0000cd02081c73705f636f7265304f70617175655065657249640000040028011c5665633c75383e0000d102000002d50200d5020c1c73705f636f7265206f6666636861696e3c4f70617175654d756c7469616464720000040028011c5665633c75383e0000d902104070616c6c65745f696d5f6f6e6c696e651c737232353531392c6170705f73723235353139245369676e6174757265000004005d010148737232353531393a3a5369676e61747572650000dd020c4070616c6c65745f64656d6f63726163791870616c6c65741043616c6c0404540001641c70726f706f736508013470726f706f73616c5f6861736824011c543a3a4861736800011476616c7565cc013042616c616e63654f663c543e00002c9c50726f706f736520612073656e73697469766520616374696f6e20746f2062652074616b656e2e001501546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737480686176652066756e647320746f20636f76657220746865206465706f7369742e00d42d206070726f706f73616c5f68617368603a205468652068617368206f66207468652070726f706f73616c20707265696d6167652e15012d206076616c7565603a2054686520616d6f756e74206f66206465706f73697420286d757374206265206174206c6561737420604d696e696d756d4465706f73697460292e0044456d697473206050726f706f736564602e00385765696768743a20604f28702960187365636f6e6408012070726f706f73616cad01012450726f70496e64657800014c7365636f6e64735f75707065725f626f756e64ad01010c753332000128b45369676e616c732061677265656d656e742077697468206120706172746963756c61722070726f706f73616c2e000101546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e64657211016d75737420686176652066756e647320746f20636f76657220746865206465706f7369742c20657175616c20746f20746865206f726967696e616c206465706f7369742e00c82d206070726f706f73616c603a2054686520696e646578206f66207468652070726f706f73616c20746f207365636f6e642e41012d20607365636f6e64735f75707065725f626f756e64603a20616e20757070657220626f756e64206f6e207468652063757272656e74206e756d626572206f66207365636f6e6473206f6e20746869732501202070726f706f73616c2e2045787472696e736963206973207765696768746564206163636f7264696e6720746f20746869732076616c75652077697468206e6f20726566756e642e001d015765696768743a20604f28532960207768657265205320697320746865206e756d626572206f66207365636f6e647320612070726f706f73616c20616c7265616479206861732e10766f74650801247265665f696e646578ad01013c5265666572656e64756d496e646578000110766f7465e10201644163636f756e74566f74653c42616c616e63654f663c543e3e0002243101566f746520696e2061207265666572656e64756d2e2049662060766f74652e69735f6179652829602c2074686520766f746520697320746f20656e616374207468652070726f706f73616c3bb86f7468657277697365206974206973206120766f746520746f206b65657020746865207374617475732071756f2e00c8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00dc2d20607265665f696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f20766f746520666f722e842d2060766f7465603a2054686520766f746520636f6e66696775726174696f6e2e002d015765696768743a20604f28522960207768657265205220697320746865206e756d626572206f66207265666572656e64756d732074686520766f7465722068617320766f746564206f6e2e40656d657267656e63795f63616e63656c0401247265665f696e64657810013c5265666572656e64756d496e6465780003204d015363686564756c6520616e20656d657267656e63792063616e63656c6c6174696f6e206f662061207265666572656e64756d2e2043616e6e6f742068617070656e20747769636520746f207468652073616d652c7265666572656e64756d2e00f8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265206043616e63656c6c6174696f6e4f726967696e602e00d02d607265665f696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f2063616e63656c2e003c5765696768743a20604f283129602e4065787465726e616c5f70726f706f736504013470726f706f73616c5f6861736824011c543a3a486173680004242d015363686564756c652061207265666572656e64756d20746f206265207461626c6564206f6e6365206974206973206c6567616c20746f207363686564756c6520616e2065787465726e616c2c7265666572656e64756d2e00e8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265206045787465726e616c4f726967696e602e00d42d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f66207468652070726f706f73616c2e0015015765696768743a20604f2856296020776974682056206e756d626572206f66207665746f65727320696e2074686520626c61636b6c697374206f662070726f706f73616c2eb820204465636f64696e6720766563206f66206c656e67746820562e2043686172676564206173206d6178696d756d6465787465726e616c5f70726f706f73655f6d616a6f7269747904013470726f706f73616c5f6861736824011c543a3a4861736800052c55015363686564756c652061206d616a6f726974792d63617272696573207265666572656e64756d20746f206265207461626c6564206e657874206f6e6365206974206973206c6567616c20746f207363686564756c655c616e2065787465726e616c207265666572656e64756d2e00ec546865206469737061746368206f6620746869732063616c6c206d757374206265206045787465726e616c4d616a6f726974794f726967696e602e00d42d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f66207468652070726f706f73616c2e004901556e6c696b65206065787465726e616c5f70726f706f7365602c20626c61636b6c697374696e6720686173206e6f20656666656374206f6e207468697320616e64206974206d6179207265706c6163652061987072652d7363686564756c6564206065787465726e616c5f70726f706f7365602063616c6c2e00385765696768743a20604f283129606065787465726e616c5f70726f706f73655f64656661756c7404013470726f706f73616c5f6861736824011c543a3a4861736800062c45015363686564756c652061206e656761746976652d7475726e6f75742d62696173207265666572656e64756d20746f206265207461626c6564206e657874206f6e6365206974206973206c6567616c20746f807363686564756c6520616e2065787465726e616c207265666572656e64756d2e00e8546865206469737061746368206f6620746869732063616c6c206d757374206265206045787465726e616c44656661756c744f726967696e602e00d42d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f66207468652070726f706f73616c2e004901556e6c696b65206065787465726e616c5f70726f706f7365602c20626c61636b6c697374696e6720686173206e6f20656666656374206f6e207468697320616e64206974206d6179207265706c6163652061987072652d7363686564756c6564206065787465726e616c5f70726f706f7365602063616c6c2e00385765696768743a20604f2831296028666173745f747261636b0c013470726f706f73616c5f6861736824011c543a3a48617368000134766f74696e675f706572696f64100138543a3a426c6f636b4e756d62657200011464656c6179100138543a3a426c6f636b4e756d62657200073c4d015363686564756c65207468652063757272656e746c792065787465726e616c6c792d70726f706f736564206d616a6f726974792d63617272696573207265666572656e64756d20746f206265207461626c65646101696d6d6564696174656c792e204966207468657265206973206e6f2065787465726e616c6c792d70726f706f736564207265666572656e64756d2063757272656e746c792c206f72206966207468657265206973206f6e65e8627574206974206973206e6f742061206d616a6f726974792d63617272696573207265666572656e64756d207468656e206974206661696c732e00d0546865206469737061746368206f6620746869732063616c6c206d757374206265206046617374547261636b4f726967696e602e00f42d206070726f706f73616c5f68617368603a205468652068617368206f66207468652063757272656e742065787465726e616c2070726f706f73616c2e5d012d2060766f74696e675f706572696f64603a2054686520706572696f64207468617420697320616c6c6f77656420666f7220766f74696e67206f6e20746869732070726f706f73616c2e20496e6372656173656420746f9420206046617374547261636b566f74696e67506572696f646020696620746f6f206c6f772e51012d206064656c6179603a20546865206e756d626572206f6620626c6f636b20616674657220766f74696e672068617320656e64656420696e20617070726f76616c20616e6420746869732073686f756c64206265b82020656e61637465642e205468697320646f65736e277420686176652061206d696e696d756d20616d6f756e742e0040456d697473206053746172746564602e00385765696768743a20604f28312960347665746f5f65787465726e616c04013470726f706f73616c5f6861736824011c543a3a48617368000824b85665746f20616e6420626c61636b6c697374207468652065787465726e616c2070726f706f73616c20686173682e00d8546865206469737061746368206f726967696e206f6620746869732063616c6c206d75737420626520605665746f4f726967696e602e002d012d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f66207468652070726f706f73616c20746f207665746f20616e6420626c61636b6c6973742e003c456d69747320605665746f6564602e00fc5765696768743a20604f2856202b206c6f6728562929602077686572652056206973206e756d626572206f6620606578697374696e67207665746f657273604463616e63656c5f7265666572656e64756d0401247265665f696e646578ad01013c5265666572656e64756d496e64657800091c5052656d6f76652061207265666572656e64756d2e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f526f6f745f2e00d42d20607265665f696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f2063616e63656c2e004423205765696768743a20604f283129602e3463616e63656c5f717565756564040114776869636810013c5265666572656e64756d496e646578000a1c9c43616e63656c20612070726f706f73616c2071756575656420666f7220656e6163746d656e742e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f526f6f745f2e00c42d20607768696368603a2054686520696e646578206f6620746865207265666572656e64756d20746f2063616e63656c2e0049015765696768743a20604f284429602077686572652060446020697320746865206974656d7320696e207468652064697370617463682071756575652e205765696768746564206173206044203d203130602e2064656c65676174650c0108746f000130543a3a4163636f756e744964000128636f6e76696374696f6ee9020128436f6e76696374696f6e00011c62616c616e636518013042616c616e63654f663c543e000b50390144656c65676174652074686520766f74696e6720706f77657220287769746820736f6d6520676976656e20636f6e76696374696f6e29206f66207468652073656e64696e67206163636f756e742e0055015468652062616c616e63652064656c656761746564206973206c6f636b656420666f72206173206c6f6e6720617320697427732064656c6567617465642c20616e64207468657265616674657220666f7220746865c874696d6520617070726f70726961746520666f722074686520636f6e76696374696f6e2773206c6f636b20706572696f642e005d01546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2c20616e6420746865207369676e696e67206163636f756e74206d757374206569746865723a7420202d2062652064656c65676174696e6720616c72656164793b206f72590120202d2068617665206e6f20766f74696e67206163746976697479202869662074686572652069732c207468656e2069742077696c6c206e65656420746f2062652072656d6f7665642f636f6e736f6c69646174656494202020207468726f7567682060726561705f766f746560206f722060756e766f746560292e0045012d2060746f603a20546865206163636f756e742077686f736520766f74696e6720746865206074617267657460206163636f756e74277320766f74696e6720706f7765722077696c6c20666f6c6c6f772e55012d2060636f6e76696374696f6e603a2054686520636f6e76696374696f6e20746861742077696c6c20626520617474616368656420746f207468652064656c65676174656420766f7465732e205768656e20746865410120206163636f756e7420697320756e64656c6567617465642c207468652066756e64732077696c6c206265206c6f636b656420666f722074686520636f72726573706f6e64696e6720706572696f642e61012d206062616c616e6365603a2054686520616d6f756e74206f6620746865206163636f756e7427732062616c616e636520746f206265207573656420696e2064656c65676174696e672e2054686973206d757374206e6f74b420206265206d6f7265207468616e20746865206163636f756e7427732063757272656e742062616c616e63652e0048456d697473206044656c656761746564602e003d015765696768743a20604f28522960207768657265205220697320746865206e756d626572206f66207265666572656e64756d732074686520766f7465722064656c65676174696e6720746f20686173c82020766f746564206f6e2e205765696768742069732063686172676564206173206966206d6178696d756d20766f7465732e28756e64656c6567617465000c30cc556e64656c65676174652074686520766f74696e6720706f776572206f66207468652073656e64696e67206163636f756e742e005d01546f6b656e73206d617920626520756e6c6f636b656420666f6c6c6f77696e67206f6e636520616e20616d6f756e74206f662074696d6520636f6e73697374656e74207769746820746865206c6f636b20706572696f64dc6f662074686520636f6e76696374696f6e2077697468207768696368207468652064656c65676174696f6e20776173206973737565642e004501546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d7573742062655463757272656e746c792064656c65676174696e672e0050456d6974732060556e64656c656761746564602e003d015765696768743a20604f28522960207768657265205220697320746865206e756d626572206f66207265666572656e64756d732074686520766f7465722064656c65676174696e6720746f20686173c82020766f746564206f6e2e205765696768742069732063686172676564206173206966206d6178696d756d20766f7465732e58636c6561725f7075626c69635f70726f706f73616c73000d1470436c6561727320616c6c207075626c69632070726f706f73616c732e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f526f6f745f2e003c5765696768743a20604f283129602e346e6f74655f707265696d616765040140656e636f6465645f70726f706f73616c28011c5665633c75383e000e285d0152656769737465722074686520707265696d61676520666f7220616e207570636f6d696e672070726f706f73616c2e205468697320646f65736e27742072657175697265207468652070726f706f73616c20746f2062652101696e207468652064697370617463682071756575652062757420646f657320726571756972652061206465706f7369742c2072657475726e6564206f6e636520656e61637465642e00c8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00c42d2060656e636f6465645f70726f706f73616c603a2054686520707265696d616765206f6620612070726f706f73616c2e0058456d6974732060507265696d6167654e6f746564602e004d015765696768743a20604f28452960207769746820452073697a65206f662060656e636f6465645f70726f706f73616c60202870726f7465637465642062792061207265717569726564206465706f736974292e646e6f74655f707265696d6167655f6f7065726174696f6e616c040140656e636f6465645f70726f706f73616c28011c5665633c75383e000f04090153616d6520617320606e6f74655f707265696d6167656020627574206f726967696e20697320604f7065726174696f6e616c507265696d6167654f726967696e602e586e6f74655f696d6d696e656e745f707265696d616765040140656e636f6465645f70726f706f73616c28011c5665633c75383e001030410152656769737465722074686520707265696d61676520666f7220616e207570636f6d696e672070726f706f73616c2e2054686973207265717569726573207468652070726f706f73616c20746f2062653d01696e207468652064697370617463682071756575652e204e6f206465706f736974206973206e65656465642e205768656e20746869732063616c6c206973207375636365737366756c2c20692e652e350174686520707265696d61676520686173206e6f74206265656e2075706c6f61646564206265666f726520616e64206d61746368657320736f6d6520696d6d696e656e742070726f706f73616c2c3c6e6f2066656520697320706169642e00c8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00c42d2060656e636f6465645f70726f706f73616c603a2054686520707265696d616765206f6620612070726f706f73616c2e0058456d6974732060507265696d6167654e6f746564602e004d015765696768743a20604f28452960207769746820452073697a65206f662060656e636f6465645f70726f706f73616c60202870726f7465637465642062792061207265717569726564206465706f736974292e886e6f74655f696d6d696e656e745f707265696d6167655f6f7065726174696f6e616c040140656e636f6465645f70726f706f73616c28011c5665633c75383e0011042d0153616d6520617320606e6f74655f696d6d696e656e745f707265696d6167656020627574206f726967696e20697320604f7065726174696f6e616c507265696d6167654f726967696e602e34726561705f707265696d61676508013470726f706f73616c5f6861736824011c543a3a4861736800016070726f706f73616c5f6c656e5f75707065725f626f756e64ad01010c75333200123cf052656d6f766520616e20657870697265642070726f706f73616c20707265696d61676520616e6420636f6c6c65637420746865206465706f7369742e00c8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00cc2d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f6620612070726f706f73616c2e5d012d206070726f706f73616c5f6c656e6774685f75707065725f626f756e64603a20616e20757070657220626f756e64206f6e206c656e677468206f66207468652070726f706f73616c2e2045787472696e736963206973c820207765696768746564206163636f7264696e6720746f20746869732076616c75652077697468206e6f20726566756e642e004d01546869732077696c6c206f6e6c7920776f726b2061667465722060566f74696e67506572696f646020626c6f636b732066726f6d207468652074696d6520746861742074686520707265696d6167652077617359016e6f7465642c2069662069742773207468652073616d65206163636f756e7420646f696e672069742e2049662069742773206120646966666572656e74206163636f756e742c207468656e206974276c6c206f6e6c79ac776f726b20616e206164646974696f6e616c2060456e6163746d656e74506572696f6460206c617465722e005c456d6974732060507265696d616765526561706564602e00b45765696768743a20604f284429602077686572652044206973206c656e677468206f662070726f706f73616c2e18756e6c6f636b040118746172676574000130543a3a4163636f756e74496400131ca0556e6c6f636b20746f6b656e732074686174206861766520616e2065787069726564206c6f636b2e00c8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00b82d2060746172676574603a20546865206163636f756e7420746f2072656d6f766520746865206c6f636b206f6e2e00bc5765696768743a20604f2852296020776974682052206e756d626572206f6620766f7465206f66207461726765742e2c72656d6f76655f766f7465040114696e64657810013c5265666572656e64756d496e64657800146c7c52656d6f7665206120766f746520666f722061207265666572656e64756d2e000c49663a882d20746865207265666572656e64756d207761732063616e63656c6c65642c206f727c2d20746865207265666572656e64756d206973206f6e676f696e672c206f72902d20746865207265666572656e64756d2068617320656e64656420737563682074686174fc20202d2074686520766f7465206f6620746865206163636f756e742077617320696e206f70706f736974696f6e20746f2074686520726573756c743b206f72d420202d20746865726520776173206e6f20636f6e76696374696f6e20746f20746865206163636f756e74277320766f74653b206f728420202d20746865206163636f756e74206d61646520612073706c697420766f74655d012e2e2e7468656e2074686520766f74652069732072656d6f76656420636c65616e6c7920616e64206120666f6c6c6f77696e672063616c6c20746f2060756e6c6f636b60206d617920726573756c7420696e206d6f72655866756e6473206265696e6720617661696c61626c652e00a849662c20686f77657665722c20746865207265666572656e64756d2068617320656e64656420616e643aec2d2069742066696e697368656420636f72726573706f6e64696e6720746f2074686520766f7465206f6620746865206163636f756e742c20616e64dc2d20746865206163636f756e74206d6164652061207374616e6461726420766f7465207769746820636f6e76696374696f6e2c20616e64bc2d20746865206c6f636b20706572696f64206f662074686520636f6e76696374696f6e206973206e6f74206f76657259012e2e2e7468656e20746865206c6f636b2077696c6c206265206167677265676174656420696e746f20746865206f766572616c6c206163636f756e742773206c6f636b2c207768696368206d617920696e766f6c766559012a6f7665726c6f636b696e672a20287768657265207468652074776f206c6f636b732061726520636f6d62696e656420696e746f20612073696e676c65206c6f636b207468617420697320746865206d6178696d756de46f6620626f74682074686520616d6f756e74206c6f636b656420616e64207468652074696d65206973206974206c6f636b656420666f72292e004901546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2c20616e6420746865207369676e6572206d7573742068617665206120766f7465887265676973746572656420666f72207265666572656e64756d2060696e646578602e00f42d2060696e646578603a2054686520696e646578206f66207265666572656e64756d206f662074686520766f746520746f2062652072656d6f7665642e0055015765696768743a20604f2852202b206c6f6720522960207768657265205220697320746865206e756d626572206f66207265666572656e646120746861742060746172676574602068617320766f746564206f6e2ed820205765696768742069732063616c63756c6174656420666f7220746865206d6178696d756d206e756d626572206f6620766f74652e4472656d6f76655f6f746865725f766f7465080118746172676574000130543a3a4163636f756e744964000114696e64657810013c5265666572656e64756d496e64657800153c7c52656d6f7665206120766f746520666f722061207265666572656e64756d2e004d0149662074686520607461726765746020697320657175616c20746f20746865207369676e65722c207468656e20746869732066756e6374696f6e2069732065786163746c79206571756976616c656e7420746f2d016072656d6f76655f766f7465602e204966206e6f7420657175616c20746f20746865207369676e65722c207468656e2074686520766f7465206d757374206861766520657870697265642c5501656974686572206265636175736520746865207265666572656e64756d207761732063616e63656c6c65642c20626563617573652074686520766f746572206c6f737420746865207265666572656e64756d206f7298626563617573652074686520636f6e76696374696f6e20706572696f64206973206f7665722e00c8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e004d012d2060746172676574603a20546865206163636f756e74206f662074686520766f746520746f2062652072656d6f7665643b2074686973206163636f756e74206d757374206861766520766f74656420666f725420207265666572656e64756d2060696e646578602ef42d2060696e646578603a2054686520696e646578206f66207265666572656e64756d206f662074686520766f746520746f2062652072656d6f7665642e0055015765696768743a20604f2852202b206c6f6720522960207768657265205220697320746865206e756d626572206f66207265666572656e646120746861742060746172676574602068617320766f746564206f6e2ed820205765696768742069732063616c63756c6174656420666f7220746865206d6178696d756d206e756d626572206f6620766f74652e38656e6163745f70726f706f73616c08013470726f706f73616c5f6861736824011c543a3a48617368000114696e64657810013c5265666572656e64756d496e6465780016044d01456e61637420612070726f706f73616c2066726f6d2061207265666572656e64756d2e20466f72206e6f77207765206a757374206d616b65207468652077656967687420626520746865206d6178696d756d2e24626c61636b6c69737408013470726f706f73616c5f6861736824011c543a3a4861736800013c6d617962655f7265665f696e6465787902015c4f7074696f6e3c5265666572656e64756d496e6465783e00173c45015065726d616e656e746c7920706c61636520612070726f706f73616c20696e746f2074686520626c61636b6c6973742e20546869732070726576656e74732069742066726f6d2065766572206265696e673c70726f706f73656420616761696e2e00510149662063616c6c6564206f6e206120717565756564207075626c6963206f722065787465726e616c2070726f706f73616c2c207468656e20746869732077696c6c20726573756c7420696e206974206265696e67510172656d6f7665642e2049662074686520607265665f696e6465786020737570706c69656420697320616e20616374697665207265666572656e64756d2077697468207468652070726f706f73616c20686173682c687468656e2069742077696c6c2062652063616e63656c6c65642e00ec546865206469737061746368206f726967696e206f6620746869732063616c6c206d7573742062652060426c61636b6c6973744f726967696e602e00f82d206070726f706f73616c5f68617368603a205468652070726f706f73616c206861736820746f20626c61636b6c697374207065726d616e656e746c792e45012d20607265665f696e646578603a20416e206f6e676f696e67207265666572656e64756d2077686f73652068617368206973206070726f706f73616c5f68617368602c2077686963682077696c6c2062652863616e63656c6c65642e0041015765696768743a20604f28702960202874686f756768206173207468697320697320616e20686967682d70726976696c6567652064697370617463682c20776520617373756d65206974206861732061502020726561736f6e61626c652076616c7565292e3c63616e63656c5f70726f706f73616c04012870726f705f696e646578ad01012450726f70496e64657800181c4852656d6f766520612070726f706f73616c2e000101546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265206043616e63656c50726f706f73616c4f726967696e602e00d02d206070726f705f696e646578603a2054686520696e646578206f66207468652070726f706f73616c20746f2063616e63656c2e00e45765696768743a20604f28702960207768657265206070203d205075626c696350726f70733a3a3c543e3a3a6465636f64655f6c656e282960042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ee1020c4070616c6c65745f64656d6f637261637910766f74652c4163636f756e74566f7465041c42616c616e636501180108205374616e64617264080110766f7465e5020110566f746500011c62616c616e636518011c42616c616e63650000001453706c697408010c61796518011c42616c616e636500010c6e617918011c42616c616e636500010000e5020c4070616c6c65745f64656d6f637261637910766f746510566f74650000040008000000e9020c4070616c6c65745f64656d6f637261637928636f6e76696374696f6e28436f6e76696374696f6e00011c104e6f6e65000000204c6f636b65643178000100204c6f636b65643278000200204c6f636b65643378000300204c6f636b65643478000400204c6f636b65643578000500204c6f636b6564367800060000ed020c4470616c6c65745f636f6c6c6563746976651870616c6c65741043616c6c0804540004490001182c7365745f6d656d626572730c012c6e65775f6d656d62657273dc01445665633c543a3a4163636f756e7449643e0001147072696d65f10201504f7074696f6e3c543a3a4163636f756e7449643e0001246f6c645f636f756e7410012c4d656d626572436f756e74000064805365742074686520636f6c6c6563746976652773206d656d626572736869702e0045012d20606e65775f6d656d62657273603a20546865206e6577206d656d626572206c6973742e204265206e69636520746f2074686520636861696e20616e642070726f7669646520697420736f727465642ee02d20607072696d65603a20546865207072696d65206d656d6265722077686f736520766f74652073657473207468652064656661756c742e59012d20606f6c645f636f756e74603a2054686520757070657220626f756e6420666f72207468652070726576696f7573206e756d626572206f66206d656d6265727320696e2073746f726167652e205573656420666f7250202077656967687420657374696d6174696f6e2e0054526571756972657320726f6f74206f726967696e2e0051014e4f54453a20446f6573206e6f7420656e666f7263652074686520657870656374656420604d61784d656d6265727360206c696d6974206f6e2074686520616d6f756e74206f66206d656d626572732c2062757421012020202020207468652077656967687420657374696d6174696f6e732072656c79206f6e20697420746f20657374696d61746520646973706174636861626c65207765696768742e002823203c7765696768743e24232320576569676874502d20604f284d50202b204e29602077686572653ae020202d20604d60206f6c642d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429e020202d20604e60206e65772d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e646564299820202d206050602070726f706f73616c732d636f756e742028636f64652d626f756e64656429142d2044423a510120202d20312073746f72616765206d75746174696f6e2028636f64656320604f284d296020726561642c20604f284e29602077726974652920666f722072656164696e6720616e642077726974696e67207468652c202020206d656d62657273ec20202d20312073746f7261676520726561642028636f64656320604f285029602920666f722072656164696e67207468652070726f706f73616c73450120202d206050602073746f72616765206d75746174696f6e732028636f64656320604f284d29602920666f72207570646174696e672074686520766f74657320666f7220656163682070726f706f73616c5d0120202d20312073746f726167652077726974652028636f64656320604f283129602920666f722064656c6574696e6720746865206f6c6420607072696d656020616e642073657474696e6720746865206e6577206f6e652c23203c2f7765696768743e1c6578656375746508012070726f706f73616c0902017c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e0001306c656e6774685f626f756e64ad01010c75333200012cf0446973706174636820612070726f706f73616c2066726f6d2061206d656d626572207573696e672074686520604d656d62657260206f726967696e2e00a84f726967696e206d7573742062652061206d656d626572206f662074686520636f6c6c6563746976652e002823203c7765696768743e2423232057656967687455012d20604f284d202b2050296020776865726520604d60206d656d626572732d636f756e742028636f64652d626f756e6465642920616e642060506020636f6d706c6578697479206f66206469737061746368696e673020206070726f706f73616c60d42d2044423a203120726561642028636f64656320604f284d296029202b20444220616363657373206f66206070726f706f73616c60242d2031206576656e742c23203c2f7765696768743e1c70726f706f73650c01247468726573686f6c64ad01012c4d656d626572436f756e7400012070726f706f73616c0902017c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e0001306c656e6774685f626f756e64ad01010c75333200026cf84164642061206e65772070726f706f73616c20746f2065697468657220626520766f746564206f6e206f72206578656375746564206469726563746c792e00845265717569726573207468652073656e64657220746f206265206d656d6265722e004101607468726573686f6c64602064657465726d696e65732077686574686572206070726f706f73616c60206973206578656375746564206469726563746c792028607468726573686f6c64203c20326029546f722070757420757020666f7220766f74696e672e002823203c7765696768743e24232320576569676874ac2d20604f2842202b204d202b2050312960206f7220604f2842202b204d202b20503229602077686572653ae020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429dc20202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429c420202d206272616e6368696e6720697320696e666c75656e63656420627920607468726573686f6c64602077686572653af4202020202d20605031602069732070726f706f73616c20657865637574696f6e20636f6d706c65786974792028607468726573686f6c64203c20326029fc202020202d20605032602069732070726f706f73616c732d636f756e742028636f64652d626f756e646564292028607468726573686f6c64203e3d20326029142d2044423ab420202d20312073746f726167652072656164206069735f6d656d626572602028636f64656320604f284d296029f020202d20312073746f726167652072656164206050726f706f73616c4f663a3a636f6e7461696e735f6b6579602028636f64656320604f2831296029a820202d20444220616363657373657320696e666c75656e63656420627920607468726573686f6c64603a0901202020202d204549544845522073746f7261676520616363657373657320646f6e65206279206070726f706f73616c602028607468726573686f6c64203c20326029b8202020202d204f522070726f706f73616c20696e73657274696f6e2028607468726573686f6c64203c3d20326029d82020202020202d20312073746f72616765206d75746174696f6e206050726f706f73616c73602028636f64656320604f285032296029e42020202020202d20312073746f72616765206d75746174696f6e206050726f706f73616c436f756e74602028636f64656320604f2831296029cc2020202020202d20312073746f72616765207772697465206050726f706f73616c4f66602028636f64656320604f2842296029bc2020202020202d20312073746f726167652077726974652060566f74696e67602028636f64656320604f284d2960292c20202d2031206576656e742c23203c2f7765696768743e10766f74650c012070726f706f73616c24011c543a3a48617368000114696e646578ad01013450726f706f73616c496e64657800011c617070726f7665e80110626f6f6c00033cf041646420616e20617965206f72206e617920766f746520666f72207468652073656e64657220746f2074686520676976656e2070726f706f73616c2e008c5265717569726573207468652073656e64657220746f2062652061206d656d6265722e0049015472616e73616374696f6e20666565732077696c6c2062652077616976656420696620746865206d656d62657220697320766f74696e67206f6e20616e7920706172746963756c61722070726f706f73616c5101666f72207468652066697273742074696d6520616e64207468652063616c6c206973207375636365737366756c2e2053756273657175656e7420766f7465206368616e6765732077696c6c206368617267652061106665652e2823203c7765696768743e2423232057656967687409012d20604f284d296020776865726520604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429142d2044423aac20202d20312073746f72616765207265616420604d656d62657273602028636f64656320604f284d296029b820202d20312073746f72616765206d75746174696f6e2060566f74696e67602028636f64656320604f284d296029242d2031206576656e742c23203c2f7765696768743e14636c6f736510013470726f706f73616c5f6861736824011c543a3a48617368000114696e646578ad01013450726f706f73616c496e64657800015470726f706f73616c5f7765696768745f626f756e64410201185765696768740001306c656e6774685f626f756e64ad01010c7533320004804d01436c6f7365206120766f746520746861742069732065697468657220617070726f7665642c20646973617070726f766564206f722077686f736520766f74696e6720706572696f642068617320656e6465642e0055014d61792062652063616c6c656420627920616e79207369676e6564206163636f756e7420696e206f7264657220746f2066696e69736820766f74696e6720616e6420636c6f7365207468652070726f706f73616c2e00490149662063616c6c6564206265666f72652074686520656e64206f662074686520766f74696e6720706572696f642069742077696c6c206f6e6c7920636c6f73652074686520766f7465206966206974206973bc68617320656e6f75676820766f74657320746f20626520617070726f766564206f7220646973617070726f7665642e00490149662063616c6c65642061667465722074686520656e64206f662074686520766f74696e6720706572696f642061627374656e74696f6e732061726520636f756e7465642061732072656a656374696f6e732501756e6c6573732074686572652069732061207072696d65206d656d6265722073657420616e6420746865207072696d65206d656d626572206361737420616e20617070726f76616c2e00610149662074686520636c6f7365206f7065726174696f6e20636f6d706c65746573207375636365737366756c6c79207769746820646973617070726f76616c2c20746865207472616e73616374696f6e206665652077696c6c5d016265207761697665642e204f746865727769736520657865637574696f6e206f662074686520617070726f766564206f7065726174696f6e2077696c6c206265206368617267656420746f207468652063616c6c65722e0061012b206070726f706f73616c5f7765696768745f626f756e64603a20546865206d6178696d756d20616d6f756e74206f662077656967687420636f6e73756d656420627920657865637574696e672074686520636c6f7365642470726f706f73616c2e61012b20606c656e6774685f626f756e64603a2054686520757070657220626f756e6420666f7220746865206c656e677468206f66207468652070726f706f73616c20696e2073746f726167652e20436865636b65642076696135016073746f726167653a3a726561646020736f206974206973206073697a655f6f663a3a3c7533323e2829203d3d203460206c6172676572207468616e207468652070757265206c656e6774682e002823203c7765696768743e24232320576569676874742d20604f2842202b204d202b205031202b20503229602077686572653ae020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429dc20202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429c820202d20605031602069732074686520636f6d706c6578697479206f66206070726f706f73616c6020707265696d6167652ea420202d20605032602069732070726f706f73616c2d636f756e742028636f64652d626f756e64656429142d2044423a0d01202d20322073746f726167652072656164732028604d656d62657273603a20636f64656320604f284d29602c20605072696d65603a20636f64656320604f28312960295901202d2033206d75746174696f6e73202860566f74696e67603a20636f64656320604f284d29602c206050726f706f73616c4f66603a20636f64656320604f284229602c206050726f706f73616c73603a20636f6465632c202020604f285032296029dc202d20616e79206d75746174696f6e7320646f6e65207768696c6520657865637574696e67206070726f706f73616c6020286050316029402d20757020746f2033206576656e74732c23203c2f7765696768743e4c646973617070726f76655f70726f706f73616c04013470726f706f73616c5f6861736824011c543a3a486173680005385901446973617070726f766520612070726f706f73616c2c20636c6f73652c20616e642072656d6f76652069742066726f6d207468652073797374656d2c207265676172646c657373206f66206974732063757272656e741873746174652e00884d7573742062652063616c6c65642062792074686520526f6f74206f726967696e2e002c506172616d65746572733a1d012a206070726f706f73616c5f68617368603a205468652068617368206f66207468652070726f706f73616c20746861742073686f756c6420626520646973617070726f7665642e002823203c7765696768743edc436f6d706c65786974793a204f285029207768657265205020697320746865206e756d626572206f66206d61782070726f706f73616c73284442205765696768743a482a2052656164733a2050726f706f73616c739c2a205772697465733a20566f74696e672c2050726f706f73616c732c2050726f706f73616c4f662c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ef10204184f7074696f6e04045401000108104e6f6e6500000010536f6d650400000000010000f5020c4470616c6c65745f636f6c6c6563746976651870616c6c65741043616c6c0804540004490001182c7365745f6d656d626572730c012c6e65775f6d656d62657273dc01445665633c543a3a4163636f756e7449643e0001147072696d65f10201504f7074696f6e3c543a3a4163636f756e7449643e0001246f6c645f636f756e7410012c4d656d626572436f756e74000064805365742074686520636f6c6c6563746976652773206d656d626572736869702e0045012d20606e65775f6d656d62657273603a20546865206e6577206d656d626572206c6973742e204265206e69636520746f2074686520636861696e20616e642070726f7669646520697420736f727465642ee02d20607072696d65603a20546865207072696d65206d656d6265722077686f736520766f74652073657473207468652064656661756c742e59012d20606f6c645f636f756e74603a2054686520757070657220626f756e6420666f72207468652070726576696f7573206e756d626572206f66206d656d6265727320696e2073746f726167652e205573656420666f7250202077656967687420657374696d6174696f6e2e0054526571756972657320726f6f74206f726967696e2e0051014e4f54453a20446f6573206e6f7420656e666f7263652074686520657870656374656420604d61784d656d6265727360206c696d6974206f6e2074686520616d6f756e74206f66206d656d626572732c2062757421012020202020207468652077656967687420657374696d6174696f6e732072656c79206f6e20697420746f20657374696d61746520646973706174636861626c65207765696768742e002823203c7765696768743e24232320576569676874502d20604f284d50202b204e29602077686572653ae020202d20604d60206f6c642d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429e020202d20604e60206e65772d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e646564299820202d206050602070726f706f73616c732d636f756e742028636f64652d626f756e64656429142d2044423a510120202d20312073746f72616765206d75746174696f6e2028636f64656320604f284d296020726561642c20604f284e29602077726974652920666f722072656164696e6720616e642077726974696e67207468652c202020206d656d62657273ec20202d20312073746f7261676520726561642028636f64656320604f285029602920666f722072656164696e67207468652070726f706f73616c73450120202d206050602073746f72616765206d75746174696f6e732028636f64656320604f284d29602920666f72207570646174696e672074686520766f74657320666f7220656163682070726f706f73616c5d0120202d20312073746f726167652077726974652028636f64656320604f283129602920666f722064656c6574696e6720746865206f6c6420607072696d656020616e642073657474696e6720746865206e6577206f6e652c23203c2f7765696768743e1c6578656375746508012070726f706f73616c0902017c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e0001306c656e6774685f626f756e64ad01010c75333200012cf0446973706174636820612070726f706f73616c2066726f6d2061206d656d626572207573696e672074686520604d656d62657260206f726967696e2e00a84f726967696e206d7573742062652061206d656d626572206f662074686520636f6c6c6563746976652e002823203c7765696768743e2423232057656967687455012d20604f284d202b2050296020776865726520604d60206d656d626572732d636f756e742028636f64652d626f756e6465642920616e642060506020636f6d706c6578697479206f66206469737061746368696e673020206070726f706f73616c60d42d2044423a203120726561642028636f64656320604f284d296029202b20444220616363657373206f66206070726f706f73616c60242d2031206576656e742c23203c2f7765696768743e1c70726f706f73650c01247468726573686f6c64ad01012c4d656d626572436f756e7400012070726f706f73616c0902017c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e0001306c656e6774685f626f756e64ad01010c75333200026cf84164642061206e65772070726f706f73616c20746f2065697468657220626520766f746564206f6e206f72206578656375746564206469726563746c792e00845265717569726573207468652073656e64657220746f206265206d656d6265722e004101607468726573686f6c64602064657465726d696e65732077686574686572206070726f706f73616c60206973206578656375746564206469726563746c792028607468726573686f6c64203c20326029546f722070757420757020666f7220766f74696e672e002823203c7765696768743e24232320576569676874ac2d20604f2842202b204d202b2050312960206f7220604f2842202b204d202b20503229602077686572653ae020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429dc20202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429c420202d206272616e6368696e6720697320696e666c75656e63656420627920607468726573686f6c64602077686572653af4202020202d20605031602069732070726f706f73616c20657865637574696f6e20636f6d706c65786974792028607468726573686f6c64203c20326029fc202020202d20605032602069732070726f706f73616c732d636f756e742028636f64652d626f756e646564292028607468726573686f6c64203e3d20326029142d2044423ab420202d20312073746f726167652072656164206069735f6d656d626572602028636f64656320604f284d296029f020202d20312073746f726167652072656164206050726f706f73616c4f663a3a636f6e7461696e735f6b6579602028636f64656320604f2831296029a820202d20444220616363657373657320696e666c75656e63656420627920607468726573686f6c64603a0901202020202d204549544845522073746f7261676520616363657373657320646f6e65206279206070726f706f73616c602028607468726573686f6c64203c20326029b8202020202d204f522070726f706f73616c20696e73657274696f6e2028607468726573686f6c64203c3d20326029d82020202020202d20312073746f72616765206d75746174696f6e206050726f706f73616c73602028636f64656320604f285032296029e42020202020202d20312073746f72616765206d75746174696f6e206050726f706f73616c436f756e74602028636f64656320604f2831296029cc2020202020202d20312073746f72616765207772697465206050726f706f73616c4f66602028636f64656320604f2842296029bc2020202020202d20312073746f726167652077726974652060566f74696e67602028636f64656320604f284d2960292c20202d2031206576656e742c23203c2f7765696768743e10766f74650c012070726f706f73616c24011c543a3a48617368000114696e646578ad01013450726f706f73616c496e64657800011c617070726f7665e80110626f6f6c00033cf041646420616e20617965206f72206e617920766f746520666f72207468652073656e64657220746f2074686520676976656e2070726f706f73616c2e008c5265717569726573207468652073656e64657220746f2062652061206d656d6265722e0049015472616e73616374696f6e20666565732077696c6c2062652077616976656420696620746865206d656d62657220697320766f74696e67206f6e20616e7920706172746963756c61722070726f706f73616c5101666f72207468652066697273742074696d6520616e64207468652063616c6c206973207375636365737366756c2e2053756273657175656e7420766f7465206368616e6765732077696c6c206368617267652061106665652e2823203c7765696768743e2423232057656967687409012d20604f284d296020776865726520604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429142d2044423aac20202d20312073746f72616765207265616420604d656d62657273602028636f64656320604f284d296029b820202d20312073746f72616765206d75746174696f6e2060566f74696e67602028636f64656320604f284d296029242d2031206576656e742c23203c2f7765696768743e14636c6f736510013470726f706f73616c5f6861736824011c543a3a48617368000114696e646578ad01013450726f706f73616c496e64657800015470726f706f73616c5f7765696768745f626f756e64410201185765696768740001306c656e6774685f626f756e64ad01010c7533320004804d01436c6f7365206120766f746520746861742069732065697468657220617070726f7665642c20646973617070726f766564206f722077686f736520766f74696e6720706572696f642068617320656e6465642e0055014d61792062652063616c6c656420627920616e79207369676e6564206163636f756e7420696e206f7264657220746f2066696e69736820766f74696e6720616e6420636c6f7365207468652070726f706f73616c2e00490149662063616c6c6564206265666f72652074686520656e64206f662074686520766f74696e6720706572696f642069742077696c6c206f6e6c7920636c6f73652074686520766f7465206966206974206973bc68617320656e6f75676820766f74657320746f20626520617070726f766564206f7220646973617070726f7665642e00490149662063616c6c65642061667465722074686520656e64206f662074686520766f74696e6720706572696f642061627374656e74696f6e732061726520636f756e7465642061732072656a656374696f6e732501756e6c6573732074686572652069732061207072696d65206d656d6265722073657420616e6420746865207072696d65206d656d626572206361737420616e20617070726f76616c2e00610149662074686520636c6f7365206f7065726174696f6e20636f6d706c65746573207375636365737366756c6c79207769746820646973617070726f76616c2c20746865207472616e73616374696f6e206665652077696c6c5d016265207761697665642e204f746865727769736520657865637574696f6e206f662074686520617070726f766564206f7065726174696f6e2077696c6c206265206368617267656420746f207468652063616c6c65722e0061012b206070726f706f73616c5f7765696768745f626f756e64603a20546865206d6178696d756d20616d6f756e74206f662077656967687420636f6e73756d656420627920657865637574696e672074686520636c6f7365642470726f706f73616c2e61012b20606c656e6774685f626f756e64603a2054686520757070657220626f756e6420666f7220746865206c656e677468206f66207468652070726f706f73616c20696e2073746f726167652e20436865636b65642076696135016073746f726167653a3a726561646020736f206974206973206073697a655f6f663a3a3c7533323e2829203d3d203460206c6172676572207468616e207468652070757265206c656e6774682e002823203c7765696768743e24232320576569676874742d20604f2842202b204d202b205031202b20503229602077686572653ae020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429dc20202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429c820202d20605031602069732074686520636f6d706c6578697479206f66206070726f706f73616c6020707265696d6167652ea420202d20605032602069732070726f706f73616c2d636f756e742028636f64652d626f756e64656429142d2044423a0d01202d20322073746f726167652072656164732028604d656d62657273603a20636f64656320604f284d29602c20605072696d65603a20636f64656320604f28312960295901202d2033206d75746174696f6e73202860566f74696e67603a20636f64656320604f284d29602c206050726f706f73616c4f66603a20636f64656320604f284229602c206050726f706f73616c73603a20636f6465632c202020604f285032296029dc202d20616e79206d75746174696f6e7320646f6e65207768696c6520657865637574696e67206070726f706f73616c6020286050316029402d20757020746f2033206576656e74732c23203c2f7765696768743e4c646973617070726f76655f70726f706f73616c04013470726f706f73616c5f6861736824011c543a3a486173680005385901446973617070726f766520612070726f706f73616c2c20636c6f73652c20616e642072656d6f76652069742066726f6d207468652073797374656d2c207265676172646c657373206f66206974732063757272656e741873746174652e00884d7573742062652063616c6c65642062792074686520526f6f74206f726967696e2e002c506172616d65746572733a1d012a206070726f706f73616c5f68617368603a205468652068617368206f66207468652070726f706f73616c20746861742073686f756c6420626520646973617070726f7665642e002823203c7765696768743edc436f6d706c65786974793a204f285029207768657265205020697320746865206e756d626572206f66206d61782070726f706f73616c73284442205765696768743a482a2052656164733a2050726f706f73616c739c2a205772697465733a20566f74696e672c2050726f706f73616c732c2050726f706f73616c4f662c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ef9020c6470616c6c65745f656c656374696f6e735f70687261676d656e1870616c6c65741043616c6c04045400011810766f7465080114766f746573dc01445665633c543a3a4163636f756e7449643e00011476616c7565cc013042616c616e63654f663c543e00005c5901566f746520666f72206120736574206f662063616e6469646174657320666f7220746865207570636f6d696e6720726f756e64206f6620656c656374696f6e2e20546869732063616e2062652063616c6c656420746fe07365742074686520696e697469616c20766f7465732c206f722075706461746520616c7265616479206578697374696e6720766f7465732e005d0155706f6e20696e697469616c20766f74696e672c206076616c75656020756e697473206f66206077686f6027732062616c616e6365206973206c6f636b656420616e642061206465706f73697420616d6f756e742069734d0172657365727665642e20546865206465706f736974206973206261736564206f6e20746865206e756d626572206f6620766f74657320616e642063616e2062652075706461746564206f7665722074696d652e004c5468652060766f746573602073686f756c643a4420202d206e6f7420626520656d7074792e550120202d206265206c657373207468616e20746865206e756d626572206f6620706f737369626c652063616e646964617465732e204e6f7465207468617420616c6c2063757272656e74206d656d6265727320616e6411012020202072756e6e6572732d75702061726520616c736f206175746f6d61746963616c6c792063616e6469646174657320666f7220746865206e65787420726f756e642e004d014966206076616c756560206973206d6f7265207468616e206077686f60277320746f74616c2062616c616e63652c207468656e20746865206d6178696d756d206f66207468652074776f20697320757365642e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e65642e002c232323205761726e696e6700550149742069732074686520726573706f6e736962696c697479206f66207468652063616c6c657220746f202a2a4e4f542a2a20706c61636520616c6c206f662074686569722062616c616e636520696e746f20746865a86c6f636b20616e64206b65657020736f6d6520666f722066757274686572206f7065726174696f6e732e002823203c7765696768743e5101576520617373756d6520746865206d6178696d756d2077656967687420616d6f6e6720616c6c20332063617365733a20766f74655f657175616c2c20766f74655f6d6f726520616e6420766f74655f6c6573732e2c23203c2f7765696768743e3072656d6f76655f766f7465720001146c52656d6f766520606f726967696e60206173206120766f7465722e00b8546869732072656d6f76657320746865206c6f636b20616e642072657475726e7320746865206465706f7369742e00fc546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e656420616e64206265206120766f7465722e407375626d69745f63616e64696461637904013c63616e6469646174655f636f756e74ad01010c75333200023c11015375626d6974206f6e6573656c6620666f722063616e6469646163792e204120666978656420616d6f756e74206f66206465706f736974206973207265636f726465642e005d01416c6c2063616e64696461746573206172652077697065642061742074686520656e64206f6620746865207465726d2e205468657920656974686572206265636f6d652061206d656d6265722f72756e6e65722d75702ccc6f72206c65617665207468652073797374656d207768696c65207468656972206465706f73697420697320736c61736865642e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e65642e002c232323205761726e696e67005d014576656e20696620612063616e64696461746520656e6473207570206265696e672061206d656d6265722c2074686579206d7573742063616c6c205b6043616c6c3a3a72656e6f756e63655f63616e646964616379605d5901746f20676574207468656972206465706f736974206261636b2e204c6f73696e67207468652073706f7420696e20616e20656c656374696f6e2077696c6c20616c77617973206c65616420746f206120736c6173682e002823203c7765696768743e0901546865206e756d626572206f662063757272656e742063616e64696461746573206d7573742062652070726f7669646564206173207769746e65737320646174612e2c23203c2f7765696768743e4872656e6f756e63655f63616e64696461637904012872656e6f756e63696e67fd02012852656e6f756e63696e670003484d0152656e6f756e6365206f6e65277320696e74656e74696f6e20746f20626520612063616e64696461746520666f7220746865206e65787420656c656374696f6e20726f756e642e203320706f74656e7469616c3c6f7574636f6d65732065786973743a0049012d20606f726967696e6020697320612063616e64696461746520616e64206e6f7420656c656374656420696e20616e79207365742e20496e207468697320636173652c20746865206465706f736974206973f02020756e72657365727665642c2072657475726e656420616e64206f726967696e2069732072656d6f76656420617320612063616e6469646174652e61012d20606f726967696e6020697320612063757272656e742072756e6e65722d75702e20496e207468697320636173652c20746865206465706f73697420697320756e72657365727665642c2072657475726e656420616e648c20206f726967696e2069732072656d6f76656420617320612072756e6e65722d75702e55012d20606f726967696e6020697320612063757272656e74206d656d6265722e20496e207468697320636173652c20746865206465706f73697420697320756e726573657276656420616e64206f726967696e2069735501202072656d6f7665642061732061206d656d6265722c20636f6e73657175656e746c79206e6f74206265696e6720612063616e64696461746520666f7220746865206e65787420726f756e6420616e796d6f72652e6101202053696d696c617220746f205b6072656d6f76655f6d656d626572605d2853656c663a3a72656d6f76655f6d656d626572292c206966207265706c6163656d656e742072756e6e657273206578697374732c20746865795901202061726520696d6d6564696174656c7920757365642e20496620746865207072696d652069732072656e6f756e63696e672c207468656e206e6f207072696d652077696c6c20657869737420756e74696c207468653420206e65787420726f756e642e004501546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e65642c20616e642068617665206f6e65206f66207468652061626f766520726f6c65732e002823203c7765696768743ee05468652074797065206f662072656e6f756e63696e67206d7573742062652070726f7669646564206173207769746e65737320646174612e2c23203c2f7765696768743e3472656d6f76655f6d656d62657208010c77686f4d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500013c6861735f7265706c6163656d656e74e80110626f6f6c000438590152656d6f7665206120706172746963756c6172206d656d6265722066726f6d20746865207365742e20546869732069732065666665637469766520696d6d6564696174656c7920616e642074686520626f6e64206f667c746865206f7574676f696e67206d656d62657220697320736c61736865642e005501496620612072756e6e65722d757020697320617661696c61626c652c207468656e2074686520626573742072756e6e65722d75702077696c6c2062652072656d6f76656420616e64207265706c6163657320746865fc6f7574676f696e67206d656d6265722e204f74686572776973652c2061206e65772070687261676d656e20656c656374696f6e20697320737461727465642e00b8546865206469737061746368206f726967696e206f6620746869732063616c6c206d75737420626520726f6f742e0041014e6f74652074686174207468697320646f6573206e6f7420616666656374207468652064657369676e6174656420626c6f636b206e756d626572206f6620746865206e65787420656c656374696f6e2e002823203c7765696768743e5101496620776520686176652061207265706c6163656d656e742c20776520757365206120736d616c6c207765696768742e20456c73652c2073696e63652074686973206973206120726f6f742063616c6c20616e64d077696c6c20676f20696e746f2070687261676d656e2c20776520617373756d652066756c6c20626c6f636b20666f72206e6f772e2c23203c2f7765696768743e50636c65616e5f646566756e63745f766f746572730801286e756d5f766f7465727310010c75333200012c6e756d5f646566756e637410010c7533320005284501436c65616e20616c6c20766f746572732077686f2061726520646566756e63742028692e652e207468657920646f206e6f7420736572766520616e7920707572706f736520617420616c6c292e20546865ac6465706f736974206f66207468652072656d6f76656420766f74657273206172652072657475726e65642e0001015468697320697320616e20726f6f742066756e6374696f6e20746f2062652075736564206f6e6c7920666f7220636c65616e696e67207468652073746174652e00b8546865206469737061746368206f726967696e206f6620746869732063616c6c206d75737420626520726f6f742e002823203c7765696768743e5d0154686520746f74616c206e756d626572206f6620766f7465727320616e642074686f736520746861742061726520646566756e6374206d7573742062652070726f7669646564206173207769746e65737320646174612e2c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632efd02086470616c6c65745f656c656374696f6e735f70687261676d656e2852656e6f756e63696e6700010c184d656d6265720000002052756e6e657255700001002443616e6469646174650400ad01010c7533320002000001030c4470616c6c65745f6d656d626572736869701870616c6c65741043616c6c08045400044900011c286164645f6d656d62657204010c77686f000130543a3a4163636f756e74496400000c784164642061206d656d626572206077686f6020746f20746865207365742e009c4d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a4164644f726967696e602e3472656d6f76655f6d656d62657204010c77686f000130543a3a4163636f756e74496400010c8c52656d6f76652061206d656d626572206077686f602066726f6d20746865207365742e00a84d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a52656d6f76654f726967696e602e2c737761705f6d656d62657208011872656d6f7665000130543a3a4163636f756e74496400010c616464000130543a3a4163636f756e744964000214bc53776170206f7574206f6e65206d656d626572206072656d6f76656020666f7220616e6f746865722060616464602e00a04d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a537761704f726967696e602e000d015072696d65206d656d62657273686970206973202a6e6f742a207061737365642066726f6d206072656d6f76656020746f2060616464602c20696620657874616e742e3472657365745f6d656d6265727304011c6d656d62657273dc01445665633c543a3a4163636f756e7449643e00031055014368616e676520746865206d656d6265727368697020746f2061206e6577207365742c20646973726567617264696e6720746865206578697374696e67206d656d626572736869702e204265206e69636520616e64687061737320606d656d6265727360207072652d736f727465642e00a44d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a52657365744f726967696e602e286368616e67655f6b657904010c6e6577000130543a3a4163636f756e744964000414d453776170206f7574207468652073656e64696e67206d656d62657220666f7220736f6d65206f74686572206b657920606e6577602e00f04d6179206f6e6c792062652063616c6c65642066726f6d20605369676e656460206f726967696e206f6620612063757272656e74206d656d6265722e001d015072696d65206d656d62657273686970206973207061737365642066726f6d20746865206f726967696e206163636f756e7420746f20606e6577602c20696620657874616e742e247365745f7072696d6504010c77686f000130543a3a4163636f756e74496400050cbc53657420746865207072696d65206d656d6265722e204d75737420626520612063757272656e74206d656d6265722e00a44d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a5072696d654f726967696e602e2c636c6561725f7072696d6500060c9452656d6f766520746865207072696d65206d656d626572206966206974206578697374732e00a44d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a5072696d654f726967696e602e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e05030c3c70616c6c65745f74726561737572791870616c6c65741043616c6c08045400044900010c3470726f706f73655f7370656e6408011476616c7565cc013c42616c616e63654f663c542c20493e00012c62656e65666963696172794d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365000024290150757420666f727761726420612073756767657374696f6e20666f72207370656e64696e672e2041206465706f7369742070726f706f7274696f6e616c20746f207468652076616c75653101697320726573657276656420616e6420736c6173686564206966207468652070726f706f73616c2069732072656a65637465642e2049742069732072657475726e6564206f6e6365207468655070726f706f73616c20697320617761726465642e002823203c7765696768743e482d20436f6d706c65786974793a204f283129b02d20446252656164733a206050726f706f73616c436f756e74602c20606f726967696e206163636f756e7460e82d2044625772697465733a206050726f706f73616c436f756e74602c206050726f706f73616c73602c20606f726967696e206163636f756e74602c23203c2f7765696768743e3c72656a6563745f70726f706f73616c04012c70726f706f73616c5f6964ad01013450726f706f73616c496e646578000124f852656a65637420612070726f706f736564207370656e642e20546865206f726967696e616c206465706f7369742077696c6c20626520736c61736865642e00a84d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a52656a6563744f726967696e602e002823203c7765696768743e482d20436f6d706c65786974793a204f283129cc2d20446252656164733a206050726f706f73616c73602c206072656a65637465642070726f706f736572206163636f756e7460d02d2044625772697465733a206050726f706f73616c73602c206072656a65637465642070726f706f736572206163636f756e74602c23203c2f7765696768743e40617070726f76655f70726f706f73616c04012c70726f706f73616c5f6964ad01013450726f706f73616c496e6465780002285901417070726f766520612070726f706f73616c2e2041742061206c617465722074696d652c207468652070726f706f73616c2077696c6c20626520616c6c6f636174656420746f207468652062656e6566696369617279a8616e6420746865206f726967696e616c206465706f7369742077696c6c2062652072657475726e65642e00ac4d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a417070726f76654f726967696e602e002823203c7765696768743e4c2d20436f6d706c65786974793a204f2831292e8c2d20446252656164733a206050726f706f73616c73602c2060417070726f76616c7360582d20446257726974653a2060417070726f76616c73602c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e0903105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e18636c61696d731870616c6c65741043616c6c04045400011414636c61696d08011064657374000130543a3a4163636f756e744964000148657468657265756d5f7369676e61747572650d03013845636473615369676e6174757265000060884d616b65206120636c61696d20746f20636f6c6c65637420796f757220444f54732e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f4e6f6e655f2e0050556e7369676e65642056616c69646174696f6e3a0501412063616c6c20746f20636c61696d206973206465656d65642076616c696420696620746865207369676e61747572652070726f7669646564206d6174636865737c746865206578706563746564207369676e6564206d657373616765206f663a00683e20457468657265756d205369676e6564204d6573736167653a943e2028636f6e666967757265642070726566697820737472696e672928616464726573732900a4616e6420606164647265737360206d6174636865732074686520606465737460206163636f756e742e002c506172616d65746572733ad82d206064657374603a205468652064657374696e6174696f6e206163636f756e7420746f207061796f75742074686520636c61696d2e0d012d2060657468657265756d5f7369676e6174757265603a20546865207369676e6174757265206f6620616e20657468657265756d207369676e6564206d6573736167659c2020206d61746368696e672074686520666f726d6174206465736372696265642061626f76652e00203c7765696768743efc54686520776569676874206f6620746869732063616c6c20697320696e76617269616e74206f7665722074686520696e70757420706172616d65746572732ee057656967687420696e636c75646573206c6f67696320746f2076616c696461746520756e7369676e65642060636c61696d602063616c6c2e0058546f74616c20436f6d706c65786974793a204f283129243c2f7765696768743e286d696e745f636c61696d10010c77686f0901013c457468657265756d4164647265737300011476616c756518013042616c616e63654f663c543e00014076657374696e675f7363686564756c65150301d04f7074696f6e3c2842616c616e63654f663c543e2c2042616c616e63654f663c543e2c20543a3a426c6f636b4e756d626572293e00012473746174656d656e741d0301544f7074696f6e3c53746174656d656e744b696e643e00013c844d696e742061206e657720636c61696d20746f20636f6c6c65637420444f54732e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e002c506172616d65746572733af02d206077686f603a2054686520457468657265756d206164647265737320616c6c6f77656420746f20636f6c6c656374207468697320636c61696d2ecc2d206076616c7565603a20546865206e756d626572206f6620444f547320746861742077696c6c20626520636c61696d65642e09012d206076657374696e675f7363686564756c65603a20416e206f7074696f6e616c2076657374696e67207363686564756c6520666f7220746865736520444f54732e00203c7765696768743efc54686520776569676874206f6620746869732063616c6c20697320696e76617269616e74206f7665722074686520696e70757420706172616d65746572732e1d01576520617373756d6520776f7273742063617365207468617420626f74682076657374696e6720616e642073746174656d656e74206973206265696e6720696e7365727465642e0058546f74616c20436f6d706c65786974793a204f283129243c2f7765696768743e30636c61696d5f6174746573740c011064657374000130543a3a4163636f756e744964000148657468657265756d5f7369676e61747572650d03013845636473615369676e617475726500012473746174656d656e7428011c5665633c75383e000268e44d616b65206120636c61696d20746f20636f6c6c65637420796f757220444f5473206279207369676e696e6720612073746174656d656e742e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f4e6f6e655f2e0050556e7369676e65642056616c69646174696f6e3a2901412063616c6c20746f2060636c61696d5f61747465737460206973206465656d65642076616c696420696620746865207369676e61747572652070726f7669646564206d6174636865737c746865206578706563746564207369676e6564206d657373616765206f663a00683e20457468657265756d205369676e6564204d6573736167653ac03e2028636f6e666967757265642070726566697820737472696e67292861646472657373292873746174656d656e7429004901616e6420606164647265737360206d6174636865732074686520606465737460206163636f756e743b20746865206073746174656d656e7460206d757374206d617463682074686174207768696368206973c06578706563746564206163636f7264696e6720746f20796f757220707572636861736520617272616e67656d656e742e002c506172616d65746572733ad82d206064657374603a205468652064657374696e6174696f6e206163636f756e7420746f207061796f75742074686520636c61696d2e0d012d2060657468657265756d5f7369676e6174757265603a20546865207369676e6174757265206f6620616e20657468657265756d207369676e6564206d6573736167659c2020206d61746368696e672074686520666f726d6174206465736372696265642061626f76652e65012d206073746174656d656e74603a20546865206964656e74697479206f66207468652073746174656d656e74207768696368206973206265696e6720617474657374656420746f20696e20746865207369676e61747572652e00203c7765696768743efc54686520776569676874206f6620746869732063616c6c20697320696e76617269616e74206f7665722074686520696e70757420706172616d65746572732efc57656967687420696e636c75646573206c6f67696320746f2076616c696461746520756e7369676e65642060636c61696d5f617474657374602063616c6c2e0058546f74616c20436f6d706c65786974793a204f283129243c2f7765696768743e1861747465737404012473746174656d656e7428011c5665633c75383e000344f441747465737420746f20612073746174656d656e742c206e656564656420746f2066696e616c697a652074686520636c61696d732070726f636573732e0065015741524e494e473a20496e73656375726520756e6c65737320796f757220636861696e20696e636c75646573206050726576616c69646174654174746573747360206173206120605369676e6564457874656e73696f6e602e0050556e7369676e65642056616c69646174696f6e3a2901412063616c6c20746f20617474657374206973206465656d65642076616c6964206966207468652073656e6465722068617320612060507265636c61696d602072656769737465726564f4616e642070726f76696465732061206073746174656d656e746020776869636820697320657870656374656420666f7220746865206163636f756e742e002c506172616d65746572733a65012d206073746174656d656e74603a20546865206964656e74697479206f66207468652073746174656d656e74207768696368206973206265696e6720617474657374656420746f20696e20746865207369676e61747572652e00203c7765696768743efc54686520776569676874206f6620746869732063616c6c20697320696e76617269616e74206f7665722074686520696e70757420706172616d65746572732ef057656967687420696e636c75646573206c6f67696320746f20646f207072652d76616c69646174696f6e206f6e2060617474657374602063616c6c2e0058546f74616c20436f6d706c65786974793a204f283129243c2f7765696768743e286d6f76655f636c61696d0c010c6f6c640901013c457468657265756d4164647265737300010c6e65770901013c457468657265756d416464726573730001386d617962655f707265636c61696df10201504f7074696f6e3c543a3a4163636f756e7449643e000400042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e0d030c5c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e18636c61696d733845636473615369676e617475726500000400110301205b75383b2036355d00001103000003410000000800150304184f7074696f6e0404540119030108104e6f6e6500000010536f6d6504001903000001000019030000040c181810001d0304184f7074696f6e0404540121030108104e6f6e6500000010536f6d6504002103000001000021030c5c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e18636c61696d733453746174656d656e744b696e640001081c526567756c617200000010536166740001000025030c3870616c6c65745f76657374696e671870616c6c65741043616c6c0404540001141076657374000034b8556e6c6f636b20616e79207665737465642066756e6473206f66207468652073656e646572206163636f756e742e005d01546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652066756e6473207374696c6c646c6f636b656420756e64657220746869732070616c6c65742e00d0456d69747320656974686572206056657374696e67436f6d706c6574656460206f72206056657374696e6755706461746564602e002823203c7765696768743e242d20604f283129602e742d2044625765696768743a20322052656164732c203220577269746573f8202020202d2052656164733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c205b53656e646572204163636f756e745dfc202020202d205772697465733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c205b53656e646572204163636f756e745d2c23203c2f7765696768743e28766573745f6f746865720401187461726765744d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500013cb8556e6c6f636b20616e79207665737465642066756e6473206f662061206074617267657460206163636f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0051012d2060746172676574603a20546865206163636f756e742077686f7365207665737465642066756e64732073686f756c6420626520756e6c6f636b65642e204d75737420686176652066756e6473207374696c6c646c6f636b656420756e64657220746869732070616c6c65742e00d0456d69747320656974686572206056657374696e67436f6d706c6574656460206f72206056657374696e6755706461746564602e002823203c7765696768743e242d20604f283129602e742d2044625765696768743a20332052656164732c203320577269746573f0202020202d2052656164733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e74f4202020202d205772697465733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e742c23203c2f7765696768743e3c7665737465645f7472616e736665720801187461726765744d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001207363686564756c65290301a456657374696e67496e666f3c42616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265723e00024464437265617465206120766573746564207472616e736665722e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e00cc2d2060746172676574603a20546865206163636f756e7420726563656976696e6720746865207665737465642066756e64732ef02d20607363686564756c65603a205468652076657374696e67207363686564756c6520617474616368656420746f20746865207472616e736665722e005c456d697473206056657374696e6743726561746564602e00fc4e4f54453a20546869732077696c6c20756e6c6f636b20616c6c207363686564756c6573207468726f756768207468652063757272656e7420626c6f636b2e002823203c7765696768743e242d20604f283129602e742d2044625765696768743a20332052656164732c2033205772697465733901202020202d2052656164733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e742c205b53656e646572204163636f756e745d3d01202020202d205772697465733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e742c205b53656e646572204163636f756e745d2c23203c2f7765696768743e54666f7263655f7665737465645f7472616e736665720c0118736f757263654d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001187461726765744d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001207363686564756c65290301a456657374696e67496e666f3c42616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265723e00034860466f726365206120766573746564207472616e736665722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e00e82d2060736f75726365603a20546865206163636f756e742077686f73652066756e64732073686f756c64206265207472616e736665727265642e11012d2060746172676574603a20546865206163636f756e7420746861742073686f756c64206265207472616e7366657272656420746865207665737465642066756e64732ef02d20607363686564756c65603a205468652076657374696e67207363686564756c6520617474616368656420746f20746865207472616e736665722e005c456d697473206056657374696e6743726561746564602e00fc4e4f54453a20546869732077696c6c20756e6c6f636b20616c6c207363686564756c6573207468726f756768207468652063757272656e7420626c6f636b2e002823203c7765696768743e242d20604f283129602e742d2044625765696768743a20342052656164732c2034205772697465733101202020202d2052656164733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e742c20536f75726365204163636f756e743501202020202d205772697465733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e742c20536f75726365204163636f756e742c23203c2f7765696768743e3c6d657267655f7363686564756c657308013c7363686564756c65315f696e64657810010c75333200013c7363686564756c65325f696e64657810010c7533320004545d014d657267652074776f2076657374696e67207363686564756c657320746f6765746865722c206372656174696e672061206e65772076657374696e67207363686564756c65207468617420756e6c6f636b73206f7665725501746865206869676865737420706f737369626c6520737461727420616e6420656e6420626c6f636b732e20496620626f7468207363686564756c6573206861766520616c7265616479207374617274656420746865590163757272656e7420626c6f636b2077696c6c206265207573656420617320746865207363686564756c652073746172743b207769746820746865206361766561742074686174206966206f6e65207363686564756c655d0169732066696e6973686564206279207468652063757272656e7420626c6f636b2c20746865206f746865722077696c6c206265207472656174656420617320746865206e6577206d6572676564207363686564756c652c2c756e6d6f6469666965642e00f84e4f54453a20496620607363686564756c65315f696e646578203d3d207363686564756c65325f696e6465786020746869732069732061206e6f2d6f702e41014e4f54453a20546869732077696c6c20756e6c6f636b20616c6c207363686564756c6573207468726f756768207468652063757272656e7420626c6f636b207072696f7220746f206d657267696e672e61014e4f54453a20496620626f7468207363686564756c6573206861766520656e646564206279207468652063757272656e7420626c6f636b2c206e6f206e6577207363686564756c652077696c6c206265206372656174656464616e6420626f74682077696c6c2062652072656d6f7665642e006c4d6572676564207363686564756c6520617474726962757465733a35012d20607374617274696e675f626c6f636b603a20604d4158287363686564756c65312e7374617274696e675f626c6f636b2c207363686564756c6564322e7374617274696e675f626c6f636b2c48202063757272656e745f626c6f636b29602e21012d2060656e64696e675f626c6f636b603a20604d4158287363686564756c65312e656e64696e675f626c6f636b2c207363686564756c65322e656e64696e675f626c6f636b29602e59012d20606c6f636b6564603a20607363686564756c65312e6c6f636b65645f61742863757272656e745f626c6f636b29202b207363686564756c65322e6c6f636b65645f61742863757272656e745f626c6f636b29602e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e00e82d20607363686564756c65315f696e646578603a20696e646578206f6620746865206669727374207363686564756c6520746f206d657267652eec2d20607363686564756c65325f696e646578603a20696e646578206f6620746865207365636f6e64207363686564756c6520746f206d657267652e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e29030c3870616c6c65745f76657374696e673076657374696e675f696e666f2c56657374696e67496e666f081c42616c616e636501182c426c6f636b4e756d6265720110000c01186c6f636b656418011c42616c616e63650001247065725f626c6f636b18011c42616c616e63650001387374617274696e675f626c6f636b10012c426c6f636b4e756d62657200002d030c3870616c6c65745f7574696c6974791870616c6c65741043616c6c04045400010c14626174636804011463616c6c73310301605665633c3c5420617320436f6e6669673e3a3a43616c6c3e00004c7c53656e642061206261746368206f662064697370617463682063616c6c732e00784d61792062652063616c6c65642066726f6d20616e79206f726967696e2e005d012d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f74390120206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e005d014966206f726967696e20697320726f6f74207468656e2063616c6c2061726520646973706174636820776974686f757420636865636b696e67206f726967696e2066696c7465722e20285468697320696e636c75646573c8627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e002823203c7765696768743e01012d20436f6d706c65786974793a204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e2c23203c2f7765696768743e005501546869732077696c6c2072657475726e20604f6b6020696e20616c6c2063697263756d7374616e6365732e20546f2064657465726d696e65207468652073756363657373206f66207468652062617463682c20616e31016576656e74206973206465706f73697465642e20496620612063616c6c206661696c656420616e64207468652062617463682077617320696e7465727275707465642c207468656e207468655501604261746368496e74657272757074656460206576656e74206973206465706f73697465642c20616c6f6e67207769746820746865206e756d626572206f66207375636365737366756c2063616c6c73206d6164654d01616e6420746865206572726f72206f6620746865206661696c65642063616c6c2e20496620616c6c2077657265207375636365737366756c2c207468656e2074686520604261746368436f6d706c65746564604c6576656e74206973206465706f73697465642e3461735f64657269766174697665080114696e6465782501010c75313600011063616c6c09020160426f783c3c5420617320436f6e6669673e3a3a43616c6c3e000134dc53656e6420612063616c6c207468726f75676820616e20696e64657865642070736575646f6e796d206f66207468652073656e6465722e00550146696c7465722066726f6d206f726967696e206172652070617373656420616c6f6e672e205468652063616c6c2077696c6c2062652064697370617463686564207769746820616e206f726967696e207768696368bc757365207468652073616d652066696c74657220617320746865206f726967696e206f6620746869732063616c6c2e0045014e4f54453a20496620796f75206e65656420746f20656e73757265207468617420616e79206163636f756e742d62617365642066696c746572696e67206973206e6f7420686f6e6f7265642028692e652e61016265636175736520796f7520657870656374206070726f78796020746f2068617665206265656e2075736564207072696f7220696e207468652063616c6c20737461636b20616e6420796f7520646f206e6f742077616e7451017468652063616c6c207265737472696374696f6e7320746f206170706c7920746f20616e79207375622d6163636f756e7473292c207468656e20757365206061735f6d756c74695f7468726573686f6c645f31607c696e20746865204d756c74697369672070616c6c657420696e73746561642e00f44e4f54453a205072696f7220746f2076657273696f6e202a31322c2074686973207761732063616c6c6564206061735f6c696d697465645f737562602e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e2462617463685f616c6c04011463616c6c73310301605665633c3c5420617320436f6e6669673e3a3a43616c6c3e000238ec53656e642061206261746368206f662064697370617463682063616c6c7320616e642061746f6d6963616c6c792065786563757465207468656d2e21015468652077686f6c65207472616e73616374696f6e2077696c6c20726f6c6c6261636b20616e64206661696c20696620616e79206f66207468652063616c6c73206661696c65642e00784d61792062652063616c6c65642066726f6d20616e79206f726967696e2e005d012d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f74390120206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e005d014966206f726967696e20697320726f6f74207468656e2063616c6c2061726520646973706174636820776974686f757420636865636b696e67206f726967696e2066696c7465722e20285468697320696e636c75646573c8627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e002823203c7765696768743e01012d20436f6d706c65786974793a204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e2c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e310300000209020035030c3c70616c6c65745f6964656e746974791870616c6c65741043616c6c04045400013c346164645f72656769737472617204011c6163636f756e74000130543a3a4163636f756e7449640000347841646420612072656769737472617220746f207468652073797374656d2e00fc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652060543a3a5265676973747261724f726967696e602e00a82d20606163636f756e74603a20746865206163636f756e74206f6620746865207265676973747261722e0094456d6974732060526567697374726172416464656460206966207375636365737366756c2e002823203c7765696768743e25012d20604f2852296020776865726520605260207265676973747261722d636f756e742028676f7665726e616e63652d626f756e64656420616e6420636f64652d626f756e646564292e982d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28522960292e302d204f6e65206576656e742e2c23203c2f7765696768743e307365745f6964656e74697479040110696e666f390301a4426f783c4964656e74697479496e666f3c543a3a4d61784164646974696f6e616c4669656c64733e3e00014c290153657420616e206163636f756e742773206964656e7469747920696e666f726d6174696f6e20616e6420726573657276652074686520617070726f707269617465206465706f7369742e005501496620746865206163636f756e7420616c726561647920686173206964656e7469747920696e666f726d6174696f6e2c20746865206465706f7369742069732074616b656e2061732070617274207061796d656e7450666f7220746865206e6577206465706f7369742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e008c2d2060696e666f603a20546865206964656e7469747920696e666f726d6174696f6e2e0088456d69747320604964656e7469747953657460206966207375636365737366756c2e002823203c7765696768743e442d20604f2858202b205827202b205229601d0120202d20776865726520605860206164646974696f6e616c2d6669656c642d636f756e7420286465706f7369742d626f756e64656420616e6420636f64652d626f756e64656429e020202d20776865726520605260206a756467656d656e74732d636f756e7420287265676973747261722d636f756e742d626f756e64656429802d204f6e652062616c616e63652072657365727665206f7065726174696f6e2e21012d204f6e652073746f72616765206d75746174696f6e2028636f6465632d7265616420604f285827202b205229602c20636f6465632d777269746520604f2858202b20522960292e302d204f6e65206576656e742e2c23203c2f7765696768743e207365745f7375627304011073756273c10301645665633c28543a3a4163636f756e7449642c2044617461293e0002548c53657420746865207375622d6163636f756e7473206f66207468652073656e6465722e0055015061796d656e743a20416e79206167677265676174652062616c616e63652072657365727665642062792070726576696f757320607365745f73756273602063616c6c732077696c6c2062652072657475726e65642d01616e6420616e20616d6f756e7420605375624163636f756e744465706f736974602077696c6c20626520726573657276656420666f722065616368206974656d20696e206073756273602e006101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d757374206861766520612072656769737465726564246964656e746974792e00b02d206073756273603a20546865206964656e74697479277320286e657729207375622d6163636f756e74732e002823203c7765696768743e302d20604f2850202b20532960e420202d20776865726520605060206f6c642d737562732d636f756e742028686172642d20616e64206465706f7369742d626f756e646564292ed420202d2077686572652060536020737562732d636f756e742028686172642d20616e64206465706f7369742d626f756e646564292e842d204174206d6f7374206f6e652062616c616e6365206f7065726174696f6e732e142d2044423adc20202d206050202b2053602073746f72616765206d75746174696f6e732028636f64656320636f6d706c657869747920604f2831296029bc20202d204f6e652073746f7261676520726561642028636f64656320636f6d706c657869747920604f28502960292ec020202d204f6e652073746f726167652077726974652028636f64656320636f6d706c657869747920604f28532960292ed020202d204f6e652073746f726167652d6578697374732028604964656e746974794f663a3a636f6e7461696e735f6b657960292e2c23203c2f7765696768743e38636c6561725f6964656e746974790003483901436c65617220616e206163636f756e742773206964656e7469747920696e666f20616e6420616c6c207375622d6163636f756e747320616e642072657475726e20616c6c206465706f736974732e00ec5061796d656e743a20416c6c2072657365727665642062616c616e636573206f6e20746865206163636f756e74206172652072657475726e65642e006101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d757374206861766520612072656769737465726564246964656e746974792e0098456d69747320604964656e74697479436c656172656460206966207375636365737366756c2e002823203c7765696768743e402d20604f2852202b2053202b20582960cc20202d20776865726520605260207265676973747261722d636f756e742028676f7665726e616e63652d626f756e646564292ed420202d2077686572652060536020737562732d636f756e742028686172642d20616e64206465706f7369742d626f756e646564292e210120202d20776865726520605860206164646974696f6e616c2d6669656c642d636f756e7420286465706f7369742d626f756e64656420616e6420636f64652d626f756e646564292e882d204f6e652062616c616e63652d756e72657365727665206f7065726174696f6e2ec82d206032602073746f7261676520726561647320616e64206053202b2032602073746f726167652064656c6574696f6e732e302d204f6e65206576656e742e2c23203c2f7765696768743e44726571756573745f6a756467656d656e740801247265675f696e646578ad010138526567697374726172496e64657800011c6d61785f666565cc013042616c616e63654f663c543e00045c94526571756573742061206a756467656d656e742066726f6d2061207265676973747261722e0055015061796d656e743a204174206d6f737420606d61785f666565602077696c6c20626520726573657276656420666f72207061796d656e7420746f2074686520726567697374726172206966206a756467656d656e7418676976656e2e003501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d757374206861766520615072656769737465726564206964656e746974792e001d012d20607265675f696e646578603a2054686520696e646578206f6620746865207265676973747261722077686f7365206a756467656d656e74206973207265717565737465642e55012d20606d61785f666565603a20546865206d6178696d756d206665652074686174206d617920626520706169642e20546869732073686f756c64206a757374206265206175746f2d706f70756c617465642061733a00306060606e6f636f6d70696c65b853656c663a3a7265676973747261727328292e676574287265675f696e646578292e756e7772617028292e6665650c60606000a4456d69747320604a756467656d656e7452657175657374656460206966207375636365737366756c2e002823203c7765696768743e342d20604f2852202b205829602e802d204f6e652062616c616e63652d72657365727665206f7065726174696f6e2eb82d2053746f726167653a2031207265616420604f285229602c2031206d757461746520604f2858202b205229602e302d204f6e65206576656e742e2c23203c2f7765696768743e3863616e63656c5f726571756573740401247265675f696e646578100138526567697374726172496e6465780005446843616e63656c20612070726576696f757320726571756573742e00f85061796d656e743a20412070726576696f75736c79207265736572766564206465706f7369742069732072657475726e6564206f6e20737563636573732e003501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d757374206861766520615072656769737465726564206964656e746974792e0045012d20607265675f696e646578603a2054686520696e646578206f6620746865207265676973747261722077686f7365206a756467656d656e74206973206e6f206c6f6e676572207265717565737465642e00ac456d69747320604a756467656d656e74556e72657175657374656460206966207375636365737366756c2e002823203c7765696768743e342d20604f2852202b205829602e802d204f6e652062616c616e63652d72657365727665206f7065726174696f6e2e882d204f6e652073746f72616765206d75746174696f6e20604f2852202b205829602e2c2d204f6e65206576656e742c23203c2f7765696768743e1c7365745f666565080114696e646578ad010138526567697374726172496e64657800010c666565cc013042616c616e63654f663c543e0006341901536574207468652066656520726571756972656420666f722061206a756467656d656e7420746f206265207265717565737465642066726f6d2061207265676973747261722e005501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74a06f6620746865207265676973747261722077686f736520696e6465782069732060696e646578602e00f42d2060696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f73652066656520697320746f206265207365742e542d2060666565603a20746865206e6577206665652e002823203c7765696768743e242d20604f285229602e782d204f6e652073746f72616765206d75746174696f6e20604f285229602ee42d2042656e63686d61726b3a20372e333135202b2052202a20302e33323920c2b57320286d696e207371756172657320616e616c79736973292c23203c2f7765696768743e387365745f6163636f756e745f6964080114696e646578ad010138526567697374726172496e64657800010c6e6577000130543a3a4163636f756e744964000734bc4368616e676520746865206163636f756e74206173736f63696174656420776974682061207265676973747261722e005501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74a06f6620746865207265676973747261722077686f736520696e6465782069732060696e646578602e00f42d2060696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f73652066656520697320746f206265207365742e702d20606e6577603a20746865206e6577206163636f756e742049442e002823203c7765696768743e242d20604f285229602e782d204f6e652073746f72616765206d75746174696f6e20604f285229602ee02d2042656e63686d61726b3a20382e383233202b2052202a20302e333220c2b57320286d696e207371756172657320616e616c79736973292c23203c2f7765696768743e287365745f6669656c6473080114696e646578ad010138526567697374726172496e6465780001186669656c6473c90301384964656e746974794669656c6473000834a853657420746865206669656c6420696e666f726d6174696f6e20666f722061207265676973747261722e005501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74a06f6620746865207265676973747261722077686f736520696e6465782069732060696e646578602e00f42d2060696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f73652066656520697320746f206265207365742e0d012d20606669656c6473603a20746865206669656c64732074686174207468652072656769737472617220636f6e6365726e73207468656d73656c76657320776974682e002823203c7765696768743e242d20604f285229602e782d204f6e652073746f72616765206d75746174696f6e20604f285229602ee42d2042656e63686d61726b3a20372e343634202b2052202a20302e33323520c2b57320286d696e207371756172657320616e616c79736973292c23203c2f7765696768743e4470726f766964655f6a756467656d656e740c01247265675f696e646578ad010138526567697374726172496e6465780001187461726765744d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001246a756467656d656e74d103015c4a756467656d656e743c42616c616e63654f663c543e3e00094cb850726f766964652061206a756467656d656e7420666f7220616e206163636f756e742773206964656e746974792e005501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74b06f6620746865207265676973747261722077686f736520696e64657820697320607265675f696e646578602e0021012d20607265675f696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f7365206a756467656d656e74206973206265696e67206d6164652e55012d2060746172676574603a20746865206163636f756e742077686f7365206964656e7469747920746865206a756467656d656e742069732075706f6e2e2054686973206d75737420626520616e206163636f756e747420207769746820612072656769737465726564206964656e746974792e49012d20606a756467656d656e74603a20746865206a756467656d656e74206f662074686520726567697374726172206f6620696e64657820607265675f696e646578602061626f75742060746172676574602e0094456d69747320604a756467656d656e74476976656e60206966207375636365737366756c2e002823203c7765696768743e342d20604f2852202b205829602e842d204f6e652062616c616e63652d7472616e73666572206f7065726174696f6e2e942d20557020746f206f6e65206163636f756e742d6c6f6f6b7570206f7065726174696f6e2eb82d2053746f726167653a2031207265616420604f285229602c2031206d757461746520604f2852202b205829602e302d204f6e65206576656e742e2c23203c2f7765696768743e346b696c6c5f6964656e746974790401187461726765744d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365000a4c410152656d6f766520616e206163636f756e742773206964656e7469747920616e64207375622d6163636f756e7420696e666f726d6174696f6e20616e6420736c61736820746865206465706f736974732e0061015061796d656e743a2052657365727665642062616c616e6365732066726f6d20607365745f737562736020616e6420607365745f6964656e74697479602061726520736c617368656420616e642068616e646c6564206279450160536c617368602e20566572696669636174696f6e2072657175657374206465706f7369747320617265206e6f742072657475726e65643b20746865792073686f756c642062652063616e63656c6c6564806d616e75616c6c79207573696e67206063616e63656c5f72657175657374602e00f8546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206d617463682060543a3a466f7263654f726967696e602e0055012d2060746172676574603a20746865206163636f756e742077686f7365206964656e7469747920746865206a756467656d656e742069732075706f6e2e2054686973206d75737420626520616e206163636f756e747420207769746820612072656769737465726564206964656e746974792e0094456d69747320604964656e746974794b696c6c656460206966207375636365737366756c2e002823203c7765696768743e442d20604f2852202b2053202b205829602e802d204f6e652062616c616e63652d72657365727665206f7065726174696f6e2e702d206053202b2032602073746f72616765206d75746174696f6e732e302d204f6e65206576656e742e2c23203c2f7765696768743e1c6164645f73756208010c7375624d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365000110646174614503011044617461000b1cac4164642074686520676976656e206163636f756e7420746f207468652073656e646572277320737562732e005d015061796d656e743a2042616c616e636520726573657276656420627920612070726576696f757320607365745f73756273602063616c6c20666f72206f6e65207375622077696c6c20626520726570617472696174656438746f207468652073656e6465722e006101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652061207265676973746572656458737562206964656e74697479206f662060737562602e2872656e616d655f73756208010c7375624d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365000110646174614503011044617461000c10cc416c74657220746865206173736f636961746564206e616d65206f662074686520676976656e207375622d6163636f756e742e006101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652061207265676973746572656458737562206964656e74697479206f662060737562602e2872656d6f76655f73756204010c7375624d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365000d1cc052656d6f76652074686520676976656e206163636f756e742066726f6d207468652073656e646572277320737562732e005d015061796d656e743a2042616c616e636520726573657276656420627920612070726576696f757320607365745f73756273602063616c6c20666f72206f6e65207375622077696c6c20626520726570617472696174656438746f207468652073656e6465722e006101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652061207265676973746572656458737562206964656e74697479206f662060737562602e20717569745f737562000e288c52656d6f7665207468652073656e6465722061732061207375622d6163636f756e742e005d015061796d656e743a2042616c616e636520726573657276656420627920612070726576696f757320607365745f73756273602063616c6c20666f72206f6e65207375622077696c6c206265207265706174726961746564b4746f207468652073656e64657220282a6e6f742a20746865206f726967696e616c206465706f7369746f72292e006101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d7573742068617665206120726567697374657265643c73757065722d6964656e746974792e0045014e4f54453a20546869732073686f756c64206e6f74206e6f726d616c6c7920626520757365642c206275742069732070726f766964656420696e207468652063617365207468617420746865206e6f6e2d1101636f6e74726f6c6c6572206f6620616e206163636f756e74206973206d616c6963696f75736c7920726567697374657265642061732061207375622d6163636f756e742e04704964656e746974792070616c6c6574206465636c61726174696f6e2e39030c3c70616c6c65745f6964656e74697479147479706573304964656e74697479496e666f04284669656c644c696d697400002401286164646974696f6e616c3d030190426f756e6465645665633c28446174612c2044617461292c204669656c644c696d69743e00011c646973706c617945030110446174610001146c6567616c450301104461746100010c776562450301104461746100011072696f744503011044617461000114656d61696c450301104461746100013c7067705f66696e6765727072696e74bd0301404f7074696f6e3c5b75383b2032305d3e000114696d616765450301104461746100011c74776974746572450301104461746100003d0310346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e646564566563080454014103045300000400b90301185665633c543e0000410300000408450345030045030c3c70616c6c65745f6964656e746974791474797065731044617461000198104e6f6e6500000010526177300400490300000100105261773104004d0300000200105261773204005103000003001052617733040055030000040010526177340400380000050010526177350400590300000600105261773604005d03000007001052617737040061030000080010526177380400f5010000090010526177390400650300000a001452617731300400690300000b0014526177313104006d0300000c001452617731320400710300000d001452617731330400750300000e001452617731340400790300000f0014526177313504007d03000010001452617731360400980000110014526177313704008103000012001452617731380400850300001300145261773139040089030000140014526177323004000d010000150014526177323104008d030000160014526177323204009103000017001452617732330400950300001800145261773234040099030000190014526177323504009d0300001a001452617732360400a10300001b001452617732370400a50300001c001452617732380400a90300001d001452617732390400ad0300001e001452617733300400b10300001f001452617733310400b50300002000145261773332040004000021002c426c616b6554776f323536040004000022001853686132353604000400002300244b656363616b323536040004000024002c5368615468726565323536040004000025000049030000030000000008004d030000030100000008005103000003020000000800550300000303000000080059030000030500000008005d030000030600000008006103000003070000000800650300000309000000080069030000030a00000008006d030000030b000000080071030000030c000000080075030000030d000000080079030000030e00000008007d030000030f00000008008103000003110000000800850300000312000000080089030000031300000008008d030000031500000008009103000003160000000800950300000317000000080099030000031800000008009d03000003190000000800a1030000031a0000000800a5030000031b0000000800a9030000031c0000000800ad030000031d0000000800b1030000031e0000000800b5030000031f0000000800b903000002410300bd0304184f7074696f6e040454010d010108104e6f6e6500000010536f6d6504000d010000010000c103000002c50300c5030000040800450300c9030c3c70616c6c65745f6964656e7469747914747970657320426974466c61677304045401cd030004002001344964656e746974794669656c640000cd030c3c70616c6c65745f6964656e74697479147479706573344964656e746974794669656c640001201c446973706c6179000100144c6567616c0002000c5765620004001052696f7400080014456d61696c0010003850677046696e6765727072696e7400200014496d6167650040001c5477697474657200800000d1030c3c70616c6c65745f6964656e74697479147479706573244a756467656d656e74041c42616c616e63650118011c1c556e6b6e6f776e0000001c46656550616964040018011c42616c616e636500010028526561736f6e61626c65000200244b6e6f776e476f6f64000300244f75744f6644617465000400284c6f775175616c697479000500244572726f6e656f757300060000d5030c3070616c6c65745f70726f78791870616c6c65741043616c6c0404540001281470726f78790c01107265616c000130543a3a4163636f756e744964000140666f7263655f70726f78795f74797065d90301504f7074696f6e3c543a3a50726f7879547970653e00011063616c6c09020160426f783c3c5420617320436f6e6669673e3a3a43616c6c3e00003c4d0144697370617463682074686520676976656e206063616c6c602066726f6d20616e206163636f756e742074686174207468652073656e64657220697320617574686f726973656420666f72207468726f75676830606164645f70726f7879602e00a852656d6f76657320616e7920636f72726573706f6e64696e6720616e6e6f756e63656d656e742873292e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a0d012d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e61012d2060666f7263655f70726f78795f74797065603a2053706563696679207468652065786163742070726f7879207479706520746f206265207573656420616e6420636865636b656420666f7220746869732063616c6c2ed02d206063616c6c603a205468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e002823203c7765696768743efc57656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e2c23203c2f7765696768743e246164645f70726f78790c012064656c6567617465000130543a3a4163636f756e74496400012870726f78795f7479706521010130543a3a50726f78795479706500011464656c6179100138543a3a426c6f636b4e756d6265720001344501526567697374657220612070726f7879206163636f756e7420666f72207468652073656e64657220746861742069732061626c6520746f206d616b652063616c6c73206f6e2069747320626568616c662e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a11012d206070726f7879603a20546865206163636f756e74207468617420746865206063616c6c65726020776f756c64206c696b6520746f206d616b6520612070726f78792efc2d206070726f78795f74797065603a20546865207065726d697373696f6e7320616c6c6f77656420666f7220746869732070726f7879206163636f756e742e4d012d206064656c6179603a2054686520616e6e6f756e63656d656e7420706572696f64207265717569726564206f662074686520696e697469616c2070726f78792e2057696c6c2067656e6572616c6c79206265147a65726f2e002823203c7765696768743efc57656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e2c23203c2f7765696768743e3072656d6f76655f70726f78790c012064656c6567617465000130543a3a4163636f756e74496400012870726f78795f7479706521010130543a3a50726f78795479706500011464656c6179100138543a3a426c6f636b4e756d62657200022ca8556e726567697374657220612070726f7879206163636f756e7420666f72207468652073656e6465722e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a25012d206070726f7879603a20546865206163636f756e74207468617420746865206063616c6c65726020776f756c64206c696b6520746f2072656d6f766520617320612070726f78792e41012d206070726f78795f74797065603a20546865207065726d697373696f6e732063757272656e746c7920656e61626c656420666f72207468652072656d6f7665642070726f7879206163636f756e742e002823203c7765696768743efc57656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e2c23203c2f7765696768743e3872656d6f76655f70726f78696573000328b4556e726567697374657220616c6c2070726f7879206163636f756e747320666f72207468652073656e6465722e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0055015741524e494e473a2054686973206d61792062652063616c6c6564206f6e206163636f756e747320637265617465642062792060616e6f6e796d6f7573602c20686f776576657220696620646f6e652c207468656e590174686520756e726573657276656420666565732077696c6c20626520696e61636365737369626c652e202a2a416c6c2061636365737320746f2074686973206163636f756e742077696c6c206265206c6f73742e2a2a002823203c7765696768743efc57656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e2c23203c2f7765696768743e24616e6f6e796d6f75730c012870726f78795f7479706521010130543a3a50726f78795479706500011464656c6179100138543a3a426c6f636b4e756d626572000114696e6465782501010c75313600045c3901537061776e2061206672657368206e6577206163636f756e7420746861742069732067756172616e7465656420746f206265206f746865727769736520696e61636365737369626c652c20616e64fc696e697469616c697a65206974207769746820612070726f7879206f66206070726f78795f747970656020666f7220606f726967696e602073656e6465722e006c5265717569726573206120605369676e656460206f726967696e2e0051012d206070726f78795f74797065603a205468652074797065206f66207468652070726f78792074686174207468652073656e6465722077696c6c2062652072656769737465726564206173206f766572207468654d016e6577206163636f756e742e20546869732077696c6c20616c6d6f737420616c7761797320626520746865206d6f7374207065726d697373697665206050726f7879547970656020706f737369626c6520746f78616c6c6f7720666f72206d6178696d756d20666c65786962696c6974792e51012d2060696e646578603a204120646973616d626967756174696f6e20696e6465782c20696e206361736520746869732069732063616c6c6564206d756c7469706c652074696d657320696e207468652073616d655d017472616e73616374696f6e2028652e672e207769746820607574696c6974793a3a626174636860292e20556e6c65737320796f75277265207573696e67206062617463686020796f752070726f6261626c79206a7573744077616e7420746f20757365206030602e4d012d206064656c6179603a2054686520616e6e6f756e63656d656e7420706572696f64207265717569726564206f662074686520696e697469616c2070726f78792e2057696c6c2067656e6572616c6c79206265147a65726f2e0051014661696c73207769746820604475706c69636174656020696620746869732068617320616c7265616479206265656e2063616c6c656420696e2074686973207472616e73616374696f6e2c2066726f6d207468659873616d652073656e6465722c2077697468207468652073616d6520706172616d65746572732e00e44661696c732069662074686572652061726520696e73756666696369656e742066756e647320746f2070617920666f72206465706f7369742e002823203c7765696768743efc57656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e2c23203c2f7765696768743e8c544f444f3a204d69676874206265206f76657220636f756e74696e6720312072656164386b696c6c5f616e6f6e796d6f757314011c737061776e6572000130543a3a4163636f756e74496400012870726f78795f7479706521010130543a3a50726f787954797065000114696e6465782501010c753136000118686569676874ad010138543a3a426c6f636b4e756d6265720001246578745f696e646578ad01010c753332000550b452656d6f76657320612070726576696f75736c7920737061776e656420616e6f6e796d6f75732070726f78792e0049015741524e494e473a202a2a416c6c2061636365737320746f2074686973206163636f756e742077696c6c206265206c6f73742e2a2a20416e792066756e64732068656c6420696e2069742077696c6c20626534696e61636365737369626c652e0059015265717569726573206120605369676e656460206f726967696e2c20616e64207468652073656e646572206163636f756e74206d7573742068617665206265656e206372656174656420627920612063616c6c20746fa860616e6f6e796d6f757360207769746820636f72726573706f6e64696e6720706172616d65746572732e004d012d2060737061776e6572603a20546865206163636f756e742074686174206f726967696e616c6c792063616c6c65642060616e6f6e796d6f75736020746f206372656174652074686973206163636f756e742e4d012d2060696e646578603a2054686520646973616d626967756174696f6e20696e646578206f726967696e616c6c792070617373656420746f2060616e6f6e796d6f7573602e2050726f6261626c79206030602e01012d206070726f78795f74797065603a205468652070726f78792074797065206f726967696e616c6c792070617373656420746f2060616e6f6e796d6f7573602e3d012d2060686569676874603a2054686520686569676874206f662074686520636861696e207768656e207468652063616c6c20746f2060616e6f6e796d6f757360207761732070726f6365737365642e49012d20606578745f696e646578603a205468652065787472696e73696320696e64657820696e207768696368207468652063616c6c20746f2060616e6f6e796d6f757360207761732070726f6365737365642e0049014661696c73207769746820604e6f5065726d697373696f6e6020696e2063617365207468652063616c6c6572206973206e6f7420612070726576696f75736c79206372656174656420616e6f6e796d6f7573f06163636f756e742077686f73652060616e6f6e796d6f7573602063616c6c2068617320636f72726573706f6e64696e6720706172616d65746572732e002823203c7765696768743efc57656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e2c23203c2f7765696768743e20616e6e6f756e63650801107265616c000130543a3a4163636f756e74496400012463616c6c5f6861736824013443616c6c486173684f663c543e00065405015075626c697368207468652068617368206f6620612070726f78792d63616c6c20746861742077696c6c206265206d61646520696e20746865206675747572652e005d0154686973206d7573742062652063616c6c656420736f6d65206e756d626572206f6620626c6f636b73206265666f72652074686520636f72726573706f6e64696e67206070726f78796020697320617474656d7074656425016966207468652064656c6179206173736f6369617465642077697468207468652070726f78792072656c6174696f6e736869702069732067726561746572207468616e207a65726f2e0011014e6f206d6f7265207468616e20604d617850656e64696e676020616e6e6f756e63656d656e7473206d6179206265206d61646520617420616e79206f6e652074696d652e000901546869732077696c6c2074616b652061206465706f736974206f662060416e6e6f756e63656d656e744465706f736974466163746f72602061732077656c6c206173190160416e6e6f756e63656d656e744465706f736974426173656020696620746865726520617265206e6f206f746865722070656e64696e6720616e6e6f756e63656d656e74732e002501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420612070726f7879206f6620607265616c602e002c506172616d65746572733a0d012d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e15012d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e002823203c7765696768743e6057656967687420697320612066756e6374696f6e206f663a982d20413a20746865206e756d626572206f6620616e6e6f756e63656d656e7473206d6164652ea02d20503a20746865206e756d626572206f662070726f78696573207468652075736572206861732e2c23203c2f7765696768743e4c72656d6f76655f616e6e6f756e63656d656e740801107265616c000130543a3a4163636f756e74496400012463616c6c5f6861736824013443616c6c486173684f663c543e0007407052656d6f7665206120676976656e20616e6e6f756e63656d656e742e0059014d61792062652063616c6c656420627920612070726f7879206163636f756e7420746f2072656d6f766520612063616c6c20746865792070726576696f75736c7920616e6e6f756e63656420616e642072657475726e30746865206465706f7369742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a0d012d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e15012d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e002823203c7765696768743e6057656967687420697320612066756e6374696f6e206f663a982d20413a20746865206e756d626572206f6620616e6e6f756e63656d656e7473206d6164652ea02d20503a20746865206e756d626572206f662070726f78696573207468652075736572206861732e2c23203c2f7765696768743e4c72656a6563745f616e6e6f756e63656d656e7408012064656c6567617465000130543a3a4163636f756e74496400012463616c6c5f6861736824013443616c6c486173684f663c543e000840b052656d6f76652074686520676976656e20616e6e6f756e63656d656e74206f6620612064656c65676174652e0061014d61792062652063616c6c6564206279206120746172676574202870726f7869656429206163636f756e7420746f2072656d6f766520612063616c6c2074686174206f6e65206f662074686569722064656c6567617465732501286064656c656761746560292068617320616e6e6f756e63656420746865792077616e7420746f20657865637574652e20546865206465706f7369742069732072657475726e65642e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733af42d206064656c6567617465603a20546865206163636f756e7420746861742070726576696f75736c7920616e6e6f756e636564207468652063616c6c2ebc2d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f206265206d6164652e002823203c7765696768743e6057656967687420697320612066756e6374696f6e206f663a982d20413a20746865206e756d626572206f6620616e6e6f756e63656d656e7473206d6164652ea02d20503a20746865206e756d626572206f662070726f78696573207468652075736572206861732e2c23203c2f7765696768743e3c70726f78795f616e6e6f756e63656410012064656c6567617465000130543a3a4163636f756e7449640001107265616c000130543a3a4163636f756e744964000140666f7263655f70726f78795f74797065d90301504f7074696f6e3c543a3a50726f7879547970653e00011063616c6c09020160426f783c3c5420617320436f6e6669673e3a3a43616c6c3e0009444d0144697370617463682074686520676976656e206063616c6c602066726f6d20616e206163636f756e742074686174207468652073656e64657220697320617574686f72697a656420666f72207468726f75676830606164645f70726f7879602e00a852656d6f76657320616e7920636f72726573706f6e64696e6720616e6e6f756e63656d656e742873292e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a0d012d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e61012d2060666f7263655f70726f78795f74797065603a2053706563696679207468652065786163742070726f7879207479706520746f206265207573656420616e6420636865636b656420666f7220746869732063616c6c2ed02d206063616c6c603a205468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e002823203c7765696768743e6057656967687420697320612066756e6374696f6e206f663a982d20413a20746865206e756d626572206f6620616e6e6f756e63656d656e7473206d6164652ea02d20503a20746865206e756d626572206f662070726f78696573207468652075736572206861732e2c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ed90304184f7074696f6e0404540121010108104e6f6e6500000010536f6d65040021010000010000dd030c3c70616c6c65745f6d756c74697369671870616c6c65741043616c6c0404540001105061735f6d756c74695f7468726573686f6c645f310801446f746865725f7369676e61746f72696573dc01445665633c543a3a4163636f756e7449643e00011063616c6c09020160426f783c3c5420617320436f6e6669673e3a3a43616c6c3e0000405101496d6d6564696174656c792064697370617463682061206d756c74692d7369676e61747572652063616c6c207573696e6720612073696e676c6520617070726f76616c2066726f6d207468652063616c6c65722e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003d012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f206172652070617274206f662074686501016d756c74692d7369676e61747572652c2062757420646f206e6f7420706172746963697061746520696e2074686520617070726f76616c2070726f636573732e882d206063616c6c603a205468652063616c6c20746f2062652065786563757465642e00b8526573756c74206973206571756976616c656e7420746f20746865206469737061746368656420726573756c742e002823203c7765696768743e19014f285a202b204329207768657265205a20697320746865206c656e677468206f66207468652063616c6c20616e6420432069747320657865637574696f6e207765696768742e7c2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d442d204442205765696768743a204e6f6e65482d20506c75732043616c6c205765696768742c23203c2f7765696768743e2061735f6d756c74691801247468726573686f6c642501010c7531360001446f746865725f7369676e61746f72696573dc01445665633c543a3a4163636f756e7449643e00013c6d617962655f74696d65706f696e74e10301844f7074696f6e3c54696d65706f696e743c543a3a426c6f636b4e756d6265723e3e00011063616c6c2801284f706171756543616c6c00012873746f72655f63616c6ce80110626f6f6c0001286d61785f7765696768742001185765696768740001b45501526567697374657220617070726f76616c20666f72206120646973706174636820746f206265206d6164652066726f6d20612064657465726d696e697374696320636f6d706f73697465206163636f756e74206966f8617070726f766564206279206120746f74616c206f6620607468726573686f6c64202d203160206f6620606f746865725f7369676e61746f72696573602e00b049662074686572652061726520656e6f7567682c207468656e206469737061746368207468652063616c6c2e002d015061796d656e743a20604465706f73697442617365602077696c6c20626520726573657276656420696620746869732069732074686520666972737420617070726f76616c2c20706c75733d01607468726573686f6c64602074696d657320604465706f736974466163746f72602e2049742069732072657475726e6564206f6e636520746869732064697370617463682068617070656e73206f723469732063616e63656c6c65642e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0055012d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e41012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f766520746869736c64697370617463682e204d6179206e6f7420626520656d7074792e59012d20606d617962655f74696d65706f696e74603a20496620746869732069732074686520666972737420617070726f76616c2c207468656e2074686973206d75737420626520604e6f6e65602e20496620697420697351016e6f742074686520666972737420617070726f76616c2c207468656e206974206d7573742062652060536f6d65602c2077697468207468652074696d65706f696e742028626c6f636b206e756d62657220616e64d47472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c207472616e73616374696f6e2e882d206063616c6c603a205468652063616c6c20746f2062652065786563757465642e001d014e4f54453a20556e6c6573732074686973206973207468652066696e616c20617070726f76616c2c20796f752077696c6c2067656e6572616c6c792077616e7420746f20757365190160617070726f76655f61735f6d756c74696020696e73746561642c2073696e6365206974206f6e6c7920726571756972657320612068617368206f66207468652063616c6c2e005901526573756c74206973206571756976616c656e7420746f20746865206469737061746368656420726573756c7420696620607468726573686f6c64602069732065786163746c79206031602e204f746865727769736555016f6e20737563636573732c20726573756c7420697320604f6b6020616e642074686520726573756c742066726f6d2074686520696e746572696f722063616c6c2c206966206974207761732065786563757465642cdc6d617920626520666f756e6420696e20746865206465706f736974656420604d756c7469736967457865637574656460206576656e742e002823203c7765696768743e502d20604f2853202b205a202b2043616c6c29602ecc2d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e3d012d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f66450120207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2e21012d204f6e652063616c6c20656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285a296020776865726520605a602069732074782d6c656e2ebc2d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602ed42d20557020746f206f6e652062696e6172792073656172636820616e6420696e736572742028604f286c6f6753202b20532960292ef82d20492f4f3a2031207265616420604f285329602c20757020746f2031206d757461746520604f285329602e20557020746f206f6e652072656d6f76652e302d204f6e65206576656e742e6c2d2054686520776569676874206f6620746865206063616c6c602e4d012d2053746f726167653a20696e7365727473206f6e65206974656d2c2076616c75652073697a6520626f756e64656420627920604d61785369676e61746f72696573602c20776974682061206465706f7369741901202074616b656e20666f7220697473206c69666574696d65206f6620604465706f73697442617365202b207468726573686f6c64202a204465706f736974466163746f72602e7c2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d302d204442205765696768743a2101202020202d2052656164733a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d2c2043616c6c7320286966206073746f72655f63616c6c60292501202020202d205772697465733a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d2c2043616c6c7320286966206073746f72655f63616c6c6029482d20506c75732043616c6c205765696768742c23203c2f7765696768743e40617070726f76655f61735f6d756c74691401247468726573686f6c642501010c7531360001446f746865725f7369676e61746f72696573dc01445665633c543a3a4163636f756e7449643e00013c6d617962655f74696d65706f696e74e10301844f7074696f6e3c54696d65706f696e743c543a3a426c6f636b4e756d6265723e3e00012463616c6c5f686173680401205b75383b2033325d0001286d61785f77656967687420011857656967687400028c5501526567697374657220617070726f76616c20666f72206120646973706174636820746f206265206d6164652066726f6d20612064657465726d696e697374696320636f6d706f73697465206163636f756e74206966f8617070726f766564206279206120746f74616c206f6620607468726573686f6c64202d203160206f6620606f746865725f7369676e61746f72696573602e002d015061796d656e743a20604465706f73697442617365602077696c6c20626520726573657276656420696620746869732069732074686520666972737420617070726f76616c2c20706c75733d01607468726573686f6c64602074696d657320604465706f736974466163746f72602e2049742069732072657475726e6564206f6e636520746869732064697370617463682068617070656e73206f723469732063616e63656c6c65642e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0055012d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e41012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f766520746869736c64697370617463682e204d6179206e6f7420626520656d7074792e59012d20606d617962655f74696d65706f696e74603a20496620746869732069732074686520666972737420617070726f76616c2c207468656e2074686973206d75737420626520604e6f6e65602e20496620697420697351016e6f742074686520666972737420617070726f76616c2c207468656e206974206d7573742062652060536f6d65602c2077697468207468652074696d65706f696e742028626c6f636b206e756d62657220616e64d47472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c207472616e73616374696f6e2ecc2d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f2062652065786563757465642e0035014e4f54453a2049662074686973206973207468652066696e616c20617070726f76616c2c20796f752077696c6c2077616e7420746f20757365206061735f6d756c74696020696e73746561642e002823203c7765696768743e242d20604f285329602ecc2d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e3d012d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f66450120207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2ebc2d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602ed42d20557020746f206f6e652062696e6172792073656172636820616e6420696e736572742028604f286c6f6753202b20532960292ef82d20492f4f3a2031207265616420604f285329602c20757020746f2031206d757461746520604f285329602e20557020746f206f6e652072656d6f76652e302d204f6e65206576656e742e4d012d2053746f726167653a20696e7365727473206f6e65206974656d2c2076616c75652073697a6520626f756e64656420627920604d61785369676e61746f72696573602c20776974682061206465706f7369741901202074616b656e20666f7220697473206c69666574696d65206f6620604465706f73697442617365202b207468726573686f6c64202a204465706f736974466163746f72602e882d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d302d204442205765696768743ab8202020202d20526561643a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745dbc202020202d2057726974653a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d2c23203c2f7765696768743e3c63616e63656c5f61735f6d756c74691001247468726573686f6c642501010c7531360001446f746865725f7369676e61746f72696573dc01445665633c543a3a4163636f756e7449643e00012474696d65706f696e742d01016454696d65706f696e743c543a3a426c6f636b4e756d6265723e00012463616c6c5f686173680401205b75383b2033325d000368550143616e63656c2061207072652d6578697374696e672c206f6e2d676f696e67206d756c7469736967207472616e73616374696f6e2e20416e79206465706f7369742072657365727665642070726576696f75736c79c4666f722074686973206f7065726174696f6e2077696c6c20626520756e7265736572766564206f6e20737563636573732e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0055012d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e41012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f766520746869736c64697370617463682e204d6179206e6f7420626520656d7074792e5d012d206074696d65706f696e74603a205468652074696d65706f696e742028626c6f636b206e756d62657220616e64207472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c787472616e73616374696f6e20666f7220746869732064697370617463682ecc2d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f2062652065786563757465642e002823203c7765696768743e242d20604f285329602ecc2d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e3d012d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f66450120207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2ebc2d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602e302d204f6e65206576656e742e842d20492f4f3a2031207265616420604f285329602c206f6e652072656d6f76652e702d2053746f726167653a2072656d6f766573206f6e65206974656d2e882d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d302d204442205765696768743a1501202020202d20526561643a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d2c20526566756e64204163636f756e742c2043616c6c731901202020202d2057726974653a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d2c20526566756e64204163636f756e742c2043616c6c732c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ee10304184f7074696f6e040454012d010108104e6f6e6500000010536f6d6504002d010000010000e5030c3c70616c6c65745f626f756e746965731870616c6c65741043616c6c0404540001243870726f706f73655f626f756e747908011476616c7565cc013042616c616e63654f663c543e00012c6465736372697074696f6e28011c5665633c75383e0000305450726f706f73652061206e657720626f756e74792e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0051015061796d656e743a20605469705265706f72744465706f73697442617365602077696c6c2062652072657365727665642066726f6d20746865206f726967696e206163636f756e742c2061732077656c6c206173510160446174614465706f736974506572427974656020666f722065616368206279746520696e2060726561736f6e602e2049742077696c6c20626520756e72657365727665642075706f6e20617070726f76616c2c646f7220736c6173686564207768656e2072656a65637465642e00f82d206063757261746f72603a205468652063757261746f72206163636f756e742077686f6d2077696c6c206d616e616765207468697320626f756e74792e642d2060666565603a205468652063757261746f72206665652e25012d206076616c7565603a2054686520746f74616c207061796d656e7420616d6f756e74206f66207468697320626f756e74792c2063757261746f722066656520696e636c756465642ec02d20606465736372697074696f6e603a20546865206465736372697074696f6e206f66207468697320626f756e74792e38617070726f76655f626f756e7479040124626f756e74795f6964ad01012c426f756e7479496e6465780001205d01417070726f7665206120626f756e74792070726f706f73616c2e2041742061206c617465722074696d652c2074686520626f756e74792077696c6c2062652066756e64656420616e64206265636f6d6520616374697665a8616e6420746865206f726967696e616c206465706f7369742077696c6c2062652072657475726e65642e00ac4d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a417070726f76654f726967696e602e002823203c7765696768743e1c2d204f2831292e2c23203c2f7765696768743e3c70726f706f73655f63757261746f720c0124626f756e74795f6964ad01012c426f756e7479496e64657800011c63757261746f724d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500010c666565cc013042616c616e63654f663c543e00021c9041737369676e20612063757261746f7220746f20612066756e64656420626f756e74792e00ac4d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a417070726f76654f726967696e602e002823203c7765696768743e1c2d204f2831292e2c23203c2f7765696768743e40756e61737369676e5f63757261746f72040124626f756e74795f6964ad01012c426f756e7479496e6465780003487c556e61737369676e2063757261746f722066726f6d206120626f756e74792e001d01546869732066756e6374696f6e2063616e206f6e6c792062652063616c6c656420627920746865206052656a6563744f726967696e602061207369676e6564206f726967696e2e003d01496620746869732066756e6374696f6e2069732063616c6c656420627920746865206052656a6563744f726967696e602c20776520617373756d652074686174207468652063757261746f7220697331016d616c6963696f7573206f7220696e6163746976652e204173206120726573756c742c2077652077696c6c20736c617368207468652063757261746f72207768656e20706f737369626c652e006101496620746865206f726967696e206973207468652063757261746f722c2077652074616b6520746869732061732061207369676e20746865792061726520756e61626c6520746f20646f207468656972206a6f6220616e645d01746865792077696c6c696e676c7920676976652075702e20576520636f756c6420736c617368207468656d2c2062757420666f72206e6f7720776520616c6c6f77207468656d20746f207265636f76657220746865697235016465706f73697420616e64206578697420776974686f75742069737375652e20285765206d61792077616e7420746f206368616e67652074686973206966206974206973206162757365642e29005d0146696e616c6c792c20746865206f726967696e2063616e20626520616e796f6e6520696620616e64206f6e6c79206966207468652063757261746f722069732022696e616374697665222e205468697320616c6c6f77736101616e796f6e6520696e2074686520636f6d6d756e69747920746f2063616c6c206f7574207468617420612063757261746f72206973206e6f7420646f696e67207468656972206475652064696c6967656e63652c20616e64390177652073686f756c64207069636b2061206e65772063757261746f722e20496e20746869732063617365207468652063757261746f722073686f756c6420616c736f20626520736c61736865642e002823203c7765696768743e1c2d204f2831292e2c23203c2f7765696768743e386163636570745f63757261746f72040124626f756e74795f6964ad01012c426f756e7479496e64657800042094416363657074207468652063757261746f7220726f6c6520666f72206120626f756e74792e290141206465706f7369742077696c6c2062652072657365727665642066726f6d2063757261746f7220616e6420726566756e642075706f6e207375636365737366756c207061796f75742e00904d6179206f6e6c792062652063616c6c65642066726f6d207468652063757261746f722e002823203c7765696768743e1c2d204f2831292e2c23203c2f7765696768743e3061776172645f626f756e7479080124626f756e74795f6964ad01012c426f756e7479496e64657800012c62656e65666963696172794d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500052c5901417761726420626f756e747920746f20612062656e6566696369617279206163636f756e742e205468652062656e65666963696172792077696c6c2062652061626c6520746f20636c61696d207468652066756e647338616674657220612064656c61792e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265207468652063757261746f72206f66207468697320626f756e74792e00882d2060626f756e74795f6964603a20426f756e747920494420746f2061776172642e19012d206062656e6566696369617279603a205468652062656e6566696369617279206163636f756e742077686f6d2077696c6c207265636569766520746865207061796f75742e002823203c7765696768743e1c2d204f2831292e2c23203c2f7765696768743e30636c61696d5f626f756e7479040124626f756e74795f6964ad01012c426f756e7479496e646578000624ec436c61696d20746865207061796f75742066726f6d20616e206177617264656420626f756e7479206166746572207061796f75742064656c61792e002501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265207468652062656e6566696369617279206f66207468697320626f756e74792e00882d2060626f756e74795f6964603a20426f756e747920494420746f20636c61696d2e002823203c7765696768743e1c2d204f2831292e2c23203c2f7765696768743e30636c6f73655f626f756e7479040124626f756e74795f6964ad01012c426f756e7479496e646578000728390143616e63656c20612070726f706f736564206f722061637469766520626f756e74792e20416c6c207468652066756e64732077696c6c2062652073656e7420746f20747265617375727920616e64cc7468652063757261746f72206465706f7369742077696c6c20626520756e726573657276656420696620706f737369626c652e00c84f6e6c792060543a3a52656a6563744f726967696e602069732061626c6520746f2063616e63656c206120626f756e74792e008c2d2060626f756e74795f6964603a20426f756e747920494420746f2063616e63656c2e002823203c7765696768743e1c2d204f2831292e2c23203c2f7765696768743e50657874656e645f626f756e74795f657870697279080124626f756e74795f6964ad01012c426f756e7479496e64657800011872656d61726b28011c5665633c75383e000828ac457874656e6420746865206578706972792074696d65206f6620616e2061637469766520626f756e74792e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265207468652063757261746f72206f66207468697320626f756e74792e008c2d2060626f756e74795f6964603a20426f756e747920494420746f20657874656e642e8c2d206072656d61726b603a206164646974696f6e616c20696e666f726d6174696f6e2e002823203c7765696768743e1c2d204f2831292e2c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ee9030c2c70616c6c65745f746970731870616c6c65741043616c6c040454000118387265706f72745f617765736f6d65080118726561736f6e28011c5665633c75383e00010c77686f000130543a3a4163636f756e74496400004c59015265706f727420736f6d657468696e672060726561736f6e60207468617420646573657276657320612074697020616e6420636c61696d20616e79206576656e7475616c207468652066696e6465722773206665652e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0051015061796d656e743a20605469705265706f72744465706f73697442617365602077696c6c2062652072657365727665642066726f6d20746865206f726967696e206163636f756e742c2061732077656c6c206173bc60446174614465706f736974506572427974656020666f722065616368206279746520696e2060726561736f6e602e005d012d2060726561736f6e603a2054686520726561736f6e20666f722c206f7220746865207468696e6720746861742064657365727665732c20746865207469703b2067656e6572616c6c7920746869732077696c6c20626558202061205554462d382d656e636f6465642055524c2ee82d206077686f603a20546865206163636f756e742077686963682073686f756c6420626520637265646974656420666f7220746865207469702e0074456d69747320604e657754697060206966207375636365737366756c2e002823203c7765696768743ec82d20436f6d706c65786974793a20604f2852296020776865726520605260206c656e677468206f662060726561736f6e602e9020202d20656e636f64696e6720616e642068617368696e67206f662027726561736f6e27702d20446252656164733a2060526561736f6e73602c20605469707360742d2044625772697465733a2060526561736f6e73602c206054697073602c23203c2f7765696768743e2c726574726163745f7469700401106861736824011c543a3a4861736800014c5101526574726163742061207072696f72207469702d7265706f72742066726f6d20607265706f72745f617765736f6d65602c20616e642063616e63656c207468652070726f63657373206f662074697070696e672e00dc4966207375636365737366756c2c20746865206f726967696e616c206465706f7369742077696c6c20626520756e72657365727665642e004d01546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642074686520746970206964656e7469666965642062792060686173686041016d7573742068617665206265656e207265706f7274656420627920746865207369676e696e67206163636f756e74207468726f75676820607265706f72745f617765736f6d65602028616e64206e6f744c7468726f75676820607469705f6e657760292e0061012d206068617368603a20546865206964656e74697479206f6620746865206f70656e2074697020666f722077686963682061207469702076616c7565206973206465636c617265642e205468697320697320666f726d65645d0120206173207468652068617368206f6620746865207475706c65206f6620746865206f726967696e616c207469702060726561736f6e6020616e64207468652062656e6566696369617279206163636f756e742049442e008c456d697473206054697052657472616374656460206966207375636365737366756c2e002823203c7765696768743e502d20436f6d706c65786974793a20604f28312960d820202d20446570656e6473206f6e20746865206c656e677468206f662060543a3a48617368602077686963682069732066697865642e8c2d20446252656164733a206054697073602c20606f726967696e206163636f756e7460bc2d2044625772697465733a2060526561736f6e73602c206054697073602c20606f726967696e206163636f756e74602c23203c2f7765696768743e1c7469705f6e65770c0118726561736f6e28011c5665633c75383e00010c77686f000130543a3a4163636f756e7449640001247469705f76616c7565cc013042616c616e63654f663c543e000258f04769766520612074697020666f7220736f6d657468696e67206e65773b206e6f2066696e6465722773206665652077696c6c2062652074616b656e2e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d7573742062652061706d656d626572206f662074686520605469707065727360207365742e005d012d2060726561736f6e603a2054686520726561736f6e20666f722c206f7220746865207468696e6720746861742064657365727665732c20746865207469703b2067656e6572616c6c7920746869732077696c6c20626558202061205554462d382d656e636f6465642055524c2ee82d206077686f603a20546865206163636f756e742077686963682073686f756c6420626520637265646974656420666f7220746865207469702e4d012d20607469705f76616c7565603a2054686520616d6f756e74206f66207469702074686174207468652073656e64657220776f756c64206c696b6520746f20676976652e20546865206d656469616e20746970d4202076616c7565206f662061637469766520746970706572732077696c6c20626520676976656e20746f20746865206077686f602e0074456d69747320604e657754697060206966207375636365737366756c2e002823203c7765696768743e51012d20436f6d706c65786974793a20604f2852202b2054296020776865726520605260206c656e677468206f662060726561736f6e602c2060546020697320746865206e756d626572206f6620746970706572732e5d0120202d20604f285429603a206465636f64696e6720605469707065726020766563206f66206c656e677468206054602e20605460206973206368617267656420617320757070657220626f756e6420676976656e2062792d012020202060436f6e7461696e734c656e677468426f756e64602e205468652061637475616c20636f737420646570656e6473206f6e2074686520696d706c656d656e746174696f6e206f66442020202060543a3a54697070657273602ee020202d20604f285229603a2068617368696e6720616e6420656e636f64696e67206f6620726561736f6e206f66206c656e677468206052607c2d20446252656164733a206054697070657273602c2060526561736f6e7360742d2044625772697465733a2060526561736f6e73602c206054697073602c23203c2f7765696768743e0c7469700801106861736824011c543a3a486173680001247469705f76616c7565cc013042616c616e63654f663c543e000360b04465636c6172652061207469702076616c756520666f7220616e20616c72656164792d6f70656e207469702e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d7573742062652061706d656d626572206f662074686520605469707065727360207365742e0061012d206068617368603a20546865206964656e74697479206f6620746865206f70656e2074697020666f722077686963682061207469702076616c7565206973206465636c617265642e205468697320697320666f726d65645d0120206173207468652068617368206f6620746865207475706c65206f66207468652068617368206f6620746865206f726967696e616c207469702060726561736f6e6020616e64207468652062656e65666963696172793420206163636f756e742049442e4d012d20607469705f76616c7565603a2054686520616d6f756e74206f66207469702074686174207468652073656e64657220776f756c64206c696b6520746f20676976652e20546865206d656469616e20746970d4202076616c7565206f662061637469766520746970706572732077696c6c20626520676976656e20746f20746865206077686f602e006101456d6974732060546970436c6f73696e676020696620746865207468726573686f6c64206f66207469707065727320686173206265656e207265616368656420616e642074686520636f756e74646f776e20706572696f643068617320737461727465642e002823203c7765696768743e61012d20436f6d706c65786974793a20604f285429602077686572652060546020697320746865206e756d626572206f6620746970706572732e206465636f64696e6720605469707065726020766563206f66206c656e6774682d0120206054602c20696e736572742074697020616e6420636865636b20636c6f73696e672c20605460206973206368617267656420617320757070657220626f756e6420676976656e2062795d01202060436f6e7461696e734c656e677468426f756e64602e205468652061637475616c20636f737420646570656e6473206f6e2074686520696d706c656d656e746174696f6e206f662060543a3a54697070657273602e005d01202041637475616c6c792077656967687420636f756c64206265206c6f77657220617320697420646570656e6473206f6e20686f77206d616e7920746970732061726520696e20604f70656e5469706020627574206974d02020697320776569676874656420617320696620616c6d6f73742066756c6c20692e65206f66206c656e6774682060542d31602e702d20446252656164733a206054697070657273602c20605469707360482d2044625772697465733a206054697073602c23203c2f7765696768743e24636c6f73655f7469700401106861736824011c543a3a486173680004405c436c6f736520616e64207061796f75742061207469702e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e00150154686520746970206964656e74696669656420627920606861736860206d75737420686176652066696e69736865642069747320636f756e74646f776e20706572696f642e0061012d206068617368603a20546865206964656e74697479206f6620746865206f70656e2074697020666f722077686963682061207469702076616c7565206973206465636c617265642e205468697320697320666f726d65645d0120206173207468652068617368206f6620746865207475706c65206f6620746865206f726967696e616c207469702060726561736f6e6020616e64207468652062656e6566696369617279206163636f756e742049442e002823203c7765696768743e61012d20436f6d706c65786974793a20604f285429602077686572652060546020697320746865206e756d626572206f6620746970706572732e206465636f64696e6720605469707065726020766563206f66206c656e677468510120206054602e20605460206973206368617267656420617320757070657220626f756e6420676976656e2062792060436f6e7461696e734c656e677468426f756e64602e205468652061637475616c20636f7374c02020646570656e6473206f6e2074686520696d706c656d656e746174696f6e206f662060543a3a54697070657273602ea82d20446252656164733a206054697073602c206054697070657273602c20607469702066696e64657260d82d2044625772697465733a2060526561736f6e73602c206054697073602c206054697070657273602c20607469702066696e646572602c23203c2f7765696768743e24736c6173685f7469700401106861736824011c543a3a486173680005309452656d6f766520616e6420736c61736820616e20616c72656164792d6f70656e207469702e00a84d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a52656a6563744f726967696e602e00f44173206120726573756c742c207468652066696e64657220697320736c617368656420616e6420746865206465706f7369747320617265206c6f73742e0084456d6974732060546970536c617368656460206966207375636365737366756c2e002823203c7765696768743efc2020605460206973206368617267656420617320757070657220626f756e6420676976656e2062792060436f6e7461696e734c656e677468426f756e64602e010120205468652061637475616c20636f737420646570656e6473206f6e2074686520696d706c656d656e746174696f6e206f662060543a3a54697070657273602e2c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632eed030c9070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173651870616c6c65741043616c6c0404540001103c7375626d69745f756e7369676e65640801307261775f736f6c7574696f6ef103017c426f783c526177536f6c7574696f6e3c536f6c7574696f6e4f663c543e3e3e00011c7769746e657373c5040158536f6c7574696f6e4f72536e617073686f7453697a65000038a45375626d6974206120736f6c7574696f6e20666f722074686520756e7369676e65642070686173652e00c8546865206469737061746368206f726967696e20666f20746869732063616c6c206d757374206265205f5f6e6f6e655f5f2e003d0154686973207375626d697373696f6e20697320636865636b6564206f6e2074686520666c792e204d6f72656f7665722c207468697320756e7369676e656420736f6c7574696f6e206973206f6e6c79550176616c696461746564207768656e207375626d697474656420746f2074686520706f6f6c2066726f6d20746865202a2a6c6f63616c2a2a206e6f64652e204566666563746976656c792c2074686973206d65616e735d0174686174206f6e6c79206163746976652076616c696461746f72732063616e207375626d69742074686973207472616e73616374696f6e207768656e20617574686f72696e67206120626c6f636b202873696d696c617240746f20616e20696e686572656e74292e005901546f2070726576656e7420616e7920696e636f727265637420736f6c7574696f6e2028616e642074687573207761737465642074696d652f776569676874292c2074686973207472616e73616374696f6e2077696c6c4d0170616e69632069662074686520736f6c7574696f6e207375626d6974746564206279207468652076616c696461746f7220697320696e76616c696420696e20616e79207761792c206566666563746976656c799c70757474696e6720746865697220617574686f72696e6720726577617264206174207269736b2e00e04e6f206465706f736974206f7220726577617264206973206173736f63696174656420776974682074686973207375626d697373696f6e2e6c7365745f6d696e696d756d5f756e747275737465645f73636f72650401406d617962655f6e6578745f73636f7265c90401544f7074696f6e3c456c656374696f6e53636f72653e000114b05365742061206e65772076616c756520666f7220604d696e696d756d556e7472757374656453636f7265602e00d84469737061746368206f726967696e206d75737420626520616c69676e656420776974682060543a3a466f7263654f726967696e602e00f05468697320636865636b2063616e206265207475726e6564206f66662062792073657474696e67207468652076616c756520746f20604e6f6e65602e747365745f656d657267656e63795f656c656374696f6e5f726573756c74040120737570706f727473cd040158537570706f7274733c543a3a4163636f756e7449643e0002205901536574206120736f6c7574696f6e20696e207468652071756575652c20746f2062652068616e646564206f757420746f2074686520636c69656e74206f6620746869732070616c6c657420696e20746865206e6578748863616c6c20746f2060456c656374696f6e50726f76696465723a3a656c656374602e004501546869732063616e206f6e6c79206265207365742062792060543a3a466f7263654f726967696e602c20616e64206f6e6c79207768656e207468652070686173652069732060456d657267656e6379602e00610154686520736f6c7574696f6e206973206e6f7420636865636b656420666f7220616e7920666561736962696c69747920616e6420697320617373756d656420746f206265207472757374776f727468792c20617320616e795101666561736962696c69747920636865636b20697473656c662063616e20696e207072696e6369706c652063617573652074686520656c656374696f6e2070726f6365737320746f206661696c202864756520746f686d656d6f72792f77656967687420636f6e73747261696e73292e187375626d69740801307261775f736f6c7574696f6ef103017c426f783c526177536f6c7574696f6e3c536f6c7574696f6e4f663c543e3e3e0001586e756d5f7369676e65645f7375626d697373696f6e7310010c7533320003349c5375626d6974206120736f6c7574696f6e20666f7220746865207369676e65642070686173652e00d0546865206469737061746368206f726967696e20666f20746869732063616c6c206d757374206265205f5f7369676e65645f5f2e005d0154686520736f6c7574696f6e20697320706f74656e7469616c6c79207175657565642c206261736564206f6e2074686520636c61696d65642073636f726520616e642070726f6365737365642061742074686520656e64506f6620746865207369676e65642070686173652e005d0141206465706f73697420697320726573657276656420616e64207265636f7264656420666f722074686520736f6c7574696f6e2e204261736564206f6e20746865206f7574636f6d652c2074686520736f6c7574696f6e15016d696768742062652072657761726465642c20736c61736865642c206f722067657420616c6c206f7220612070617274206f6620746865206465706f736974206261636b2e002823203c7765696768743eb051756575652073697a65206d7573742062652070726f7669646564206173207769746e65737320646174612e2c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ef103089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173652c526177536f6c7574696f6e04045301f503000c0120736f6c7574696f6ef50301045300011473636f7265c1040134456c656374696f6e53636f7265000114726f756e6410010c7533320000f5030840706f6c6b61646f745f72756e74696d65544e706f73436f6d70616374536f6c7574696f6e31360000400118766f74657331f90300000118766f74657332050400000118766f74657333190400000118766f74657334250400000118766f74657335310400000118766f746573363d0400000118766f74657337490400000118766f74657338550400000118766f7465733961040000011c766f74657331306d040000011c766f746573313179040000011c766f746573313285040000011c766f746573313391040000011c766f74657331349d040000011c766f7465733135a9040000011c766f7465733136b504000000f903000002fd0300fd0300000408ad010104000104000006250100050400000209040009040000040cad010d040104000d04000004080104110400110400000615040015040c3473705f61726974686d65746963287065725f7468696e677318506572553136000004002501010c753136000019040000021d04001d040000040cad0121040104002104000003020000000d0400250400000229040029040000040cad012d040104002d04000003030000000d0400310400000235040035040000040cad0139040104003904000003040000000d04003d0400000241040041040000040cad0145040104004504000003050000000d040049040000024d04004d040000040cad0151040104005104000003060000000d0400550400000259040059040000040cad015d040104005d04000003070000000d0400610400000265040065040000040cad0169040104006904000003080000000d04006d0400000271040071040000040cad0175040104007504000003090000000d040079040000027d04007d040000040cad01810401040081040000030a0000000d0400850400000289040089040000040cad018d040104008d040000030b0000000d0400910400000295040095040000040cad01990401040099040000030c0000000d04009d04000002a10400a1040000040cad01a504010400a5040000030d0000000d0400a904000002ad0400ad040000040cad01b104010400b1040000030e0000000d0400b504000002b90400b9040000040cad01bd04010400bd040000030f0000000d0400c104000003030000001800c504089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f706861736558536f6c7574696f6e4f72536e617073686f7453697a650000080118766f74657273ad01010c75333200011c74617267657473ad01010c7533320000c90404184f7074696f6e04045401c1040108104e6f6e6500000010536f6d650400c1040000010000cd04000002d10400d1040000040800d50400d504084473705f6e706f735f656c656374696f6e731c537570706f727404244163636f756e744964010000080114746f74616c18013c457874656e64656442616c616e6365000118766f74657273f401845665633c284163636f756e7449642c20457874656e64656442616c616e6365293e0000d904106c706f6c6b61646f745f72756e74696d655f70617261636861696e7334636f6e66696775726174696f6e1870616c6c65741043616c6c0404540001a4807365745f76616c69646174696f6e5f757067726164655f6672657175656e637904010c6e6577100138543a3a426c6f636b4e756d62657200000494536574207468652076616c69646174696f6e2075706772616465206672657175656e63792e707365745f76616c69646174696f6e5f757067726164655f64656c617904010c6e6577100138543a3a426c6f636b4e756d62657200010484536574207468652076616c69646174696f6e20757067726164652064656c61792e647365745f636f64655f726574656e74696f6e5f706572696f6404010c6e6577100138543a3a426c6f636b4e756d626572000204d05365742074686520616363657074616e636520706572696f6420666f7220616e20696e636c756465642063616e6469646174652e447365745f6d61785f636f64655f73697a6504010c6e657710010c753332000304dc53657420746865206d61782076616c69646174696f6e20636f64652073697a6520666f7220696e636f6d696e672075706772616465732e407365745f6d61785f706f765f73697a6504010c6e657710010c753332000404c453657420746865206d617820504f5620626c6f636b2073697a6520666f7220696e636f6d696e672075706772616465732e587365745f6d61785f686561645f646174615f73697a6504010c6e657710010c7533320005049453657420746865206d6178206865616420646174612073697a6520666f722070617261732e507365745f706172617468726561645f636f72657304010c6e657710010c753332000604b453657420746865206e756d626572206f66207061726174687265616420657865637574696f6e20636f7265732e587365745f706172617468726561645f7265747269657304010c6e657710010c753332000704d853657420746865206e756d626572206f66207265747269657320666f72206120706172746963756c617220706172617468726561642e707365745f67726f75705f726f746174696f6e5f6672657175656e637904010c6e6577100138543a3a426c6f636b4e756d626572000804d0536574207468652070617261636861696e2076616c696461746f722d67726f757020726f746174696f6e206672657175656e6379747365745f636861696e5f617661696c6162696c6974795f706572696f6404010c6e6577100138543a3a426c6f636b4e756d626572000904ac5365742074686520617661696c6162696c69747920706572696f6420666f722070617261636861696e732e787365745f7468726561645f617661696c6162696c6974795f706572696f6404010c6e6577100138543a3a426c6f636b4e756d626572000a04b05365742074686520617661696c6162696c69747920706572696f6420666f722070617261746872656164732e607365745f7363686564756c696e675f6c6f6f6b616865616404010c6e657710010c753332000b04390153657420746865207363686564756c696e67206c6f6f6b61686561642c20696e206578706563746564206e756d626572206f6620626c6f636b73206174207065616b207468726f7567687075742e6c7365745f6d61785f76616c696461746f72735f7065725f636f726504010c6e65777902012c4f7074696f6e3c7533323e000c04ec53657420746865206d6178696d756d206e756d626572206f662076616c696461746f727320746f2061737369676e20746f20616e7920636f72652e487365745f6d61785f76616c696461746f727304010c6e65777902012c4f7074696f6e3c7533323e000d040d0153657420746865206d6178696d756d206e756d626572206f662076616c696461746f727320746f2075736520696e2070617261636861696e20636f6e73656e7375732e487365745f646973707574655f706572696f6404010c6e657710013053657373696f6e496e646578000e040d0153657420746865206469737075746520706572696f642c20696e206e756d626572206f662073657373696f6e7320746f206b65657020666f722064697370757465732eb47365745f646973707574655f706f73745f636f6e636c7573696f6e5f616363657074616e63655f706572696f6404010c6e6577100138543a3a426c6f636b4e756d626572000f04c853657420746865206469737075746520706f737420636f6e636c7573696f6e20616363657074616e636520706572696f642e687365745f646973707574655f6d61785f7370616d5f736c6f747304010c6e657710010c753332001004b453657420746865206d6178696d756d206e756d626572206f662064697370757465207370616d20736c6f74732ea47365745f646973707574655f636f6e636c7573696f6e5f62795f74696d655f6f75745f706572696f6404010c6e6577100138543a3a426c6f636b4e756d626572001104b853657420746865206469737075746520636f6e636c7573696f6e2062792074696d65206f757420706572696f642e447365745f6e6f5f73686f775f736c6f747304010c6e657710010c753332001208f853657420746865206e6f2073686f7720736c6f74732c20696e206e756d626572206f66206e756d626572206f6620636f6e73656e73757320736c6f74732e4c4d757374206265206174206c6561737420312e507365745f6e5f64656c61795f7472616e6368657304010c6e657710010c7533320013049c5365742074686520746f74616c206e756d626572206f662064656c6179207472616e636865732e787365745f7a65726f74685f64656c61795f7472616e6368655f776964746804010c6e657710010c7533320014048c53657420746865207a65726f74682064656c6179207472616e6368652077696474682e507365745f6e65656465645f617070726f76616c7304010c6e657710010c753332001504dc53657420746865206e756d626572206f662076616c696461746f7273206e656564656420746f20617070726f7665206120626c6f636b2e707365745f72656c61795f7672665f6d6f64756c6f5f73616d706c657304010c6e657710010c753332001604590153657420746865206e756d626572206f662073616d706c657320746f20646f206f6620746865206052656c61795652464d6f64756c6f6020617070726f76616c2061737369676e6d656e7420637269746572696f6e2e687365745f6d61785f7570776172645f71756575655f636f756e7404010c6e657710010c7533320017042d015365747320746865206d6178696d756d206974656d7320746861742063616e2070726573656e7420696e206120757077617264206469737061746368207175657565206174206f6e63652e647365745f6d61785f7570776172645f71756575655f73697a6504010c6e657710010c75333200180465015365747320746865206d6178696d756d20746f74616c2073697a65206f66206974656d7320746861742063616e2070726573656e7420696e206120757077617264206469737061746368207175657565206174206f6e63652e747365745f6d61785f646f776e776172645f6d6573736167655f73697a6504010c6e657710010c7533320019049c5365742074686520637269746963616c20646f776e77617264206d6573736167652073697a652e707365745f756d705f736572766963655f746f74616c5f77656967687404010c6e6577200118576569676874001a043901536574732074686520736f6674206c696d697420666f7220746865207068617365206f66206469737061746368696e6720646973706174636861626c6520757077617264206d657373616765732e6c7365745f6d61785f7570776172645f6d6573736167655f73697a6504010c6e657710010c753332001b042d015365747320746865206d6178696d756d2073697a65206f6620616e20757077617264206d65737361676520746861742063616e2062652073656e7420627920612063616e6469646174652ea07365745f6d61785f7570776172645f6d6573736167655f6e756d5f7065725f63616e64696461746504010c6e657710010c753332001c0405015365747320746865206d6178696d756d206e756d626572206f66206d65737361676573207468617420612063616e6469646174652063616e20636f6e7461696e2e647365745f68726d705f6f70656e5f726571756573745f74746c04010c6e657710010c753332001d0435015365747320746865206e756d626572206f662073657373696f6e7320616674657220776869636820616e2048524d50206f70656e206368616e6e656c207265717565737420657870697265732e5c7365745f68726d705f73656e6465725f6465706f73697404010c6e657718011c42616c616e6365001e045101536574732074686520616d6f756e74206f662066756e64732074686174207468652073656e6465722073686f756c642070726f7669646520666f72206f70656e696e6720616e2048524d50206368616e6e656c2e687365745f68726d705f726563697069656e745f6465706f73697404010c6e657718011c42616c616e6365001f086101536574732074686520616d6f756e74206f662066756e647320746861742074686520726563697069656e742073686f756c642070726f7669646520666f7220616363657074696e67206f70656e696e6720616e2048524d50206368616e6e656c2e747365745f68726d705f6368616e6e656c5f6d61785f636170616369747904010c6e657710010c7533320020041d015365747320746865206d6178696d756d206e756d626572206f66206d6573736167657320616c6c6f77656420696e20616e2048524d50206368616e6e656c206174206f6e63652e7c7365745f68726d705f6368616e6e656c5f6d61785f746f74616c5f73697a6504010c6e657710010c75333200210451015365747320746865206d6178696d756d20746f74616c2073697a65206f66206d6573736167657320696e20627974657320616c6c6f77656420696e20616e2048524d50206368616e6e656c206174206f6e63652e9c7365745f68726d705f6d61785f70617261636861696e5f696e626f756e645f6368616e6e656c7304010c6e657710010c75333200220449015365747320746865206d6178696d756d206e756d626572206f6620696e626f756e642048524d50206368616e6e656c7320612070617261636861696e20697320616c6c6f77656420746f206163636570742ea07365745f68726d705f6d61785f706172617468726561645f696e626f756e645f6368616e6e656c7304010c6e657710010c7533320023044d015365747320746865206d6178696d756d206e756d626572206f6620696e626f756e642048524d50206368616e6e656c732061207061726174687265616420697320616c6c6f77656420746f206163636570742e847365745f68726d705f6368616e6e656c5f6d61785f6d6573736167655f73697a6504010c6e657710010c7533320024043d015365747320746865206d6178696d756d2073697a65206f662061206d657373616765207468617420636f756c6420657665722062652070757420696e746f20616e2048524d50206368616e6e656c2ea07365745f68726d705f6d61785f70617261636861696e5f6f7574626f756e645f6368616e6e656c7304010c6e657710010c75333200250445015365747320746865206d6178696d756d206e756d626572206f66206f7574626f756e642048524d50206368616e6e656c7320612070617261636861696e20697320616c6c6f77656420746f206f70656e2ea47365745f68726d705f6d61785f706172617468726561645f6f7574626f756e645f6368616e6e656c7304010c6e657710010c75333200260449015365747320746865206d6178696d756d206e756d626572206f66206f7574626f756e642048524d50206368616e6e656c732061207061726174687265616420697320616c6c6f77656420746f206f70656e2e987365745f68726d705f6d61785f6d6573736167655f6e756d5f7065725f63616e64696461746504010c6e657710010c75333200270435015365747320746865206d6178696d756d206e756d626572206f66206f7574626f756e642048524d50206d657373616765732063616e2062652073656e7420627920612063616e6469646174652e747365745f756d705f6d61785f696e646976696475616c5f77656967687404010c6e657720011857656967687400280431015365747320746865206d6178696d756d20616d6f756e74206f662077656967687420616e7920696e646976696475616c20757077617264206d657373616765206d617920636f6e73756d652e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632edd04106c706f6c6b61646f745f72756e74696d655f70617261636861696e73187368617265641870616c6c65741043616c6c040454000100042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ee104106c706f6c6b61646f745f72756e74696d655f70617261636861696e7324696e636c7573696f6e1870616c6c65741043616c6c040454000100042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ee504106c706f6c6b61646f745f72756e74696d655f70617261636861696e733870617261735f696e686572656e741870616c6c65741043616c6c04045400010414656e74657204011064617461e904018450617261636861696e73496e686572656e74446174613c543a3a4865616465723e0000043101456e7465722074686520706172617320696e686572656e742e20546869732077696c6c2070726f63657373206269746669656c647320616e64206261636b65642063616e646964617465732e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ee9040c4c706f6c6b61646f745f7072696d69746976657308763130496e686572656e7444617461040c484452011d02001001246269746669656c6473ed040190556e636865636b65645369676e6564417661696c6162696c6974794269746669656c64730001446261636b65645f63616e646964617465730905017c5665633c4261636b656443616e6469646174653c4844523a3a486173683e3e0001206469737075746573310501604d756c74694469737075746553746174656d656e74536574000134706172656e745f6865616465721d02010c4844520000ed04000002f10400f104104c706f6c6b61646f745f7072696d697469766573087631187369676e65643c556e636865636b65645369676e6564081c5061796c6f616401f5042c5265616c5061796c6f616401f504000c011c7061796c6f6164f504011c5061796c6f616400013c76616c696461746f725f696e6465780105013856616c696461746f72496e6465780001247369676e61747572650505014856616c696461746f725369676e61747572650000f5040c4c706f6c6b61646f745f7072696d69746976657308763150417661696c6162696c6974794269746669656c6400000400f904017c4269745665633c6269747665633a3a6f726465723a3a4c7362302c2075383e0000f90400000708fd0400fd040c18626974766563146f72646572104c7362300000000001050c4c706f6c6b61646f745f7072696d6974697665730876303856616c696461746f72496e6465780000040010010c75333200000505104c706f6c6b61646f745f7072696d6974697665730876303476616c696461746f725f617070245369676e6174757265000004005d010148737232353531393a3a5369676e6174757265000009050000020d05000d050c4c706f6c6b61646f745f7072696d6974697665730876313c4261636b656443616e6469646174650404480124000c012463616e64696461746511050170436f6d6d697474656443616e646964617465526563656970743c483e00013876616c69646974795f766f746573290501605665633c56616c69646974794174746573746174696f6e3e00014476616c696461746f725f696e6469636573f904017c4269745665633c6269747665633a3a6f726465723a3a4c7362302c2075383e000011050c4c706f6c6b61646f745f7072696d69746976657308763164436f6d6d697474656443616e6469646174655265636569707404044801240008012864657363726970746f724d01015843616e64696461746544657363726970746f723c483e00012c636f6d6d69746d656e74731505015043616e646964617465436f6d6d69746d656e7473000015050c4c706f6c6b61646f745f7072696d6974697665730876315043616e646964617465436f6d6d69746d656e747304044e01100018013c7570776172645f6d65737361676573c50101485665633c5570776172644d6573736167653e00014c686f72697a6f6e74616c5f6d65737361676573190501705665633c4f7574626f756e6448726d704d6573736167653c49643e3e00014c6e65775f76616c69646174696f6e5f636f6465210501584f7074696f6e3c56616c69646174696f6e436f64653e000124686561645f6461746169010120486561644461746100016c70726f6365737365645f646f776e776172645f6d6573736167657310010c75333200013868726d705f77617465726d61726b1001044e000019050000021d05001d050860706f6c6b61646f745f636f72655f7072696d6974697665734c4f7574626f756e6448726d704d6573736167650408496401510100080124726563697069656e745101010849640001106461746128015073705f7374643a3a7665633a3a5665633c75383e0000210504184f7074696f6e0404540125050108104e6f6e6500000010536f6d6504002505000001000025050c48706f6c6b61646f745f70617261636861696e287072696d6974697665733856616c69646174696f6e436f64650000040028011c5665633c75383e000029050000022d05002d050c4c706f6c6b61646f745f7072696d6974697665730876304c56616c69646974794174746573746174696f6e00010820496d706c6963697404000505014856616c696461746f725369676e6174757265000100204578706c6963697404000505014856616c696461746f725369676e617475726500020000310500000235050035050c4c706f6c6b61646f745f7072696d6974697665730876314c4469737075746553746174656d656e7453657400000c013863616e6469646174655f686173683905013443616e6469646174654861736800011c73657373696f6e10013053657373696f6e496e64657800012873746174656d656e74733d0501ec5665633c284469737075746553746174656d656e742c2056616c696461746f72496e6465782c2056616c696461746f725369676e6174757265293e000039050860706f6c6b61646f745f636f72655f7072696d6974697665733443616e64696461746548617368000004002401104861736800003d0500000241050041050000040c4505010505050045050c4c706f6c6b61646f745f7072696d697469766573087631404469737075746553746174656d656e740001081456616c696404004905016456616c69644469737075746553746174656d656e744b696e640000001c496e76616c696404004d05016c496e76616c69644469737075746553746174656d656e744b696e640001000049050c4c706f6c6b61646f745f7072696d6974697665730876316456616c69644469737075746553746174656d656e744b696e64000110204578706c696369740000003c4261636b696e675365636f6e646564040024011048617368000100304261636b696e6756616c696404002401104861736800020040417070726f76616c436865636b696e67000300004d050c4c706f6c6b61646f745f7072696d6974697665730876316c496e76616c69644469737075746553746174656d656e744b696e64000104204578706c69636974000000005105106c706f6c6b61646f745f72756e74696d655f70617261636861696e731470617261731870616c6c65741043616c6c04045400011458666f7263655f7365745f63757272656e745f636f646508011070617261510101185061726149640001206e65775f636f64652505013856616c69646174696f6e436f6465000004f8536574207468652073746f7261676520666f72207468652070617261636861696e2076616c69646174696f6e20636f646520696d6d6564696174656c792e58666f7263655f7365745f63757272656e745f6865616408011070617261510101185061726149640001206e65775f686561646901012048656164446174610001040101536574207468652073746f7261676520666f72207468652063757272656e742070617261636861696e2068656164206461746120696d6d6564696174656c792e6c666f7263655f7363686564756c655f636f64655f757067726164650c011070617261510101185061726149640001206e65775f636f64652505013856616c69646174696f6e436f646500014c72656c61795f706172656e745f6e756d626572100138543a3a426c6f636b4e756d6265720002042d015363686564756c6520616e207570677261646520617320696620697420776173207363686564756c656420696e2074686520676976656e2072656c617920706172656e7420626c6f636b2e4c666f7263655f6e6f74655f6e65775f6865616408011070617261510101185061726149640001206e65775f686561646901012048656164446174610003041d014e6f74652061206e657720626c6f636b206865616420666f7220706172612077697468696e2074686520636f6e74657874206f66207468652063757272656e7420626c6f636b2e48666f7263655f71756575655f616374696f6e040110706172615101011850617261496400040cf850757420612070617261636861696e206469726563746c7920696e746f20746865206e6578742073657373696f6e277320616374696f6e2071756575652ef457652063616e277420717565756520697420616e7920736f6f6e6572207468616e207468697320776974686f757420676f696e6720696e746f2074686538696e697469616c697a65722e2e2e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e5505106c706f6c6b61646f745f72756e74696d655f70617261636861696e732c696e697469616c697a65721870616c6c65741043616c6c04045400010434666f7263655f617070726f766504011475705f746f10012c426c6f636b4e756d62657200000c390149737375652061207369676e616c20746f2074686520636f6e73656e73757320656e67696e6520746f20666f726369626c79206163742061732074686f75676820616c6c2070617261636861696e5101626c6f636b7320696e20616c6c2072656c617920636861696e20626c6f636b7320757020746f20616e6420696e636c7564696e672074686520676976656e206e756d62657220696e207468652063757272656e74a0636861696e206172652076616c696420616e642073686f756c642062652066696e616c697a65642e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e5905106c706f6c6b61646f745f72756e74696d655f70617261636861696e730c646d701870616c6c65741043616c6c040454000100042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e5d05106c706f6c6b61646f745f72756e74696d655f70617261636861696e730c756d701870616c6c65741043616c6c04045400010448736572766963655f6f766572776569676874080114696e64657820013c4f766572776569676874496e6465780001307765696768745f6c696d6974200118576569676874000030ac5365727669636520612073696e676c65206f76657277656967687420757077617264206d6573736167652e00c02d20606f726967696e603a204d75737420706173732060457865637574654f7665727765696768744f726967696e602ee82d2060696e646578603a2054686520696e646578206f6620746865206f766572776569676874206d65737361676520746f20736572766963652e1d012d20607765696768745f6c696d6974603a2054686520616d6f756e74206f66207765696768742074686174206d65737361676520657865637574696f6e206d61792074616b652e001c4572726f72733adc2d2060556e6b6e6f776e4d657373616765496e646578603a204d657373616765206f662060696e6465786020697320756e6b6e6f776e2e2d012d20605765696768744f7665724c696d6974603a204d65737361676520657865637574696f6e206d6179207573652067726561746572207468616e20607765696768745f6c696d6974602e001c4576656e74733a8c2d20604f7665727765696768745365727669636564603a204f6e20737563636573732e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e6105106c706f6c6b61646f745f72756e74696d655f70617261636861696e731068726d701870616c6c65741043616c6c04045400011c5868726d705f696e69745f6f70656e5f6368616e6e656c0c0124726563697069656e745101011850617261496400015470726f706f7365645f6d61785f636170616369747910010c75333200016470726f706f7365645f6d61785f6d6573736167655f73697a6510010c7533320000284d01496e697469617465206f70656e696e672061206368616e6e656c2066726f6d20612070617261636861696e20746f206120676976656e20726563697069656e74207769746820676976656e206368616e6e656c2c706172616d65746572732e0059012d206070726f706f7365645f6d61785f636170616369747960202d2073706563696669657320686f77206d616e79206d657373616765732063616e20626520696e20746865206368616e6e656c206174206f6e63652e2d012d206070726f706f7365645f6d61785f6d6573736167655f73697a6560202d2073706563696669657320746865206d6178696d756d2073697a65206f6620746865206d657373616765732e0011015468657365206e756d62657273206172652061207375626a65637420746f207468652072656c61792d636861696e20636f6e66696775726174696f6e206c696d6974732e005101546865206368616e6e656c2063616e206265206f70656e6564206f6e6c792061667465722074686520726563697069656e7420636f6e6669726d7320697420616e64206f6e6c79206f6e20612073657373696f6e1c6368616e67652e6068726d705f6163636570745f6f70656e5f6368616e6e656c04011873656e6465725101011850617261496400010cf041636365707420612070656e64696e67206f70656e206368616e6e656c20726571756573742066726f6d2074686520676976656e2073656e6465722e00f4546865206368616e6e656c2077696c6c206265206f70656e6564206f6e6c79206f6e20746865206e6578742073657373696f6e20626f756e646172792e4868726d705f636c6f73655f6368616e6e656c0401286368616e6e656c5f69648901013448726d704368616e6e656c49640002105501496e69746961746520756e696c61746572616c20636c6f73696e67206f662061206368616e6e656c2e20546865206f726967696e206d75737420626520656974686572207468652073656e646572206f722074686598726563697069656e7420696e20746865206368616e6e656c206265696e6720636c6f7365642e00c054686520636c6f737572652063616e206f6e6c792068617070656e206f6e20612073657373696f6e206368616e67652e40666f7263655f636c65616e5f68726d7004011070617261510101185061726149640003141901546869732065787472696e7369632074726967676572732074686520636c65616e7570206f6620616c6c207468652048524d502073746f72616765206974656d7320746861742101612070617261206d617920686176652e204e6f726d616c6c7920746869732068617070656e73206f6e6365207065722073657373696f6e2c20627574207468697320616c6c6f77730101796f7520746f20747269676765722074686520636c65616e757020696d6d6564696174656c7920666f7220612073706563696669632070617261636861696e2e00504f726967696e206d75737420626520526f6f742e5c666f7263655f70726f636573735f68726d705f6f70656e000410a4466f7263652070726f636573732048524d50206f70656e206368616e6e656c2072657175657374732e0005014966207468657265206172652070656e64696e672048524d50206f70656e206368616e6e656c2072657175657374732c20796f752063616e207573652074686973cc66756e6374696f6e2070726f6365737320616c6c206f662074686f736520726571756573747320696d6d6564696174656c792e60666f7263655f70726f636573735f68726d705f636c6f7365000510a8466f7263652070726f636573732048524d5020636c6f7365206368616e6e656c2072657175657374732e0009014966207468657265206172652070656e64696e672048524d5020636c6f7365206368616e6e656c2072657175657374732c20796f752063616e207573652074686973cc66756e6374696f6e2070726f6365737320616c6c206f662074686f736520726571756573747320696d6d6564696174656c792e6068726d705f63616e63656c5f6f70656e5f726571756573740401286368616e6e656c5f69648901013448726d704368616e6e656c49640006145d01546869732063616e63656c7320612070656e64696e67206f70656e206368616e6e656c20726571756573742e2049742063616e2062652063616e63656c656420626520656974686572206f66207468652073656e64657219016f722074686520726563697069656e7420666f72207468617420726571756573742e20546865206f726967696e206d75737420626520656974686572206f662074686f73652e0055015468652063616e63656c6c696e672068617070656e7320696d6d6564696174656c792e204974206973206e6f7420706f737369626c6520746f2063616e63656c20746865207265717565737420696620697420697344616c72656164792061636365707465642e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e6505105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e3c70617261735f7265676973747261721870616c6c65741043616c6c0404540001182072656769737465720c010869645101011850617261496400013067656e657369735f6865616469010120486561644461746100013c76616c69646174696f6e5f636f64652505013856616c69646174696f6e436f6465000038f852656769737465722068656164206461746120616e642076616c69646174696f6e20636f646520666f72206120726573657276656420506172612049642e0030232320417267756d656e7473c02d20606f726967696e603a204d7573742062652063616c6c6564206279206120605369676e656460206f726967696e2e2d012d20606964603a2054686520706172612049442e204d757374206265206f776e65642f6d616e616765642062792074686520606f726967696e60207369676e696e67206163636f756e742e01012d206067656e657369735f68656164603a205468652067656e6573697320686561642064617461206f66207468652070617261636861696e2f7468726561642e25012d206076616c69646174696f6e5f636f6465603a2054686520696e697469616c2076616c69646174696f6e20636f6465206f66207468652070617261636861696e2f7468726561642e00402323204465706f736974732f466565739501546865206f726967696e207369676e6564206163636f756e74206d7573742072657365727665206120636f72726573706f6e64696e67206465706f73697420666f722074686520726567697374726174696f6e2e20416e797468696e6720616c7265616479d872657365727665642070726576696f75736c7920666f7220746869732070617261204944206973206163636f756e74656420666f722e00242323204576656e7473d454686520605265676973746572656460206576656e7420697320656d697474656420696e2063617365206f6620737563636573732e38666f7263655f726567697374657214010c77686f000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e00010869645101011850617261496400013067656e657369735f6865616469010120486561644461746100013c76616c69646174696f6e5f636f64652505013856616c69646174696f6e436f6465000118dc466f7263652074686520726567697374726174696f6e206f6620612050617261204964206f6e207468652072656c617920636861696e2e00b8546869732066756e6374696f6e206d7573742062652063616c6c6564206279206120526f6f74206f726967696e2e001901546865206465706f7369742074616b656e2063616e2062652073706563696669656420666f72207468697320726567697374726174696f6e2e20416e79206050617261496460190163616e20626520726567697374657265642c20696e636c7564696e67207375622d3130303020494473207768696368206172652053797374656d2050617261636861696e732e286465726567697374657204010869645101011850617261496400020c050144657265676973746572206120506172612049642c2066726565696e6720616c6c206461746120616e642072657475726e696e6720616e79206465706f7369742e007d015468652063616c6c6572206d75737420626520526f6f742c2074686520607061726160206f776e65722c206f72207468652060706172616020697473656c662e205468652070617261206d757374206265206120706172617468726561642e10737761700801086964510101185061726149640001146f746865725101011850617261496400032cd85377617020612070617261636861696e207769746820616e6f746865722070617261636861696e206f7220706172617468726561642e000101546865206f726967696e206d75737420626520526f6f742c2074686520607061726160206f776e65722c206f72207468652060706172616020697473656c662e00610154686520737761702077696c6c2068617070656e206f6e6c7920696620746865726520697320616c726561647920616e206f70706f7369746520737761702070656e64696e672e204966207468657265206973206e6f742c590174686520737761702077696c6c2062652073746f72656420696e207468652070656e64696e67207377617073206d61702c20726561647920666f722061206c6174657220636f6e6669726d61746f727920737761702e005d01546865206050617261496460732072656d61696e206d617070656420746f207468652073616d652068656164206461746120616e6420636f646520736f2065787465726e616c20636f64652063616e2072656c79206f6e3d01605061726149646020746f2062652061206c6f6e672d7465726d206964656e746966696572206f662061206e6f74696f6e616c202270617261636861696e222e20486f77657665722c20746865697255017363686564756c696e6720696e666f2028692e652e2077686574686572207468657927726520612070617261746872656164206f722070617261636861696e292c2061756374696f6e20696e666f726d6174696f6e94616e64207468652061756374696f6e206465706f736974206172652073776974636865642e44666f7263655f72656d6f76655f6c6f636b04011070617261510101185061726149640004100d0152656d6f76652061206d616e61676572206c6f636b2066726f6d206120706172612e20546869732077696c6c20616c6c6f7720746865206d616e61676572206f662061350170726576696f75736c79206c6f636b6564207061726120746f2064657265676973746572206f7220737761702061207061726120776974686f7574207573696e6720676f7665726e616e63652e009843616e206f6e6c792062652063616c6c65642062792074686520526f6f74206f726967696e2e1c72657365727665000538945265736572766520612050617261204964206f6e207468652072656c617920636861696e2e004d01546869732066756e6374696f6e2077696c6c20726573657276652061206e6577205061726120496420746f206265206f776e65642f6d616e6167656420627920746865206f726967696e206163636f756e742e7d01546865206f726967696e206163636f756e742069732061626c6520746f2072656769737465722068656164206461746120616e642076616c69646174696f6e20636f6465207573696e67206072656769737465726020746f2063726561746581016120706172617468726561642e205573696e672074686520536c6f74732070616c6c65742c206120706172617468726561642063616e207468656e20626520757067726164656420746f2067657420612070617261636861696e20736c6f742e0030232320417267756d656e747379012d20606f726967696e603a204d7573742062652063616c6c6564206279206120605369676e656460206f726967696e2e204265636f6d657320746865206d616e616765722f6f776e6572206f6620746865206e657720706172612049442e00402323204465706f736974732f466565732101546865206f726967696e206d75737420726573657276652061206465706f736974206f662060506172614465706f7369746020666f722074686520726567697374726174696f6e2e00242323204576656e74736d015468652060526573657276656460206576656e7420697320656d697474656420696e2063617365206f6620737563636573732c2077686963682070726f76696465732074686520494420726573657276656420666f72207573652e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e6905105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e14736c6f74731870616c6c65741043616c6c04045400010c2c666f7263655f6c6561736514011070617261510101185061726149640001186c6561736572000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000130706572696f645f626567696e1001404c65617365506572696f644f663c543e000130706572696f645f636f756e741001404c65617365506572696f644f663c543e00001069014a757374206120636f6e6e65637420696e746f2074686520606c656173655f6f7574602063616c6c2c20696e206361736520526f6f742077616e747320746f20666f72636520736f6d65206c6561736520746f2068617070656ee0696e646570656e64656e746c79206f6620616e79206f74686572206f6e2d636861696e206d656368616e69736d20746f207573652069742e009843616e206f6e6c792062652063616c6c65642062792074686520526f6f74206f726967696e2e40636c6561725f616c6c5f6c6561736573040110706172615101011850617261496400010c4d01436c65617220616c6c206c656173657320666f72206120506172612049642c20726566756e64696e6720616e79206465706f73697473206261636b20746f20746865206f726967696e616c206f776e6572732e009843616e206f6e6c792062652063616c6c65642062792074686520526f6f74206f726967696e2e3c747269676765725f6f6e626f617264040110706172615101011850617261496400021c250154727920746f206f6e626f61726420612070617261636861696e2074686174206861732061206c6561736520666f72207468652063757272656e74206c6561736520706572696f642e004501546869732066756e6374696f6e2063616e2062652075736566756c2069662074686572652077617320736f6d6520737461746520697373756520776974682061207061726120746861742073686f756c64390168617665206f6e626f61726465642c206275742077617320756e61626c6520746f2e204173206c6f6e67206173207468657920686176652061206c6561736520706572696f642c2077652063616e6c6c6574207468656d206f6e626f6172642066726f6d20686572652e00cc4f726967696e206d757374206265207369676e65642c206275742063616e2062652063616c6c656420627920616e796f6e652e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e6d05105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e2061756374696f6e731870616c6c65741043616c6c04045400010c2c6e65775f61756374696f6e0801206475726174696f6ead010138543a3a426c6f636b4e756d6265720001486c656173655f706572696f645f696e646578ad0101404c65617365506572696f644f663c543e000014544372656174652061206e65772061756374696f6e2e005101546869732063616e206f6e6c792068617070656e207768656e2074686572652069736e277420616c726561647920616e2061756374696f6e20696e2070726f677265737320616e64206d6179206f6e6c79206265250163616c6c65642062792074686520726f6f74206f726967696e2e20416363657074732074686520606475726174696f6e60206f6620746869732061756374696f6e20616e64207468655901606c656173655f706572696f645f696e64657860206f662074686520696e697469616c206c6561736520706572696f64206f662074686520666f757220746861742061726520746f2062652061756374696f6e65642e0c626964140110706172617105011850617261496400013461756374696f6e5f696e646578ad01013041756374696f6e496e64657800012866697273745f736c6f74ad0101404c65617365506572696f644f663c543e0001246c6173745f736c6f74ad0101404c65617365506572696f644f663c543e000118616d6f756e74cc013042616c616e63654f663c543e00014049014d616b652061206e6577206269642066726f6d20616e206163636f756e742028696e636c7564696e6720612070617261636861696e206163636f756e742920666f72206465706c6f79696e672061206e65772870617261636861696e2e0059014d756c7469706c652073696d756c74616e656f757320626964732066726f6d207468652073616d65206269646465722061726520616c6c6f776564206f6e6c79206173206c6f6e6720617320616c6c206163746976653d0162696473206f7665726c61702065616368206f746865722028692e652e20617265206d757475616c6c79206578636c7573697665292e20426964732063616e6e6f742062652072656461637465642e0055012d20607375626020697320746865207375622d6269646465722049442c20616c6c6f77696e6720666f72206d756c7469706c6520636f6d706574696e67206269647320746f206265206d6164652062792028616e647066756e64656420627929207468652073616d65206163636f756e742e4d012d206061756374696f6e5f696e646578602069732074686520696e646578206f66207468652061756374696f6e20746f20626964206f6e2e2053686f756c64206a757374206265207468652070726573656e746876616c7565206f66206041756374696f6e436f756e746572602e49012d206066697273745f736c6f746020697320746865206669727374206c6561736520706572696f6420696e646578206f66207468652072616e676520746f20626964206f6e2e20546869732069732074686509016162736f6c757465206c6561736520706572696f6420696e6465782076616c75652c206e6f7420616e2061756374696f6e2d7370656369666963206f66667365742e41012d20606c6173745f736c6f746020697320746865206c617374206c6561736520706572696f6420696e646578206f66207468652072616e676520746f20626964206f6e2e20546869732069732074686509016162736f6c757465206c6561736520706572696f6420696e6465782076616c75652c206e6f7420616e2061756374696f6e2d7370656369666963206f66667365742e49012d2060616d6f756e74602069732074686520616d6f756e7420746f2062696420746f2062652068656c64206173206465706f73697420666f72207468652070617261636861696e2073686f756c6420746865c86269642077696e2e205468697320616d6f756e742069732068656c64207468726f7567686f7574207468652072616e67652e3863616e63656c5f61756374696f6e00020c7843616e63656c20616e20696e2d70726f67726573732061756374696f6e2e008843616e206f6e6c792062652063616c6c656420627920526f6f74206f726967696e2e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e71050000065101007505105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e2463726f77646c6f616e1870616c6c65741043616c6c04045400012018637265617465180114696e6465787105011850617261496400010c636170cc013042616c616e63654f663c543e00013066697273745f706572696f64ad0101404c65617365506572696f644f663c543e00012c6c6173745f706572696f64ad0101404c65617365506572696f644f663c543e00010c656e64ad010138543a3a426c6f636b4e756d62657200012076657269666965727905014c4f7074696f6e3c4d756c74695369676e65723e00001069014372656174652061206e65772063726f77646c6f616e696e672063616d706169676e20666f7220612070617261636861696e20736c6f7420776974682074686520676976656e206c6561736520706572696f642072616e67652e005d0154686973206170706c6965732061206c6f636b20746f20796f75722070617261636861696e20636f6e66696775726174696f6e2c20656e737572696e6720746861742069742063616e6e6f74206265206368616e676564646279207468652070617261636861696e206d616e616765722e28636f6e747269627574650c0114696e6465787105011850617261496400011476616c7565cc013042616c616e63654f663c543e0001247369676e6174757265890501584f7074696f6e3c4d756c74695369676e61747572653e0001085101436f6e7472696275746520746f20612063726f77642073616c652e20546869732077696c6c207472616e7366657220736f6d652062616c616e6365206f76657220746f2066756e6420612070617261636861696e5101736c6f742e2049742077696c6c20626520776974686472617761626c65207768656e207468652063726f77646c6f616e2068617320656e64656420616e64207468652066756e64732061726520756e757365642e20776974686472617708010c77686f000130543a3a4163636f756e744964000114696e64657871050118506172614964000244c057697468647261772066756c6c2062616c616e6365206f66206120737065636966696320636f6e7472696275746f722e00c04f726967696e206d757374206265207369676e65642c206275742063616e20636f6d652066726f6d20616e796f6e652e00ad015468652066756e64206d7573742062652065697468657220696e2c206f7220726561647920666f722c207265746972656d656e742e20466f7220612066756e6420746f206265202a696e2a207265746972656d656e742c207468656e20746865207265746972656d656e74f8666c6167206d757374206265207365742e20466f7220612066756e6420746f20626520726561647920666f72207265746972656d656e742c207468656e3a9c2d206974206d757374206e6f7420616c726561647920626520696e207265746972656d656e743b4d012d2074686520616d6f756e74206f66207261697365642066756e6473206d75737420626520626967676572207468616e20746865205f667265655f2062616c616e6365206f6620746865206163636f756e743b342d20616e64206569746865723abc20202d2074686520626c6f636b206e756d626572206d757374206265206174206c656173742060656e64603b206f722d0120202d207468652063757272656e74206c6561736520706572696f64206d7573742062652067726561746572207468616e207468652066756e64277320606c6173745f706572696f64602e006d01496e207468697320636173652c207468652066756e642773207265746972656d656e7420666c61672069732073657420616e64206974732060656e646020697320726573657420746f207468652063757272656e7420626c6f636b1c6e756d6265722e00f02d206077686f603a20546865206163636f756e742077686f736520636f6e747269627574696f6e2073686f756c642062652077697468647261776e2e19012d2060696e646578603a205468652070617261636861696e20746f2077686f73652063726f77646c6f616e2074686520636f6e747269627574696f6e20776173206d6164652e18726566756e64040114696e64657871050118506172614964000314e04175746f6d61746963616c6c7920726566756e6420636f6e7472696275746f7273206f6620616e20656e6465642063726f77646c6f616e2e210144756520746f20776569676874207265737472696374696f6e732c20746869732066756e6374696f6e206d6179206e65656420746f2062652063616c6c6564206d756c7469706c65490174696d657320746f2066756c6c7920726566756e6420616c6c2075736572732e2057652077696c6c20726566756e64206052656d6f76654b6579734c696d69746020757365727320617420612074696d652e00c04f726967696e206d757374206265207369676e65642c206275742063616e20636f6d652066726f6d20616e796f6e652e20646973736f6c7665040114696e64657871050118506172614964000404550152656d6f766520612066756e6420616674657220746865207265746972656d656e7420706572696f642068617320656e64656420616e6420616c6c2066756e64732068617665206265656e2072657475726e65642e1065646974180114696e6465787105011850617261496400010c636170cc013042616c616e63654f663c543e00013066697273745f706572696f64ad0101404c65617365506572696f644f663c543e00012c6c6173745f706572696f64ad0101404c65617365506572696f644f663c543e00010c656e64ad010138543a3a426c6f636b4e756d62657200012076657269666965727905014c4f7074696f6e3c4d756c74695369676e65723e00050cd0456469742074686520636f6e66696775726174696f6e20666f7220616e20696e2d70726f67726573732063726f77646c6f616e2e008843616e206f6e6c792062652063616c6c656420627920526f6f74206f726967696e2e206164645f6d656d6f080114696e646578510101185061726149640001106d656d6f28011c5665633c75383e00060cec41646420616e206f7074696f6e616c206d656d6f20746f20616e206578697374696e672063726f77646c6f616e20636f6e747269627574696f6e2e002d014f726967696e206d757374206265205369676e65642c20616e64207468652075736572206d757374206861766520636f6e747269627574656420746f207468652063726f77646c6f616e2e10706f6b65040114696e6465785101011850617261496400070c74506f6b65207468652066756e6420696e746f20604e657752616973656000dc4f726967696e206d757374206265205369676e65642c20616e64207468652066756e6420686173206e6f6e2d7a65726f2072616973652e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e790504184f7074696f6e040454017d050108104e6f6e6500000010536f6d6504007d0500000100007d05082873705f72756e74696d652c4d756c74695369676e657200010c1c456432353531390400b0013c656432353531393a3a5075626c69630000001c537232353531390400bc013c737232353531393a3a5075626c696300010014456364736104008105013465636473613a3a5075626c69630002000081050c1c73705f636f7265146563647361185075626c696300000400850501205b75383b2033335d00008505000003210000000800890504184f7074696f6e040454018d050108104e6f6e6500000010536f6d6504008d0500000100008d05082873705f72756e74696d65384d756c74695369676e617475726500010c1c456432353531390400ad020148656432353531393a3a5369676e61747572650000001c5372323535313904005d010148737232353531393a3a5369676e617475726500010014456364736104009105014065636473613a3a5369676e61747572650002000091050c1c73705f636f7265146563647361245369676e617475726500000400110301205b75383b2036355d000095050840706f6c6b61646f745f72756e74696d65304f726967696e43616c6c65720001141873797374656d0400990501746672616d655f73797374656d3a3a4f726967696e3c52756e74696d653e0000001c436f756e63696c04009d0501010170616c6c65745f636f6c6c6563746976653a3a4f726967696e3c52756e74696d652c2070616c6c65745f636f6c6c6563746976653a3a496e7374616e6365313e000f0048546563686e6963616c436f6d6d69747465650400a10501010170616c6c65745f636f6c6c6563746976653a3a4f726967696e3c52756e74696d652c2070616c6c65745f636f6c6c6563746976653a3a496e7374616e6365323e0010004050617261636861696e734f726967696e0400a505016470617261636861696e735f6f726967696e3a3a4f726967696e00320010566f69640400a90501110173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a566f696400040000990508306672616d655f73797374656d245261774f726967696e04244163636f756e7449640100010c10526f6f74000000185369676e656404000001244163636f756e744964000100104e6f6e65000200009d05084470616c6c65745f636f6c6c656374697665245261774f726967696e08244163636f756e7449640100044900010c1c4d656d62657273080010012c4d656d626572436f756e74000010012c4d656d626572436f756e74000000184d656d62657204000001244163636f756e744964000100205f5068616e746f6d00020000a105084470616c6c65745f636f6c6c656374697665245261774f726967696e08244163636f756e7449640100044900010c1c4d656d62657273080010012c4d656d626572436f756e74000010012c4d656d626572436f756e74000000184d656d62657204000001244163636f756e744964000100205f5068616e746f6d00020000a505106c706f6c6b61646f745f72756e74696d655f70617261636861696e73186f726967696e1870616c6c6574184f726967696e0001042450617261636861696e04005101011850617261496400000000a905081c73705f636f726510566f696400010000ad05084070616c6c65745f7363686564756c65722052656c656173657300010808563100000008563200010000b1050c4070616c6c65745f7363686564756c65721870616c6c6574144572726f72040454000110404661696c6564546f5363686564756c65000004644661696c656420746f207363686564756c6520612063616c6c204e6f74466f756e640001047c43616e6e6f742066696e6420746865207363686564756c65642063616c6c2e5c546172676574426c6f636b4e756d626572496e50617374000204a4476976656e2074617267657420626c6f636b206e756d62657220697320696e2074686520706173742e4852657363686564756c654e6f4368616e6765000304f052657363686564756c65206661696c6564206265636175736520697420646f6573206e6f74206368616e6765207363686564756c65642074696d652e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909b50510346672616d655f737570706f72741c73746f72616765407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401b905045300000400bd0501185665633c543e0000b9050000040825022000bd05000002b90500c10510346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e6465645665630804540104045300000400c50501185665633c543e0000c5050000020400c90504184f7074696f6e04045401040108104e6f6e6500000010536f6d650400040000010000cd05084473705f636f6e73656e7375735f62616265584261626545706f6368436f6e66696775726174696f6e00000801046335020128287536342c2075363429000134616c6c6f7765645f736c6f747339020130416c6c6f776564536c6f74730000d1050c2c70616c6c65745f626162651870616c6c6574144572726f7204045400010c60496e76616c696445717569766f636174696f6e50726f6f660000043101416e2065717569766f636174696f6e2070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e60496e76616c69644b65794f776e65727368697050726f6f66000104310141206b6579206f776e6572736869702070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e584475706c69636174654f6666656e63655265706f727400020415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909d5050000040c0018e800d9050c3870616c6c65745f696e64696365731870616c6c6574144572726f720404540001142c4e6f7441737369676e65640000048c54686520696e64657820776173206e6f7420616c72656164792061737369676e65642e204e6f744f776e6572000104a454686520696e6465782069732061737369676e656420746f20616e6f74686572206163636f756e742e14496e5573650002047054686520696e64657820776173206e6f7420617661696c61626c652e2c4e6f745472616e73666572000304c854686520736f7572636520616e642064657374696e6174696f6e206163636f756e747320617265206964656e746963616c2e245065726d616e656e74000404d054686520696e646578206973207065726d616e656e7420616e64206d6179206e6f742062652066726565642f6368616e6765642e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909dd0510346672616d655f737570706f72741c73746f72616765407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401e105045300000400e90501185665633c543e0000e105083c70616c6c65745f62616c616e6365732c42616c616e63654c6f636b041c42616c616e63650118000c01086964f50101384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e636500011c726561736f6e73e505011c526561736f6e730000e505083c70616c6c65745f62616c616e6365731c526561736f6e7300010c0c466565000000104d6973630001000c416c6c00020000e905000002e10500ed0510346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e64656456656308045401f105045300000400f50501185665633c543e0000f105083c70616c6c65745f62616c616e6365732c52657365727665446174610844526573657276654964656e74696669657201f5011c42616c616e63650118000801086964f5010144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e63650000f505000002f10500f905083c70616c6c65745f62616c616e6365732052656c65617365730001081856315f305f300000001856325f305f3000010000fd050c3c70616c6c65745f62616c616e6365731870616c6c6574144572726f720804540004490001203856657374696e6742616c616e63650000049856657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c7565544c69717569646974795265737472696374696f6e73000104c44163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c4c496e73756666696369656e7442616c616e63650002047442616c616e636520746f6f206c6f7720746f2073656e642076616c7565484578697374656e7469616c4465706f736974000304e856616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f736974244b656570416c6976650004048c5472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e745c4578697374696e6756657374696e675363686564756c65000504c8412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742c446561644163636f756e740006048842656e6566696369617279206163636f756e74206d757374207072652d65786973743c546f6f4d616e795265736572766573000704ac4e756d626572206f66206e616d656420726573657276657320657863656564204d6178526573657276657304bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a09090901060c3473705f61726974686d657469632c66697865645f706f696e7424466978656455313238000004001801107531323800000506086870616c6c65745f7472616e73616374696f6e5f7061796d656e742052656c6561736573000108245631416e6369656e740000000856320001000009060000020d06000d060c346672616d655f737570706f72741c7765696768747358576569676874546f466565436f656666696369656e74041c42616c616e6365011800100134636f6566665f696e746567657218011c42616c616e6365000128636f6566665f66726163b901011c50657262696c6c0001206e65676174697665e80110626f6f6c0001186465677265650801087538000011060000021506001506084470616c6c65745f617574686f727368697038556e636c65456e7472794974656d0c2c426c6f636b4e756d62657201101048617368012418417574686f72010001083c496e636c7573696f6e486569676874040010012c426c6f636b4e756d62657200000014556e636c650800240110486173680000f10201384f7074696f6e3c417574686f723e0001000019060c4470616c6c65745f617574686f72736869701870616c6c6574144572726f7204045400011c48496e76616c6964556e636c65506172656e740000048854686520756e636c6520706172656e74206e6f7420696e2074686520636861696e2e40556e636c6573416c726561647953657400010480556e636c657320616c72656164792073657420696e2074686520626c6f636b2e34546f6f4d616e79556e636c657300020440546f6f206d616e7920756e636c65732e3047656e65736973556e636c650003045454686520756e636c652069732067656e657369732e30546f6f48696768556e636c650004047c54686520756e636c6520697320746f6f206869676820696e20636861696e2e50556e636c65416c7265616479496e636c756465640005047854686520756e636c6520697320616c726561647920696e636c756465642e204f6c64556e636c65000604b454686520756e636c652069736e277420726563656e7420656e6f75676820746f20626520696e636c756465642e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a0909091d06083870616c6c65745f7374616b696e67345374616b696e674c656467657208244163636f756e74496401001c42616c616e636501180014011473746173680001244163636f756e744964000114746f74616ccc011c42616c616e6365000118616374697665cc011c42616c616e6365000124756e6c6f636b696e67210601645665633c556e6c6f636b4368756e6b3c42616c616e63653e3e00013c636c61696d65645f72657761726473750201345665633c457261496e6465783e000021060000022506002506083870616c6c65745f7374616b696e672c556e6c6f636b4368756e6b041c42616c616e636501180008011476616c7565cc011c42616c616e636500010c657261ad010120457261496e64657800002906083870616c6c65745f7374616b696e672c4e6f6d696e6174696f6e7304244163636f756e7449640100000c011c74617267657473dc01385665633c4163636f756e7449643e0001307375626d69747465645f696e100120457261496e64657800012873757070726573736564e80110626f6f6c00002d06083870616c6c65745f7374616b696e6734416374697665457261496e666f0000080114696e646578100120457261496e6465780001147374617274d501012c4f7074696f6e3c7536343e00003106000004081000003506083870616c6c65745f7374616b696e673c457261526577617264506f696e747304244163636f756e744964010000080114746f74616c10012c526577617264506f696e74000128696e646976696475616c3906018042547265654d61703c4163636f756e7449642c20526577617264506f696e743e00003906042042547265654d617008044b0100045601100004003d060000003d060000024106004106000004080010004506083870616c6c65745f7374616b696e671c466f7263696e67000110284e6f74466f7263696e6700000020466f7263654e657700010024466f7263654e6f6e650002002c466f726365416c776179730003000049060000024d06004d06083870616c6c65745f7374616b696e6738556e6170706c696564536c61736808244163636f756e74496401001c42616c616e636501180014012476616c696461746f720001244163636f756e74496400010c6f776e18011c42616c616e63650001186f7468657273f401645665633c284163636f756e7449642c2042616c616e6365293e0001247265706f7274657273dc01385665633c4163636f756e7449643e0001187061796f757418011c42616c616e63650000510600000408b901180055060c3870616c6c65745f7374616b696e6720736c617368696e6734536c617368696e675370616e7300001001287370616e5f696e6465781001245370616e496e6465780001286c6173745f7374617274100120457261496e6465780001486c6173745f6e6f6e7a65726f5f736c617368100120457261496e6465780001147072696f72750201345665633c457261496e6465783e000059060c3870616c6c65745f7374616b696e6720736c617368696e67285370616e5265636f7264041c42616c616e636501180008011c736c617368656418011c42616c616e6365000120706169645f6f757418011c42616c616e636500005d06083870616c6c65745f7374616b696e672052656c65617365730001203456315f305f30416e6369656e740000001856325f305f300001001856335f305f300002001856345f305f300003001856355f305f300004001856365f305f300005001856375f305f300006001856385f305f30000700006106103870616c6c65745f7374616b696e671870616c6c65741870616c6c6574144572726f7204045400015c344e6f74436f6e74726f6c6c6572000004644e6f74206120636f6e74726f6c6c6572206163636f756e742e204e6f745374617368000104504e6f742061207374617368206163636f756e742e34416c7265616479426f6e64656400020460537461736820697320616c726561647920626f6e6465642e34416c726561647950616972656400030474436f6e74726f6c6c657220697320616c7265616479207061697265642e30456d7074795461726765747300040460546172676574732063616e6e6f7420626520656d7074792e384475706c6963617465496e646578000504404475706c696361746520696e6465782e44496e76616c6964536c617368496e64657800060484536c617368207265636f726420696e646578206f7574206f6620626f756e64732e40496e73756666696369656e74426f6e64000704cc43616e206e6f7420626f6e6420776974682076616c7565206c657373207468616e206d696e696d756d2072657175697265642e304e6f4d6f72654368756e6b730008049043616e206e6f74207363686564756c65206d6f726520756e6c6f636b206368756e6b732e344e6f556e6c6f636b4368756e6b000904a043616e206e6f74207265626f6e6420776974686f757420756e6c6f636b696e67206368756e6b732e3046756e646564546172676574000a04c8417474656d7074696e6720746f2074617267657420612073746173682074686174207374696c6c206861732066756e64732e48496e76616c6964457261546f526577617264000b0458496e76616c69642065726120746f207265776172642e68496e76616c69644e756d6265724f664e6f6d696e6174696f6e73000c0478496e76616c6964206e756d626572206f66206e6f6d696e6174696f6e732e484e6f74536f72746564416e64556e69717565000d04804974656d7320617265206e6f7420736f7274656420616e6420756e697175652e38416c7265616479436c61696d6564000e0409015265776172647320666f72207468697320657261206861766520616c7265616479206265656e20636c61696d656420666f7220746869732076616c696461746f722e54496e636f7272656374486973746f72794465707468000f04c0496e636f72726563742070726576696f757320686973746f727920646570746820696e7075742070726f76696465642e58496e636f7272656374536c617368696e675370616e73001004b0496e636f7272656374206e756d626572206f6620736c617368696e67207370616e732070726f76696465642e2042616453746174650011043901496e7465726e616c20737461746520686173206265636f6d6520736f6d65686f7720636f7272757074656420616e6420746865206f7065726174696f6e2063616e6e6f7420636f6e74696e75652e38546f6f4d616e795461726765747300120494546f6f206d616e79206e6f6d696e6174696f6e207461726765747320737570706c6965642e244261645461726765740013043d0141206e6f6d696e6174696f6e207461726765742077617320737570706c69656420746861742077617320626c6f636b6564206f72206f7468657277697365206e6f7420612076616c696461746f722e4043616e6e6f744368696c6c4f74686572001404550154686520757365722068617320656e6f75676820626f6e6420616e6420746875732063616e6e6f74206265206368696c6c656420666f72636566756c6c7920627920616e2065787465726e616c20706572736f6e2e44546f6f4d616e794e6f6d696e61746f72730015084d0154686572652061726520746f6f206d616e79206e6f6d696e61746f727320696e207468652073797374656d2e20476f7665726e616e6365206e6565647320746f2061646a75737420746865207374616b696e67b473657474696e677320746f206b656570207468696e6773207361666520666f72207468652072756e74696d652e44546f6f4d616e7956616c696461746f72730016084d0154686572652061726520746f6f206d616e792076616c696461746f727320696e207468652073797374656d2e20476f7665726e616e6365206e6565647320746f2061646a75737420746865207374616b696e67b473657474696e677320746f206b656570207468696e6773207361666520666f72207468652072756e74696d652e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a09090965060c2873705f7374616b696e671c6f6666656e6365384f6666656e636544657461696c7308205265706f727465720100204f6666656e64657201c4000801206f6666656e646572c401204f6666656e6465720001247265706f7274657273dc01345665633c5265706f727465723e00006906000004089828006d06000002710600710600000408008502007506000004087906280079060c1c73705f636f72651863727970746f244b65795479706549640000040038011c5b75383b20345d00007d060c3870616c6c65745f73657373696f6e1870616c6c6574144572726f7204045400011430496e76616c696450726f6f6600000460496e76616c6964206f776e6572736869702070726f6f662e5c4e6f4173736f63696174656456616c696461746f7249640001049c4e6f206173736f6369617465642076616c696461746f7220494420666f72206163636f756e742e344475706c6963617465644b65790002046452656769737465726564206475706c6963617465206b65792e184e6f4b657973000304a44e6f206b65797320617265206173736f63696174656420776974682074686973206163636f756e742e244e6f4163636f756e7400040419014b65792073657474696e67206163636f756e74206973206e6f74206c6976652c20736f206974277320696d706f737369626c6520746f206173736f6369617465206b6579732e04744572726f7220666f72207468652073657373696f6e2070616c6c65742e8106083870616c6c65745f6772616e6470612c53746f726564537461746504044e01100110104c6976650000003050656e64696e6750617573650801307363686564756c65645f61741001044e00011464656c61791001044e000100185061757365640002003450656e64696e67526573756d650801307363686564756c65645f61741001044e00011464656c61791001044e000300008506083870616c6c65745f6772616e6470614c53746f72656450656e64696e674368616e676508044e0110144c696d697400001001307363686564756c65645f61741001044e00011464656c61791001044e0001406e6578745f617574686f7269746965738906016c426f756e646564417574686f726974794c6973743c4c696d69743e000118666f72636564790201244f7074696f6e3c4e3e0000890610346672616d655f737570706f72741c73746f72616765407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401a8045300000400a401185665633c543e00008d060c3870616c6c65745f6772616e6470611870616c6c6574144572726f7204045400011c2c50617573654661696c65640000080501417474656d707420746f207369676e616c204752414e445041207061757365207768656e2074686520617574686f72697479207365742069736e2774206c697665a42865697468657220706175736564206f7220616c72656164792070656e64696e67207061757365292e30526573756d654661696c65640001081101417474656d707420746f207369676e616c204752414e44504120726573756d65207768656e2074686520617574686f72697479207365742069736e277420706175736564a028656974686572206c697665206f7220616c72656164792070656e64696e6720726573756d65292e344368616e676550656e64696e67000204e8417474656d707420746f207369676e616c204752414e445041206368616e67652077697468206f6e6520616c72656164792070656e64696e672e1c546f6f536f6f6e000304bc43616e6e6f74207369676e616c20666f72636564206368616e676520736f20736f6f6e206166746572206c6173742e60496e76616c69644b65794f776e65727368697050726f6f66000404310141206b6579206f776e6572736869702070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e60496e76616c696445717569766f636174696f6e50726f6f660005043101416e2065717569766f636174696f6e2070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e584475706c69636174654f6666656e63655265706f727400060415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909910610346672616d655f737570706f72741c73746f72616765407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401b8045300000400950601185665633c543e00009506000002b800990610346672616d655f737570706f727418747261697473106d69736334577261707065724f7061717565040454019d06000800ad010000009d0601045400009d06084070616c6c65745f696d5f6f6e6c696e6564426f756e6465644f70617175654e6574776f726b53746174650c4c506565724964456e636f64696e674c696d697400584d756c746941646472456e636f64696e674c696d697400384164647265737365734c696d6974000008011c706565725f6964a106019c5765616b426f756e6465645665633c75382c20506565724964456e636f64696e674c696d69743e00014865787465726e616c5f616464726573736573a506012d015765616b426f756e6465645665633c5765616b426f756e6465645665633c75382c204d756c746941646472456e636f64696e674c696d69743e2c204164647265737365734c696d69740a3e0000a10610346672616d655f737570706f72741c73746f72616765407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401080453000004002801185665633c543e0000a50610346672616d655f737570706f72741c73746f72616765407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401a106045300000400a90601185665633c543e0000a906000002a10600ad060c4070616c6c65745f696d5f6f6e6c696e651870616c6c6574144572726f7204045400010828496e76616c69644b6579000004604e6f6e206578697374656e74207075626c6963206b65792e4c4475706c696361746564486561727462656174000104544475706c696361746564206865617274626561742e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909b106000002b50600b5060000040c10240000b90600000408dc1800bd06084070616c6c65745f64656d6f637261637938507265696d6167655374617475730c244163636f756e74496401001c42616c616e636501182c426c6f636b4e756d626572011001081c4d697373696e67040010012c426c6f636b4e756d62657200000024417661696c61626c651401106461746128011c5665633c75383e00012070726f76696465720001244163636f756e74496400011c6465706f73697418011c42616c616e636500011473696e636510012c426c6f636b4e756d6265720001186578706972797902014c4f7074696f6e3c426c6f636b4e756d6265723e00010000c1060c4070616c6c65745f64656d6f6372616379147479706573385265666572656e64756d496e666f0c2c426c6f636b4e756d6265720110104861736801241c42616c616e6365011801081c4f6e676f696e670400c50601b05265666572656e64756d5374617475733c426c6f636b4e756d6265722c20486173682c2042616c616e63653e0000002046696e6973686564080120617070726f766564e80110626f6f6c00010c656e6410012c426c6f636b4e756d62657200010000c5060c4070616c6c65745f64656d6f6372616379147479706573405265666572656e64756d5374617475730c2c426c6f636b4e756d6265720110104861736801241c42616c616e636501180014010c656e6410012c426c6f636b4e756d62657200013470726f706f73616c5f68617368240110486173680001247468726573686f6c64e00134566f74655468726573686f6c6400011464656c617910012c426c6f636b4e756d62657200011474616c6c79c906013854616c6c793c42616c616e63653e0000c9060c4070616c6c65745f64656d6f63726163791474797065731454616c6c79041c42616c616e63650118000c01106179657318011c42616c616e63650001106e61797318011c42616c616e636500011c7475726e6f757418011c42616c616e63650000cd060c4070616c6c65745f64656d6f637261637910766f746518566f74696e670c1c42616c616e63650118244163636f756e74496401002c426c6f636b4e756d62657201100108184469726563740c0114766f746573d10601b05665633c285265666572656e64756d496e6465782c204163636f756e74566f74653c42616c616e63653e293e00012c64656c65676174696f6e73d906015044656c65676174696f6e733c42616c616e63653e0001147072696f72dd06017c5072696f724c6f636b3c426c6f636b4e756d6265722c2042616c616e63653e0000002844656c65676174696e6714011c62616c616e636518011c42616c616e63650001187461726765740001244163636f756e744964000128636f6e76696374696f6ee9020128436f6e76696374696f6e00012c64656c65676174696f6e73d906015044656c65676174696f6e733c42616c616e63653e0001147072696f72dd06017c5072696f724c6f636b3c426c6f636b4e756d6265722c2042616c616e63653e00010000d106000002d50600d5060000040810e10200d9060c4070616c6c65745f64656d6f63726163791474797065732c44656c65676174696f6e73041c42616c616e6365011800080114766f74657318011c42616c616e636500011c6361706974616c18011c42616c616e63650000dd060c4070616c6c65745f64656d6f637261637910766f7465245072696f724c6f636b082c426c6f636b4e756d62657201101c42616c616e6365011800080010012c426c6f636b4e756d626572000018011c42616c616e63650000e1060000040824e000e5060000040810dc00e906084070616c6c65745f64656d6f63726163792052656c656173657300010408563100000000ed060c4070616c6c65745f64656d6f63726163791870616c6c6574144572726f720404540001702056616c75654c6f770000043456616c756520746f6f206c6f773c50726f706f73616c4d697373696e670001045c50726f706f73616c20646f6573206e6f742065786973743c416c726561647943616e63656c65640002049443616e6e6f742063616e63656c207468652073616d652070726f706f73616c207477696365444475706c696361746550726f706f73616c0003045450726f706f73616c20616c7265616479206d6164654c50726f706f73616c426c61636b6c69737465640004046850726f706f73616c207374696c6c20626c61636b6c6973746564444e6f7453696d706c654d616a6f72697479000504a84e6578742065787465726e616c2070726f706f73616c206e6f742073696d706c65206d616a6f726974792c496e76616c69644861736800060430496e76616c69642068617368284e6f50726f706f73616c000704504e6f2065787465726e616c2070726f706f73616c34416c72656164795665746f6564000804984964656e74697479206d6179206e6f74207665746f20612070726f706f73616c207477696365444475706c6963617465507265696d61676500090458507265696d61676520616c7265616479206e6f7465642c4e6f74496d6d696e656e74000a04304e6f7420696d6d696e656e7420546f6f4561726c79000b0424546f6f206561726c7920496d6d696e656e74000c0420496d6d696e656e743c507265696d6167654d697373696e67000d0448507265696d616765206e6f7420666f756e64445265666572656e64756d496e76616c6964000e0484566f746520676976656e20666f7220696e76616c6964207265666572656e64756d3c507265696d616765496e76616c6964000f0440496e76616c696420707265696d6167652c4e6f6e6557616974696e67001004504e6f2070726f706f73616c732077616974696e67204e6f74566f746572001104c454686520676976656e206163636f756e7420646964206e6f7420766f7465206f6e20746865207265666572656e64756d2e304e6f5065726d697373696f6e001204c8546865206163746f7220686173206e6f207065726d697373696f6e20746f20636f6e647563742074686520616374696f6e2e44416c726561647944656c65676174696e6700130488546865206163636f756e7420697320616c72656164792064656c65676174696e672e44496e73756666696369656e7446756e6473001404fc546f6f206869676820612062616c616e6365207761732070726f7669646564207468617420746865206163636f756e742063616e6e6f74206166666f72642e344e6f7444656c65676174696e67001504a0546865206163636f756e74206973206e6f742063757272656e746c792064656c65676174696e672e28566f74657345786973740016085501546865206163636f756e742063757272656e746c792068617320766f74657320617474616368656420746f20697420616e6420746865206f7065726174696f6e2063616e6e6f74207375636365656420756e74696ce87468657365206172652072656d6f7665642c20656974686572207468726f7567682060756e766f746560206f722060726561705f766f7465602e44496e7374616e744e6f74416c6c6f776564001704d854686520696e7374616e74207265666572656e64756d206f726967696e2069732063757272656e746c7920646973616c6c6f7765642e204e6f6e73656e73650018049444656c65676174696f6e20746f206f6e6573656c66206d616b6573206e6f2073656e73652e3c57726f6e675570706572426f756e6400190450496e76616c696420757070657220626f756e642e3c4d6178566f74657352656163686564001a04804d6178696d756d206e756d626572206f6620766f74657320726561636865642e40546f6f4d616e7950726f706f73616c73001b04904d6178696d756d206e756d626572206f662070726f706f73616c7320726561636865642e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909f10610346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e6465645665630804540124045300000400a10101185665633c543e0000f506084470616c6c65745f636f6c6c65637469766514566f74657308244163636f756e74496401002c426c6f636b4e756d626572011000140114696e64657810013450726f706f73616c496e6465780001247468726573686f6c6410012c4d656d626572436f756e7400011061796573dc01385665633c4163636f756e7449643e0001106e617973dc01385665633c4163636f756e7449643e00010c656e6410012c426c6f636b4e756d6265720000f9060c4470616c6c65745f636f6c6c6563746976651870616c6c6574144572726f72080454000449000128244e6f744d656d6265720000045c4163636f756e74206973206e6f742061206d656d626572444475706c696361746550726f706f73616c0001047c4475706c69636174652070726f706f73616c73206e6f7420616c6c6f7765643c50726f706f73616c4d697373696e670002044c50726f706f73616c206d7573742065786973742857726f6e67496e646578000304404d69736d61746368656420696e646578344475706c6963617465566f7465000404584475706c696361746520766f74652069676e6f72656448416c7265616479496e697469616c697a6564000504804d656d626572732061726520616c726561647920696e697469616c697a65642120546f6f4561726c79000604010154686520636c6f73652063616c6c20776173206d61646520746f6f206561726c792c206265666f72652074686520656e64206f662074686520766f74696e672e40546f6f4d616e7950726f706f73616c73000704fc54686572652063616e206f6e6c792062652061206d6178696d756d206f6620604d617850726f706f73616c7360206163746976652070726f706f73616c732e4c57726f6e6750726f706f73616c576569676874000804d054686520676976656e2077656967687420626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e4c57726f6e6750726f706f73616c4c656e677468000904d054686520676976656e206c656e67746820626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909fd0610346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e6465645665630804540124045300000400a10101185665633c543e000001070c4470616c6c65745f636f6c6c6563746976651870616c6c6574144572726f72080454000449000128244e6f744d656d6265720000045c4163636f756e74206973206e6f742061206d656d626572444475706c696361746550726f706f73616c0001047c4475706c69636174652070726f706f73616c73206e6f7420616c6c6f7765643c50726f706f73616c4d697373696e670002044c50726f706f73616c206d7573742065786973742857726f6e67496e646578000304404d69736d61746368656420696e646578344475706c6963617465566f7465000404584475706c696361746520766f74652069676e6f72656448416c7265616479496e697469616c697a6564000504804d656d626572732061726520616c726561647920696e697469616c697a65642120546f6f4561726c79000604010154686520636c6f73652063616c6c20776173206d61646520746f6f206561726c792c206265666f72652074686520656e64206f662074686520766f74696e672e40546f6f4d616e7950726f706f73616c73000704fc54686572652063616e206f6e6c792062652061206d6178696d756d206f6620604d617850726f706f73616c7360206163746976652070726f706f73616c732e4c57726f6e6750726f706f73616c576569676874000804d054686520676976656e2077656967687420626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e4c57726f6e6750726f706f73616c4c656e677468000904d054686520676976656e206c656e67746820626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a09090905070000020907000907086470616c6c65745f656c656374696f6e735f70687261676d656e2853656174486f6c64657208244163636f756e74496401001c42616c616e63650118000c010c77686f0001244163636f756e7449640001147374616b6518011c42616c616e636500011c6465706f73697418011c42616c616e636500000d07086470616c6c65745f656c656374696f6e735f70687261676d656e14566f74657208244163636f756e74496401001c42616c616e63650118000c0114766f746573dc01385665633c4163636f756e7449643e0001147374616b6518011c42616c616e636500011c6465706f73697418011c42616c616e6365000011070c6470616c6c65745f656c656374696f6e735f70687261676d656e1870616c6c6574144572726f7204045400014430556e61626c65546f566f7465000004c043616e6e6f7420766f7465207768656e206e6f2063616e64696461746573206f72206d656d626572732065786973742e1c4e6f566f746573000104944d75737420766f746520666f72206174206c65617374206f6e652063616e6469646174652e30546f6f4d616e79566f7465730002048443616e6e6f7420766f7465206d6f7265207468616e2063616e646964617465732e504d6178696d756d566f74657345786365656465640003049843616e6e6f7420766f7465206d6f7265207468616e206d6178696d756d20616c6c6f7765642e284c6f7742616c616e6365000404c443616e6e6f7420766f74652077697468207374616b65206c657373207468616e206d696e696d756d2062616c616e63652e3c556e61626c65546f506179426f6e6400050478566f7465722063616e206e6f742070617920766f74696e6720626f6e642e2c4d7573744265566f746572000604404d757374206265206120766f7465722e285265706f727453656c660007044c43616e6e6f74207265706f72742073656c662e4c4475706c69636174656443616e646964617465000804804475706c6963617465642063616e646964617465207375626d697373696f6e2e304d656d6265725375626d6974000904884d656d6265722063616e6e6f742072652d7375626d69742063616e6469646163792e3852756e6e657255705375626d6974000a048852756e6e65722063616e6e6f742072652d7375626d69742063616e6469646163792e68496e73756666696369656e7443616e64696461746546756e6473000b049443616e64696461746520646f6573206e6f74206861766520656e6f7567682066756e64732e244e6f744d656d626572000c04344e6f742061206d656d6265722e48496e76616c69645769746e65737344617461000d04e05468652070726f766964656420636f756e74206f66206e756d626572206f662063616e6469646174657320697320696e636f72726563742e40496e76616c6964566f7465436f756e74000e04cc5468652070726f766964656420636f756e74206f66206e756d626572206f6620766f74657320697320696e636f72726563742e44496e76616c696452656e6f756e63696e67000f04fc5468652072656e6f756e63696e67206f726967696e2070726573656e74656420612077726f6e67206052656e6f756e63696e676020706172616d657465722e48496e76616c69645265706c6163656d656e74001004fc50726564696374696f6e20726567617264696e67207265706c6163656d656e74206166746572206d656d6265722072656d6f76616c2069732077726f6e672e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a09090915070c4470616c6c65745f6d656d626572736869701870616c6c6574144572726f7208045400044900010834416c72656164794d656d62657200000444416c72656164792061206d656d6265722e244e6f744d656d626572000104344e6f742061206d656d6265722e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a0909091907083c70616c6c65745f74726561737572792050726f706f73616c08244163636f756e74496401001c42616c616e636501180010012070726f706f7365720001244163636f756e74496400011476616c756518011c42616c616e636500012c62656e65666963696172790001244163636f756e744964000110626f6e6418011c42616c616e636500001d0710346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e6465645665630804540110045300000400750201185665633c543e000021070c3473705f61726974686d65746963287065725f7468696e67731c5065726d696c6c0000040010010c7533320000250708346672616d655f737570706f72742050616c6c6574496400000400f501011c5b75383b20385d000029070c3c70616c6c65745f74726561737572791870616c6c6574144572726f7208045400044900010c70496e73756666696369656e7450726f706f7365727342616c616e63650000047850726f706f73657227732062616c616e636520697320746f6f206c6f772e30496e76616c6964496e646578000104904e6f2070726f706f73616c206f7220626f756e7479206174207468617420696e6465782e40546f6f4d616e79417070726f76616c7300020480546f6f206d616e7920617070726f76616c7320696e207468652071756575652e04784572726f7220666f72207468652074726561737572792070616c6c65742e2d07105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e18636c61696d731870616c6c6574144572726f7204045400011860496e76616c6964457468657265756d5369676e61747572650000046c496e76616c696420457468657265756d207369676e61747572652e405369676e65724861734e6f436c61696d00010478457468657265756d206164647265737320686173206e6f20636c61696d2e4053656e6465724861734e6f436c61696d000204b04163636f756e742049442073656e64696e67207472616e73616374696f6e20686173206e6f20636c61696d2e30506f74556e646572666c6f77000308610154686572652773206e6f7420656e6f75676820696e2074686520706f7420746f20706179206f757420736f6d6520756e76657374656420616d6f756e742e2047656e6572616c6c7920696d706c6965732061206c6f676963186572726f722e40496e76616c696453746174656d656e740004049041206e65656465642073746174656d656e7420776173206e6f7420696e636c756465642e4c56657374656442616c616e6365457869737473000504a4546865206163636f756e7420616c7265616479206861732061207665737465642062616c616e63652e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909310710346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e646564566563080454012903045300000400350701185665633c543e000035070000022903003907083870616c6c65745f76657374696e672052656c6561736573000108085630000000085631000100003d070c3870616c6c65745f76657374696e671870616c6c6574144572726f72040454000114284e6f7456657374696e6700000484546865206163636f756e7420676976656e206973206e6f742076657374696e672e5441744d617856657374696e675363686564756c65730001082501546865206163636f756e7420616c72656164792068617320604d617856657374696e675363686564756c65736020636f756e74206f66207363686564756c657320616e642074687573510163616e6e6f742061646420616e6f74686572206f6e652e20436f6e7369646572206d657267696e67206578697374696e67207363686564756c657320696e206f7264657220746f2061646420616e6f746865722e24416d6f756e744c6f770002040501416d6f756e74206265696e67207472616e7366657272656420697320746f6f206c6f7720746f2063726561746520612076657374696e67207363686564756c652e605363686564756c65496e6465784f75744f66426f756e6473000304d0416e20696e64657820776173206f7574206f6620626f756e6473206f66207468652076657374696e67207363686564756c65732e54496e76616c69645363686564756c65506172616d730004040d014661696c656420746f206372656174652061206e6577207363686564756c65206265636175736520736f6d6520706172616d657465722077617320696e76616c69642e04744572726f7220666f72207468652076657374696e672070616c6c65742e41070c3870616c6c65745f7574696c6974791870616c6c6574144572726f7204045400010430546f6f4d616e7943616c6c730000045c546f6f206d616e792063616c6c7320626174636865642e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a09090945070c3c70616c6c65745f6964656e7469747914747970657330526567697374726174696f6e0c1c42616c616e63650118344d61784a756467656d656e7473004c4d61784164646974696f6e616c4669656c647300000c01286a756467656d656e7473490701fc426f756e6465645665633c28526567697374726172496e6465782c204a756467656d656e743c42616c616e63653e292c204d61784a756467656d656e74733e00011c6465706f73697418011c42616c616e6365000110696e666f390301844964656e74697479496e666f3c4d61784164646974696f6e616c4669656c64733e0000490710346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e646564566563080454014d07045300000400510701185665633c543e00004d070000040810d1030051070000024d070055070000040818590700590710346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e6465645665630804540100045300000400dc01185665633c543e00005d0710346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e646564566563080454016107045300000400690701185665633c543e0000610704184f7074696f6e0404540165070108104e6f6e6500000010536f6d6504006507000001000065070c3c70616c6c65745f6964656e7469747914747970657334526567697374726172496e666f081c42616c616e63650118244163636f756e7449640100000c011c6163636f756e740001244163636f756e74496400010c66656518011c42616c616e63650001186669656c6473c90301384964656e746974794669656c6473000069070000026107006d070c3c70616c6c65745f6964656e746974791870616c6c6574144572726f7204045400014048546f6f4d616e795375624163636f756e74730000045c546f6f206d616e7920737562732d6163636f756e74732e204e6f74466f756e64000104504163636f756e742069736e277420666f756e642e204e6f744e616d6564000204504163636f756e742069736e2774206e616d65642e28456d707479496e64657800030430456d70747920696e6465782e284665654368616e6765640004043c466565206973206368616e6765642e284e6f4964656e74697479000504484e6f206964656e7469747920666f756e642e3c537469636b794a756467656d656e7400060444537469636b79206a756467656d656e742e384a756467656d656e74476976656e000704404a756467656d656e7420676976656e2e40496e76616c69644a756467656d656e7400080448496e76616c6964206a756467656d656e742e30496e76616c6964496e6465780009045454686520696e64657820697320696e76616c69642e34496e76616c6964546172676574000a04585468652074617267657420697320696e76616c69642e34546f6f4d616e794669656c6473000b046c546f6f206d616e79206164646974696f6e616c206669656c64732e44546f6f4d616e7952656769737472617273000c04e84d6178696d756d20616d6f756e74206f66207265676973747261727320726561636865642e2043616e6e6f742061646420616e79206d6f72652e38416c7265616479436c61696d6564000d04704163636f756e7420494420697320616c7265616479206e616d65642e184e6f74537562000e047053656e646572206973206e6f742061207375622d6163636f756e742e204e6f744f776e6564000f04885375622d6163636f756e742069736e2774206f776e65642062792073656e6465722e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a09090971070000040875071800750710346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e6465645665630804540179070453000004007d0701185665633c543e00007907083070616c6c65745f70726f78793c50726f7879446566696e6974696f6e0c244163636f756e74496401002450726f7879547970650121012c426c6f636b4e756d6265720110000c012064656c65676174650001244163636f756e74496400012870726f78795f747970652101012450726f78795479706500011464656c617910012c426c6f636b4e756d62657200007d0700000279070081070000040885071800850710346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e6465645665630804540189070453000004008d0701185665633c543e00008907083070616c6c65745f70726f787930416e6e6f756e63656d656e740c244163636f756e7449640100104861736801242c426c6f636b4e756d6265720110000c01107265616c0001244163636f756e74496400012463616c6c5f686173682401104861736800011868656967687410012c426c6f636b4e756d62657200008d0700000289070091070c3070616c6c65745f70726f78791870616c6c6574144572726f720404540001201c546f6f4d616e79000004210154686572652061726520746f6f206d616e792070726f786965732072656769737465726564206f7220746f6f206d616e7920616e6e6f756e63656d656e74732070656e64696e672e204e6f74466f756e640001047450726f787920726567697374726174696f6e206e6f7420666f756e642e204e6f7450726f7879000204cc53656e646572206973206e6f7420612070726f7879206f6620746865206163636f756e7420746f2062652070726f786965642e2c556e70726f787961626c650003042101412063616c6c20776869636820697320696e636f6d70617469626c652077697468207468652070726f7879207479706527732066696c7465722077617320617474656d707465642e244475706c69636174650004046c4163636f756e7420697320616c726561647920612070726f78792e304e6f5065726d697373696f6e000504150143616c6c206d6179206e6f74206265206d6164652062792070726f78792062656361757365206974206d617920657363616c617465206974732070726976696c656765732e2c556e616e6e6f756e636564000604d0416e6e6f756e63656d656e742c206966206d61646520617420616c6c2c20776173206d61646520746f6f20726563656e746c792e2c4e6f53656c6650726f78790007046443616e6e6f74206164642073656c662061732070726f78792e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a0909099507000004080004009907083c70616c6c65745f6d756c7469736967204d756c74697369670c2c426c6f636b4e756d62657201101c42616c616e63650118244163636f756e7449640100001001107768656e2d01015854696d65706f696e743c426c6f636b4e756d6265723e00011c6465706f73697418011c42616c616e63650001246465706f7369746f720001244163636f756e744964000124617070726f76616c73dc01385665633c4163636f756e7449643e00009d070000040c28001800a1070c3c70616c6c65745f6d756c74697369671870616c6c6574144572726f72040454000138404d696e696d756d5468726573686f6c640000047c5468726573686f6c64206d7573742062652032206f7220677265617465722e3c416c7265616479417070726f766564000104ac43616c6c20697320616c726561647920617070726f7665642062792074686973207369676e61746f72792e444e6f417070726f76616c734e65656465640002049c43616c6c20646f65736e2774206e65656420616e7920286d6f72652920617070726f76616c732e44546f6f4665775369676e61746f72696573000304a854686572652061726520746f6f20666577207369676e61746f7269657320696e20746865206c6973742e48546f6f4d616e795369676e61746f72696573000404ac54686572652061726520746f6f206d616e79207369676e61746f7269657320696e20746865206c6973742e545369676e61746f726965734f75744f664f726465720005040d01546865207369676e61746f7269657320776572652070726f7669646564206f7574206f66206f726465723b20746865792073686f756c64206265206f7264657265642e4c53656e646572496e5369676e61746f726965730006040d015468652073656e6465722077617320636f6e7461696e656420696e20746865206f74686572207369676e61746f726965733b2069742073686f756c646e27742062652e204e6f74466f756e64000704dc4d756c7469736967206f7065726174696f6e206e6f7420666f756e64207768656e20617474656d7074696e6720746f2063616e63656c2e204e6f744f776e65720008042d014f6e6c7920746865206163636f756e742074686174206f726967696e616c6c79206372656174656420746865206d756c74697369672069732061626c6520746f2063616e63656c2069742e2c4e6f54696d65706f696e740009041d014e6f2074696d65706f696e742077617320676976656e2c2079657420746865206d756c7469736967206f7065726174696f6e20697320616c726561647920756e6465727761792e3857726f6e6754696d65706f696e74000a042d014120646966666572656e742074696d65706f696e742077617320676976656e20746f20746865206d756c7469736967206f7065726174696f6e207468617420697320756e6465727761792e4c556e657870656374656454696d65706f696e74000b04f4412074696d65706f696e742077617320676976656e2c20796574206e6f206d756c7469736967206f7065726174696f6e20697320756e6465727761792e3c4d6178576569676874546f6f4c6f77000c04d0546865206d6178696d756d2077656967687420696e666f726d6174696f6e2070726f76696465642077617320746f6f206c6f772e34416c726561647953746f726564000d04a0546865206461746120746f2062652073746f72656420697320616c72656164792073746f7265642e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909a507083c70616c6c65745f626f756e7469657318426f756e74790c244163636f756e74496401001c42616c616e636501182c426c6f636b4e756d62657201100018012070726f706f7365720001244163636f756e74496400011476616c756518011c42616c616e636500010c66656518011c42616c616e636500013c63757261746f725f6465706f73697418011c42616c616e6365000110626f6e6418011c42616c616e6365000118737461747573a9070190426f756e74795374617475733c4163636f756e7449642c20426c6f636b4e756d6265723e0000a907083c70616c6c65745f626f756e7469657330426f756e747953746174757308244163636f756e74496401002c426c6f636b4e756d626572011001182050726f706f73656400000020417070726f7665640001001846756e6465640002003c43757261746f7250726f706f73656404011c63757261746f720001244163636f756e7449640003001841637469766508011c63757261746f720001244163636f756e7449640001287570646174655f64756510012c426c6f636b4e756d6265720004003450656e64696e675061796f75740c011c63757261746f720001244163636f756e74496400012c62656e65666963696172790001244163636f756e744964000124756e6c6f636b5f617410012c426c6f636b4e756d62657200050000ad070c3c70616c6c65745f626f756e746965731870616c6c6574144572726f7204045400012470496e73756666696369656e7450726f706f7365727342616c616e63650000047850726f706f73657227732062616c616e636520697320746f6f206c6f772e30496e76616c6964496e646578000104904e6f2070726f706f73616c206f7220626f756e7479206174207468617420696e6465782e30526561736f6e546f6f4269670002048454686520726561736f6e20676976656e206973206a75737420746f6f206269672e40556e65787065637465645374617475730003048054686520626f756e74792073746174757320697320756e65787065637465642e385265717569726543757261746f720004045c5265717569726520626f756e74792063757261746f722e30496e76616c696456616c756500050454496e76616c696420626f756e74792076616c75652e28496e76616c69644665650006044c496e76616c696420626f756e7479206665652e3450656e64696e675061796f75740007086c4120626f756e7479207061796f75742069732070656e64696e672ef8546f2063616e63656c2074686520626f756e74792c20796f75206d75737420756e61737369676e20616e6420736c617368207468652063757261746f722e245072656d6174757265000804450154686520626f756e746965732063616e6e6f7420626520636c61696d65642f636c6f73656420626563617573652069742773207374696c6c20696e2074686520636f756e74646f776e20706572696f642e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909b107082c70616c6c65745f746970731c4f70656e54697010244163636f756e74496401001c42616c616e636501182c426c6f636b4e756d626572011010486173680124001c0118726561736f6e2401104861736800010c77686f0001244163636f756e74496400011866696e6465720001244163636f756e74496400011c6465706f73697418011c42616c616e6365000118636c6f7365737902014c4f7074696f6e3c426c6f636b4e756d6265723e00011074697073f401645665633c284163636f756e7449642c2042616c616e6365293e00012c66696e646572735f666565e80110626f6f6c0000b5070c2c70616c6c65745f746970731870616c6c6574144572726f7204045400011830526561736f6e546f6f4269670000048454686520726561736f6e20676976656e206973206a75737420746f6f206269672e30416c72656164794b6e6f776e00010488546865207469702077617320616c726561647920666f756e642f737461727465642e28556e6b6e6f776e5469700002046054686520746970206861736820697320756e6b6e6f776e2e244e6f7446696e6465720003041d01546865206163636f756e7420617474656d7074696e6720746f20726574726163742074686520746970206973206e6f74207468652066696e646572206f6620746865207469702e245374696c6c4f70656e0004042901546865207469702063616e6e6f7420626520636c61696d65642f636c6f736564206265636175736520746865726520617265206e6f7420656e6f7567682074697070657273207965742e245072656d61747572650005043101546865207469702063616e6e6f7420626520636c61696d65642f636c6f73656420626563617573652069742773207374696c6c20696e2074686520636f756e74646f776e20706572696f642e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909b907089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173651450686173650408426e011001100c4f6666000000185369676e656400010020556e7369676e65640400bd07012828626f6f6c2c20426e2900020024456d657267656e637900030000bd0700000408e81000c107089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f7068617365345265616479536f6c7574696f6e0404410100000c0120737570706f727473cd04012c537570706f7274733c413e00011473636f7265c1040134456c656374696f6e53636f726500011c636f6d707574653d01013c456c656374696f6e436f6d707574650000c507089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f706861736534526f756e64536e617073686f74040441010000080118766f74657273c90701705665633c28412c20566f74655765696768742c205665633c413e293e00011c74617267657473dc01185665633c413e0000c907000002cd0700cd070000040c0020dc00d10710346672616d655f737570706f72741c73746f7261676544626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b01c10404560110045300000400d507013842547265654d61703c4b2c20563e0000d507042042547265654d617008044b01c10404560110000400d907000000d907000002dd0700dd0700000408c1041000e1070c9070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f7068617365187369676e6564405369676e65645375626d697373696f6e0c244163636f756e74496401001c42616c616e6365011820536f6c7574696f6e01f5030010010c77686f0001244163636f756e74496400011c6465706f73697418011c42616c616e63650001307261775f736f6c7574696f6ef1030154526177536f6c7574696f6e3c536f6c7574696f6e3e00011872657761726418011c42616c616e63650000e5070c9070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173651870616c6c6574144572726f7204045400012c6850726544697370617463684561726c795375626d697373696f6e000004645375626d697373696f6e2077617320746f6f206561726c792e6c507265446973706174636857726f6e6757696e6e6572436f756e740001048857726f6e67206e756d626572206f662077696e6e6572732070726573656e7465642e6450726544697370617463685765616b5375626d697373696f6e000204905375626d697373696f6e2077617320746f6f207765616b2c2073636f72652d776973652e3c5369676e6564517565756546756c6c0003044901546865207175657565207761732066756c6c2c20616e642074686520736f6c7574696f6e20776173206e6f7420626574746572207468616e20616e79206f6620746865206578697374696e67206f6e65732e585369676e656443616e6e6f745061794465706f73697400040494546865206f726967696e206661696c656420746f2070617920746865206465706f7369742e505369676e6564496e76616c69645769746e657373000504a05769746e657373206461746120746f20646973706174636861626c6520697320696e76616c69642e4c5369676e6564546f6f4d756368576569676874000604b8546865207369676e6564207375626d697373696f6e20636f6e73756d657320746f6f206d756368207765696768743c4f637743616c6c57726f6e67457261000704984f4357207375626d697474656420736f6c7574696f6e20666f722077726f6e6720726f756e645c4d697373696e67536e617073686f744d65746164617461000804a8536e617073686f74206d657461646174612073686f756c6420657869737420627574206469646e27742e58496e76616c69645375626d697373696f6e496e646578000904d06053656c663a3a696e736572745f7375626d697373696f6e602072657475726e656420616e20696e76616c696420696e6465782e3843616c6c4e6f74416c6c6f776564000a04985468652063616c6c206973206e6f7420616c6c6f776564206174207468697320706f696e742e040d014572726f72206f66207468652070616c6c657420746861742063616e2062652072657475726e656420696e20726573706f6e736520746f20646973706174636865732ee9070c6c706f6c6b61646f745f72756e74696d655f70617261636861696e7334636f6e66696775726174696f6e44486f7374436f6e66696775726174696f6e042c426c6f636b4e756d626572011000a001346d61785f636f64655f73697a6510010c7533320001486d61785f686561645f646174615f73697a6510010c7533320001586d61785f7570776172645f71756575655f636f756e7410010c7533320001546d61785f7570776172645f71756575655f73697a6510010c75333200015c6d61785f7570776172645f6d6573736167655f73697a6510010c7533320001906d61785f7570776172645f6d6573736167655f6e756d5f7065725f63616e64696461746510010c75333200018868726d705f6d61785f6d6573736167655f6e756d5f7065725f63616e64696461746510010c75333200017076616c69646174696f6e5f757067726164655f6672657175656e637910012c426c6f636b4e756d62657200016076616c69646174696f6e5f757067726164655f64656c617910012c426c6f636b4e756d6265720001306d61785f706f765f73697a6510010c7533320001646d61785f646f776e776172645f6d6573736167655f73697a6510010c753332000160756d705f736572766963655f746f74616c5f77656967687420011857656967687400019068726d705f6d61785f70617261636861696e5f6f7574626f756e645f6368616e6e656c7310010c75333200019468726d705f6d61785f706172617468726561645f6f7574626f756e645f6368616e6e656c7310010c75333200014c68726d705f73656e6465725f6465706f73697418011c42616c616e636500015868726d705f726563697069656e745f6465706f73697418011c42616c616e636500016468726d705f6368616e6e656c5f6d61785f636170616369747910010c75333200016c68726d705f6368616e6e656c5f6d61785f746f74616c5f73697a6510010c75333200018c68726d705f6d61785f70617261636861696e5f696e626f756e645f6368616e6e656c7310010c75333200019068726d705f6d61785f706172617468726561645f696e626f756e645f6368616e6e656c7310010c75333200017468726d705f6368616e6e656c5f6d61785f6d6573736167655f73697a6510010c753332000154636f64655f726574656e74696f6e5f706572696f6410012c426c6f636b4e756d626572000140706172617468726561645f636f72657310010c753332000148706172617468726561645f7265747269657310010c75333200016067726f75705f726f746174696f6e5f6672657175656e637910012c426c6f636b4e756d626572000164636861696e5f617661696c6162696c6974795f706572696f6410012c426c6f636b4e756d6265720001687468726561645f617661696c6162696c6974795f706572696f6410012c426c6f636b4e756d6265720001507363686564756c696e675f6c6f6f6b616865616410010c75333200015c6d61785f76616c696461746f72735f7065725f636f72657902012c4f7074696f6e3c7533323e0001386d61785f76616c696461746f72737902012c4f7074696f6e3c7533323e000138646973707574655f706572696f6410013053657373696f6e496e6465780001a4646973707574655f706f73745f636f6e636c7573696f6e5f616363657074616e63655f706572696f6410012c426c6f636b4e756d626572000158646973707574655f6d61785f7370616d5f736c6f747310010c753332000194646973707574655f636f6e636c7573696f6e5f62795f74696d655f6f75745f706572696f6410012c426c6f636b4e756d6265720001346e6f5f73686f775f736c6f747310010c7533320001406e5f64656c61795f7472616e6368657310010c7533320001687a65726f74685f64656c61795f7472616e6368655f776964746810010c7533320001406e65656465645f617070726f76616c7310010c75333200016072656c61795f7672665f6d6f64756c6f5f73616d706c657310010c753332000164756d705f6d61785f696e646976696475616c5f7765696768742001185765696768740000ed07106c706f6c6b61646f745f72756e74696d655f70617261636861696e7334636f6e66696775726174696f6e1870616c6c6574144572726f720404540001043c496e76616c69644e657756616c7565000004dc546865206e65772076616c756520666f72206120636f6e66696775726174696f6e20706172616d6574657220697320696e76616c69642e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909f107000002010500f507000002890200f9070c6c706f6c6b61646f745f72756e74696d655f70617261636861696e7324696e636c7573696f6e68417661696c6162696c6974794269746669656c645265636f726404044e0110000801206269746669656c64f5040150417661696c6162696c6974794269746669656c640001307375626d69747465645f61741001044e0000fd070c6c706f6c6b61646f745f72756e74696d655f70617261636861696e7324696e636c7573696f6e7043616e64696461746550656e64696e67417661696c6162696c6974790804480124044e011000200110636f72656d010124436f7265496e646578000110686173683905013443616e6469646174654861736800012864657363726970746f724d01015843616e64696461746544657363726970746f723c483e000148617661696c6162696c6974795f766f746573f90401604269745665633c4269744f726465724c7362302c2075383e00011c6261636b657273f90401604269745665633c4269744f726465724c7362302c2075383e00014c72656c61795f706172656e745f6e756d6265721001044e0001406261636b65645f696e5f6e756d6265721001044e0001346261636b696e675f67726f75707101012847726f7570496e64657800000108106c706f6c6b61646f745f72756e74696d655f70617261636861696e7324696e636c7573696f6e1870616c6c6574144572726f720404540001644457726f6e674269746669656c6453697a65000004a8417661696c6162696c697479206269746669656c642068617320756e65787065637465642073697a652e704269746669656c644475706c69636174654f72556e6f7264657265640001044d014d756c7469706c65206269746669656c6473207375626d69747465642062792073616d652076616c696461746f72206f722076616c696461746f7273206f7574206f66206f7264657220627920696e6465782e6456616c696461746f72496e6465784f75744f66426f756e64730002047856616c696461746f7220696e646578206f7574206f6620626f756e64732e60496e76616c69644269746669656c645369676e617475726500030444496e76616c6964207369676e617475726550556e7363686564756c656443616e646964617465000404ac43616e646964617465207375626d6974746564206275742070617261206e6f74207363686564756c65642e8043616e6469646174655363686564756c65644265666f72655061726146726565000504310143616e646964617465207363686564756c656420646573706974652070656e64696e672063616e64696461746520616c7265616479206578697374696e6720666f722074686520706172612e3457726f6e67436f6c6c61746f72000604ac43616e64696461746520696e636c756465642077697468207468652077726f6e6720636f6c6c61746f722e4c5363686564756c65644f75744f664f72646572000704745363686564756c656420636f726573206f7574206f66206f726465722e404865616444617461546f6f4c61726765000804a448656164206461746120657863656564732074686520636f6e66696775726564206d6178696d756d2e505072656d6174757265436f64655570677261646500090464436f64652075706772616465207072656d61747572656c792e3c4e6577436f6465546f6f4c61726765000a04604f757470757420636f646520697320746f6f206c617267656c43616e6469646174654e6f74496e506172656e74436f6e74657874000b048043616e646964617465206e6f7420696e20706172656e7420636f6e746578742e5c556e6f63637570696564426974496e4269746669656c64000c042101546865206269746669656c6420636f6e7461696e732061206269742072656c6174696e6720746f20616e20756e61737369676e656420617661696c6162696c69747920636f72652e44496e76616c696447726f7570496e646578000d049c496e76616c69642067726f757020696e64657820696e20636f72652061737369676e6d656e742e4c496e73756666696369656e744261636b696e67000e0490496e73756666696369656e7420286e6f6e2d6d616a6f7269747929206261636b696e672e38496e76616c69644261636b696e67000f04e4496e76616c69642028626164207369676e61747572652c20756e6b6e6f776e2076616c696461746f722c206574632e29206261636b696e672e444e6f74436f6c6c61746f725369676e656400100468436f6c6c61746f7220646964206e6f74207369676e20506f562e6856616c69646174696f6e44617461486173684d69736d61746368001104c45468652076616c69646174696f6e2064617461206861736820646f6573206e6f74206d617463682065787065637465642e34496e7465726e616c4572726f720012040501496e7465726e616c206572726f72206f6e6c792072657475726e6564207768656e20636f6d70696c6564207769746820646562756720617373657274696f6e732e80496e636f7272656374446f776e776172644d65737361676548616e646c696e67001304d854686520646f776e77617264206d657373616765207175657565206973206e6f742070726f63657373656420636f72726563746c792e54496e76616c69645570776172644d657373616765730014041d014174206c65617374206f6e6520757077617264206d6573736167652073656e7420646f6573206e6f7420706173732074686520616363657074616e63652063726974657269612e6048726d7057617465726d61726b4d697368616e646c696e6700150411015468652063616e646964617465206469646e277420666f6c6c6f77207468652072756c6573206f662048524d502077617465726d61726b20616476616e63656d656e742e4c496e76616c69644f7574626f756e6448726d70001604d45468652048524d50206d657373616765732073656e74206279207468652063616e646964617465206973206e6f742076616c69642e64496e76616c696456616c69646174696f6e436f646548617368001704dc5468652076616c69646174696f6e20636f64652068617368206f66207468652063616e646964617465206973206e6f742076616c69642e4050617261486561644d69736d6174636800180899015468652060706172615f6865616460206861736820696e207468652063616e6469646174652064657363726970746f7220646f65736e2774206d61746368207468652068617368206f66207468652061637475616c2070617261206865616420696e2074686530636f6d6d69746d656e74732e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a0909090508106c706f6c6b61646f745f72756e74696d655f70617261636861696e733870617261735f696e686572656e741870616c6c6574144572726f7204045400010c64546f6f4d616e79496e636c7573696f6e496e686572656e7473000004cc496e636c7573696f6e20696e686572656e742063616c6c6564206d6f7265207468616e206f6e63652070657220626c6f636b2e4c496e76616c6964506172656e7448656164657200010855015468652068617368206f6620746865207375626d697474656420706172656e742068656164657220646f65736e277420636f72726573706f6e6420746f2074686520736176656420626c6f636b2068617368206f662c74686520706172656e742e6443616e646964617465436f6e636c75646564496e76616c6964000204b844697370757465642063616e64696461746520746861742077617320636f6e636c7564656420696e76616c69642e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a0909090908000002f107000d080c6c706f6c6b61646f745f72756e74696d655f70617261636861696e73247363686564756c65725050617261746872656164436c61696d517565756500000801147175657565110801545665633c517565756564506172617468726561643e0001406e6578745f636f72655f6f666673657410010c7533320000110800000215080015080c6c706f6c6b61646f745f72756e74696d655f70617261636861696e73247363686564756c657240517565756564506172617468726561640000080114636c61696d1908013c50617261746872656164456e74727900012c636f72655f6f666673657410010c753332000019080c4c706f6c6b61646f745f7072696d6974697665730876313c50617261746872656164456e7472790000080114636c61696d1d08013c50617261746872656164436c61696d00011c7265747269657310010c75333200001d080c4c706f6c6b61646f745f7072696d6974697665730876313c50617261746872656164436c61696d00000800510101084964000055010128436f6c6c61746f72496400002108000002250800250804184f7074696f6e0404540129080108104e6f6e6500000010536f6d6504002908000001000029080c4c706f6c6b61646f745f7072696d69746976657308763130436f72654f63637570696564000108285061726174687265616404001908013c50617261746872656164456e7472790000002450617261636861696e000100002d08000002510100310800000235080035080c6c706f6c6b61646f745f72756e74696d655f70617261636861696e73247363686564756c657238436f726541737369676e6d656e740000100110636f72656d010124436f7265496e64657800011c706172615f6964510101185061726149640001106b696e643908013841737369676e6d656e744b696e6400012467726f75705f6964787101012847726f7570496e646578000039080c6c706f6c6b61646f745f72756e74696d655f70617261636861696e73247363686564756c65723841737369676e6d656e744b696e640001082450617261636861696e0000002850617261746872656164080055010128436f6c6c61746f724964000010010c753332000100003d080c6c706f6c6b61646f745f72756e74696d655f70617261636861696e7314706172617334506172614c6966656379636c6500011c284f6e626f617264696e6700000028506172617468726561640001002450617261636861696e0002004c557067726164696e675061726174687265616400030050446f776e67726164696e6750617261636861696e000400544f6666626f617264696e6750617261746872656164000500504f6666626f617264696e6750617261636861696e000600004108000004085101100045080c6c706f6c6b61646f745f72756e74696d655f70617261636861696e73147061726173405061726150617374436f64654d65746104044e011000080134757067726164655f74696d6573490801605665633c5265706c6163656d656e7454696d65733c4e3e3e00012c6c6173745f7072756e6564790201244f7074696f6e3c4e3e000049080000024d08004d080c6c706f6c6b61646f745f72756e74696d655f70617261636861696e73147061726173405265706c6163656d656e7454696d657304044e01100008012c65787065637465645f61741001044e0001306163746976617465645f61741001044e0000510800000241080055080c4c706f6c6b61646f745f7072696d6974697665730876313855706772616465476f41686561640001081441626f72740000001c476f41686561640001000059080c4c706f6c6b61646f745f7072696d69746976657308763148557067726164655265737472696374696f6e0001041c50726573656e74000000005d080c6c706f6c6b61646f745f72756e74696d655f70617261636861696e731470617261733c5061726147656e657369734172677300000c013067656e657369735f6865616469010120486561644461746100013c76616c69646174696f6e5f636f64652505013856616c69646174696f6e436f646500012470617261636861696ee80110626f6f6c00006108106c706f6c6b61646f745f72756e74696d655f70617261636861696e731470617261731870616c6c6574144572726f72040454000114344e6f74526567697374657265640000049450617261206973206e6f74207265676973746572656420696e206f75722073797374656d2e3443616e6e6f744f6e626f6172640001041501506172612063616e6e6f74206265206f6e626f6172646564206265636175736520697420697320616c726561647920747261636b6564206279206f75722073797374656d2e3843616e6e6f744f6666626f6172640002049c506172612063616e6e6f74206265206f6666626f617264656420617420746869732074696d652e3443616e6e6f74557067726164650003049c506172612063616e6e6f7420626520757067726164656420746f20612070617261636861696e2e3c43616e6e6f74446f776e6772616465000404a8506172612063616e6e6f7420626520646f776e67726164656420746f206120706172617468726561642e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909650800000269080069080c6c706f6c6b61646f745f72756e74696d655f70617261636861696e732c696e697469616c697a657254427566666572656453657373696f6e4368616e676500000c012876616c696461746f7273f50701405665633c56616c696461746f7249643e000118717565756564f50701405665633c56616c696461746f7249643e00013473657373696f6e5f696e64657810013053657373696f6e496e64657800006d0800000271080071080860706f6c6b61646f745f636f72655f7072696d69746976657358496e626f756e64446f776e776172644d657373616765042c426c6f636b4e756d62657201100008011c73656e745f617410012c426c6f636b4e756d62657200010c6d736728013c446f776e776172644d6573736167650000750800000408510128007908106c706f6c6b61646f745f72756e74696d655f70617261636861696e730c756d701870616c6c6574144572726f720404540001084c556e6b6e6f776e4d657373616765496e6465780000048c546865206d65737361676520696e64657820676976656e20697320756e6b6e6f776e2e3c5765696768744f7665724c696d6974000104310154686520616d6f756e74206f662077656967687420676976656e20697320706f737369626c79206e6f7420656e6f75676820666f7220657865637574696e6720746865206d6573736167652e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a0909097d080c6c706f6c6b61646f745f72756e74696d655f70617261636861696e731068726d705848726d704f70656e4368616e6e656c526571756573740000180124636f6e6669726d6564e80110626f6f6c0001105f61676510013053657373696f6e496e64657800013873656e6465725f6465706f73697418011c42616c616e63650001406d61785f6d6573736167655f73697a6510010c7533320001306d61785f636170616369747910010c7533320001386d61785f746f74616c5f73697a6510010c7533320000810800000289010085080c6c706f6c6b61646f745f72756e74696d655f70617261636861696e731068726d702c48726d704368616e6e656c00002001306d61785f636170616369747910010c7533320001386d61785f746f74616c5f73697a6510010c7533320001406d61785f6d6573736167655f73697a6510010c7533320001246d73675f636f756e7410010c753332000128746f74616c5f73697a6510010c7533320001206d71635f68656164890801304f7074696f6e3c486173683e00013873656e6465725f6465706f73697418011c42616c616e6365000144726563697069656e745f6465706f73697418011c42616c616e63650000890804184f7074696f6e04045401240108104e6f6e6500000010536f6d6504002400000100008d0800000291080091080860706f6c6b61646f745f636f72655f7072696d69746976657348496e626f756e6448726d704d657373616765042c426c6f636b4e756d62657201100008011c73656e745f617410012c426c6f636b4e756d6265720001106461746128015073705f7374643a3a7665633a3a5665633c75383e00009508000002990800990800000408102d08009d08106c706f6c6b61646f745f72756e74696d655f70617261636861696e731068726d701870616c6c6574144572726f72040454000148544f70656e48726d704368616e6e656c546f53656c66000004c45468652073656e64657220747269656420746f206f70656e2061206368616e6e656c20746f207468656d73656c7665732e7c4f70656e48726d704368616e6e656c496e76616c6964526563697069656e740001048854686520726563697069656e74206973206e6f7420612076616c696420706172612e6c4f70656e48726d704368616e6e656c5a65726f43617061636974790002047c54686520726571756573746564206361706163697479206973207a65726f2e8c4f70656e48726d704368616e6e656c4361706163697479457863656564734c696d6974000304c05468652072657175657374656420636170616369747920657863656564732074686520676c6f62616c206c696d69742e784f70656e48726d704368616e6e656c5a65726f4d65737361676553697a65000404a054686520726571756573746564206d6178696d756d206d6573736167652073697a6520697320302e984f70656e48726d704368616e6e656c4d65737361676553697a65457863656564734c696d69740005042901546865206f70656e20726571756573742072657175657374656420746865206d6573736167652073697a65207468617420657863656564732074686520676c6f62616c206c696d69742e704f70656e48726d704368616e6e656c416c726561647945786973747300060468546865206368616e6e656c20616c7265616479206578697374737c4f70656e48726d704368616e6e656c416c7265616479526571756573746564000704d0546865726520697320616c72656164792061207265717565737420746f206f70656e207468652073616d65206368616e6e656c2e704f70656e48726d704368616e6e656c4c696d697445786365656465640008041d015468652073656e64657220616c72656164792068617320746865206d6178696d756d206e756d626572206f6620616c6c6f776564206f7574626f756e64206368616e6e656c732e7041636365707448726d704368616e6e656c446f65736e744578697374000904e0546865206368616e6e656c2066726f6d207468652073656e64657220746f20746865206f726967696e20646f65736e27742065786973742e8441636365707448726d704368616e6e656c416c7265616479436f6e6669726d6564000a0484546865206368616e6e656c20697320616c726561647920636f6e6669726d65642e7841636365707448726d704368616e6e656c4c696d69744578636565646564000b04250154686520726563697069656e7420616c72656164792068617320746865206d6178696d756d206e756d626572206f6620616c6c6f77656420696e626f756e64206368616e6e656c732e70436c6f736548726d704368616e6e656c556e617574686f72697a6564000c045501546865206f726967696e20747269657320746f20636c6f73652061206368616e6e656c207768657265206974206973206e656974686572207468652073656e646572206e6f722074686520726563697069656e742e6c436c6f736548726d704368616e6e656c446f65736e744578697374000d049c546865206368616e6e656c20746f20626520636c6f73656420646f65736e27742065786973742e7c436c6f736548726d704368616e6e656c416c7265616479556e646572776179000e04bc546865206368616e6e656c20636c6f7365207265717565737420697320616c7265616479207265717565737465642e8443616e63656c48726d704f70656e4368616e6e656c556e617574686f72697a6564000f045d0143616e63656c696e6720697320726571756573746564206279206e656974686572207468652073656e646572206e6f7220726563697069656e74206f6620746865206f70656e206368616e6e656c20726571756573742e684f70656e48726d704368616e6e656c446f65736e7445786973740010047c546865206f70656e207265717565737420646f65736e27742065786973742e7c4f70656e48726d704368616e6e656c416c7265616479436f6e6669726d65640011042d0143616e6e6f742063616e63656c20616e2048524d50206f70656e206368616e6e656c2072657175657374206265636175736520697420697320616c726561647920636f6e6669726d65642e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909a1080000028d0200a5080c4c706f6c6b61646f745f7072696d6974697665730876312c53657373696f6e496e666f000028012876616c696461746f7273f50701405665633c56616c696461746f7249643e000138646973636f766572795f6b657973a90801645665633c417574686f72697479446973636f7665727949643e00013c61737369676e6d656e745f6b657973a10801445665633c41737369676e6d656e7449643e00014076616c696461746f725f67726f757073090801605665633c5665633c56616c696461746f72496e6465783e3e00011c6e5f636f72657310010c7533320001687a65726f74685f64656c61795f7472616e6368655f776964746810010c75333200016072656c61795f7672665f6d6f64756c6f5f73616d706c657310010c7533320001406e5f64656c61795f7472616e6368657310010c7533320001346e6f5f73686f775f736c6f747310010c7533320001406e65656465645f617070726f76616c7310010c7533320000a908000002910200ad080c5c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e3c70617261735f7265676973747261722050617261496e666f081c4163636f756e7401001c42616c616e63650118000c011c6d616e6167657200011c4163636f756e7400011c6465706f73697418011c42616c616e63650001186c6f636b6564e80110626f6f6c0000b108105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e3c70617261735f7265676973747261721870616c6c6574144572726f72040454000130344e6f745265676973746572656400000464546865204944206973206e6f7420726567697374657265642e44416c7265616479526567697374657265640001047454686520494420697320616c726561647920726567697374657265642e204e6f744f776e65720002049c5468652063616c6c6572206973206e6f7420746865206f776e6572206f6620746869732049642e30436f6465546f6f4c617267650003045c496e76616c6964207061726120636f64652073697a652e404865616444617461546f6f4c6172676500040470496e76616c69642070617261206865616420646174612073697a652e304e6f7450617261636861696e0005046050617261206973206e6f7420612050617261636861696e2e344e6f74506172617468726561640006046450617261206973206e6f74206120506172617468726561642e4043616e6e6f74446572656769737465720007045843616e6e6f74206465726567697374657220706172613c43616e6e6f74446f776e6772616465000804d043616e6e6f74207363686564756c6520646f776e6772616465206f662070617261636861696e20746f20706172617468726561643443616e6e6f7455706772616465000904c843616e6e6f74207363686564756c652075706772616465206f66207061726174687265616420746f2070617261636861696e28506172614c6f636b6564000a04790150617261206973206c6f636b65642066726f6d206d616e6970756c6174696f6e20627920746865206d616e616765722e204d757374207573652070617261636861696e206f722072656c617920636861696e20676f7665726e616e63652e2c4e6f745265736572766564000b04d054686520494420676976656e20666f7220726567697374726174696f6e20686173206e6f74206265656e2072657365727665642e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909b508000002b90800b90804184f7074696f6e04045401f80108104e6f6e6500000010536f6d650400f80000010000bd08105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e14736c6f74731870616c6c6574144572726f7204045400010844506172614e6f744f6e626f617264696e670000048c5468652070617261636861696e204944206973206e6f74206f6e626f617264696e672e284c656173654572726f720001048854686572652077617320616e206572726f72207769746820746865206c656173652e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909c1080000040800510100c50800000324000000c90800c90804184f7074696f6e04045401cd080108104e6f6e6500000010536f6d650400cd080000010000cd080000040c0051011800d108105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e2061756374696f6e731870616c6c6574144572726f7204045400011c4441756374696f6e496e50726f677265737300000490546869732061756374696f6e20697320616c726561647920696e2070726f67726573732e444c65617365506572696f64496e5061737400010480546865206c6561736520706572696f6420697320696e2074686520706173742e44506172614e6f74526567697374657265640002045850617261206973206e6f742072656769737465726564444e6f7443757272656e7441756374696f6e000304584e6f7420612063757272656e742061756374696f6e2e284e6f7441756374696f6e0004043c4e6f7420616e2061756374696f6e2e3041756374696f6e456e6465640005046841756374696f6e2068617320616c726561647920656e6465642e40416c72656164794c65617365644f7574000604d8546865207061726120697320616c7265616479206c6561736564206f757420666f722070617274206f6620746869732072616e67652e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909d5080c5c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e2463726f77646c6f616e2046756e64496e666f10244163636f756e74496401001c42616c616e636501182c426c6f636b4e756d62657201102c4c65617365506572696f640110002801246465706f7369746f720001244163636f756e74496400012076657269666965727905014c4f7074696f6e3c4d756c74695369676e65723e00011c6465706f73697418011c42616c616e636500011872616973656418011c42616c616e636500010c656e6410012c426c6f636b4e756d62657200010c63617018011c42616c616e63650001446c6173745f636f6e747269627574696f6ed90801744c617374436f6e747269627574696f6e3c426c6f636b4e756d6265723e00013066697273745f706572696f6410012c4c65617365506572696f6400012c6c6173745f706572696f6410012c4c65617365506572696f64000128747269655f696e64657810012454726965496e6465780000d9080c5c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e2463726f77646c6f616e404c617374436f6e747269627574696f6e042c426c6f636b4e756d6265720110010c144e6576657200000024507265456e64696e67040010010c75333200010018456e64696e67040010012c426c6f636b4e756d62657200020000dd08105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e2463726f77646c6f616e1870616c6c6574144572726f7204045400015c444669727374506572696f64496e50617374000004f45468652063757272656e74206c6561736520706572696f64206973206d6f7265207468616e20746865206669727374206c6561736520706572696f642e644669727374506572696f64546f6f466172496e4675747572650001041101546865206669727374206c6561736520706572696f64206e6565647320746f206174206c65617374206265206c657373207468616e203320606d61785f76616c7565602e6c4c617374506572696f644265666f72654669727374506572696f64000204e84c617374206c6561736520706572696f64206d7573742062652067726561746572207468616e206669727374206c6561736520706572696f642e604c617374506572696f64546f6f466172496e4675747572650003042d01546865206c617374206c6561736520706572696f642063616e6e6f74206265206d6f7265207468616e203320706572696f64732061667465722074686520666972737420706572696f642e3c43616e6e6f74456e64496e5061737400040445015468652063616d706169676e20656e6473206265666f7265207468652063757272656e7420626c6f636b206e756d6265722e2054686520656e64206d75737420626520696e20746865206675747572652e44456e64546f6f466172496e467574757265000504c054686520656e64206461746520666f7220746869732063726f77646c6f616e206973206e6f742073656e7369626c652e204f766572666c6f770006045854686572652077617320616e206f766572666c6f772e50436f6e747269627574696f6e546f6f536d616c6c000704e854686520636f6e747269627574696f6e207761732062656c6f7720746865206d696e696d756d2c20604d696e436f6e747269627574696f6e602e34496e76616c69645061726149640008044c496e76616c69642066756e6420696e6465782e2c436170457863656564656400090490436f6e747269627574696f6e7320657863656564206d6178696d756d20616d6f756e742e58436f6e747269627574696f6e506572696f644f766572000a04a854686520636f6e747269627574696f6e20706572696f642068617320616c726561647920656e6465642e34496e76616c69644f726967696e000b048c546865206f726967696e206f6620746869732063616c6c20697320696e76616c69642e304e6f7450617261636861696e000c04c8546869732063726f77646c6f616e20646f6573206e6f7420636f72726573706f6e6420746f20612070617261636861696e2e2c4c65617365416374697665000d041501546869732070617261636861696e206c65617365206973207374696c6c2061637469766520616e64207265746972656d656e742063616e6e6f742079657420626567696e2e404269644f724c65617365416374697665000e043101546869732070617261636861696e277320626964206f72206c65617365206973207374696c6c2061637469766520616e642077697468647261772063616e6e6f742079657420626567696e2e3046756e644e6f74456e646564000f04805468652063726f77646c6f616e20686173206e6f742079657420656e6465642e3c4e6f436f6e747269627574696f6e73001004d0546865726520617265206e6f20636f6e747269627574696f6e732073746f72656420696e20746869732063726f77646c6f616e2e484e6f745265616479546f446973736f6c766500110475015468652063726f77646c6f616e206973206e6f7420726561647920746f20646973736f6c76652e20506f74656e7469616c6c79207374696c6c20686173206120736c6f74206f7220696e207265746972656d656e7420706572696f642e40496e76616c69645369676e617475726500120448496e76616c6964207369676e61747572652e304d656d6f546f6f4c617267650013047c5468652070726f7669646564206d656d6f20697320746f6f206c617267652e44416c7265616479496e4e65775261697365001404845468652066756e6420697320616c726561647920696e20604e65775261697365604856726644656c6179496e50726f6772657373001504b44e6f20636f6e747269627574696f6e7320616c6c6f77656420647572696e6720746865205652462064656c6179344e6f4c65617365506572696f640016042d0141206c6561736520706572696f6420686173206e6f742073746172746564207965742c2064756520746f20616e206f666673657420696e20746865207374617274696e6720626c6f636b2e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909e108102873705f72756e74696d651c67656e657269634c756e636865636b65645f65787472696e73696348556e636865636b656445787472696e736963101c41646472657373014d021043616c6c010902245369676e6174757265018d0514457874726101e50800040028000000e50800000420e908ed08f108f508fd0801090509090900e90810306672616d655f73797374656d28657874656e73696f6e7348636865636b5f737065635f76657273696f6e40436865636b5370656356657273696f6e04045400000000ed0810306672616d655f73797374656d28657874656e73696f6e7340636865636b5f74785f76657273696f6e38436865636b547856657273696f6e04045400000000f10810306672616d655f73797374656d28657874656e73696f6e7334636865636b5f67656e6573697330436865636b47656e6573697304045400000000f50810306672616d655f73797374656d28657874656e73696f6e733c636865636b5f6d6f7274616c69747938436865636b4d6f7274616c69747904045400000400f908010c4572610000f908102873705f72756e74696d651c67656e657269630c6572610c4572610001010420496d6d6f7274616c0000001c4d6f7274616c31040008000001001c4d6f7274616c32040008000002001c4d6f7274616c33040008000003001c4d6f7274616c34040008000004001c4d6f7274616c35040008000005001c4d6f7274616c36040008000006001c4d6f7274616c37040008000007001c4d6f7274616c38040008000008001c4d6f7274616c3904000800000900204d6f7274616c313004000800000a00204d6f7274616c313104000800000b00204d6f7274616c313204000800000c00204d6f7274616c313304000800000d00204d6f7274616c313404000800000e00204d6f7274616c313504000800000f00204d6f7274616c313604000800001000204d6f7274616c313704000800001100204d6f7274616c313804000800001200204d6f7274616c313904000800001300204d6f7274616c323004000800001400204d6f7274616c323104000800001500204d6f7274616c323204000800001600204d6f7274616c323304000800001700204d6f7274616c323404000800001800204d6f7274616c323504000800001900204d6f7274616c323604000800001a00204d6f7274616c323704000800001b00204d6f7274616c323804000800001c00204d6f7274616c323904000800001d00204d6f7274616c333004000800001e00204d6f7274616c333104000800001f00204d6f7274616c333204000800002000204d6f7274616c333304000800002100204d6f7274616c333404000800002200204d6f7274616c333504000800002300204d6f7274616c333604000800002400204d6f7274616c333704000800002500204d6f7274616c333804000800002600204d6f7274616c333904000800002700204d6f7274616c343004000800002800204d6f7274616c343104000800002900204d6f7274616c343204000800002a00204d6f7274616c343304000800002b00204d6f7274616c343404000800002c00204d6f7274616c343504000800002d00204d6f7274616c343604000800002e00204d6f7274616c343704000800002f00204d6f7274616c343804000800003000204d6f7274616c343904000800003100204d6f7274616c353004000800003200204d6f7274616c353104000800003300204d6f7274616c353204000800003400204d6f7274616c353304000800003500204d6f7274616c353404000800003600204d6f7274616c353504000800003700204d6f7274616c353604000800003800204d6f7274616c353704000800003900204d6f7274616c353804000800003a00204d6f7274616c353904000800003b00204d6f7274616c363004000800003c00204d6f7274616c363104000800003d00204d6f7274616c363204000800003e00204d6f7274616c363304000800003f00204d6f7274616c363404000800004000204d6f7274616c363504000800004100204d6f7274616c363604000800004200204d6f7274616c363704000800004300204d6f7274616c363804000800004400204d6f7274616c363904000800004500204d6f7274616c373004000800004600204d6f7274616c373104000800004700204d6f7274616c373204000800004800204d6f7274616c373304000800004900204d6f7274616c373404000800004a00204d6f7274616c373504000800004b00204d6f7274616c373604000800004c00204d6f7274616c373704000800004d00204d6f7274616c373804000800004e00204d6f7274616c373904000800004f00204d6f7274616c383004000800005000204d6f7274616c383104000800005100204d6f7274616c383204000800005200204d6f7274616c383304000800005300204d6f7274616c383404000800005400204d6f7274616c383504000800005500204d6f7274616c383604000800005600204d6f7274616c383704000800005700204d6f7274616c383804000800005800204d6f7274616c383904000800005900204d6f7274616c393004000800005a00204d6f7274616c393104000800005b00204d6f7274616c393204000800005c00204d6f7274616c393304000800005d00204d6f7274616c393404000800005e00204d6f7274616c393504000800005f00204d6f7274616c393604000800006000204d6f7274616c393704000800006100204d6f7274616c393804000800006200204d6f7274616c393904000800006300244d6f7274616c31303004000800006400244d6f7274616c31303104000800006500244d6f7274616c31303204000800006600244d6f7274616c31303304000800006700244d6f7274616c31303404000800006800244d6f7274616c31303504000800006900244d6f7274616c31303604000800006a00244d6f7274616c31303704000800006b00244d6f7274616c31303804000800006c00244d6f7274616c31303904000800006d00244d6f7274616c31313004000800006e00244d6f7274616c31313104000800006f00244d6f7274616c31313204000800007000244d6f7274616c31313304000800007100244d6f7274616c31313404000800007200244d6f7274616c31313504000800007300244d6f7274616c31313604000800007400244d6f7274616c31313704000800007500244d6f7274616c31313804000800007600244d6f7274616c31313904000800007700244d6f7274616c31323004000800007800244d6f7274616c31323104000800007900244d6f7274616c31323204000800007a00244d6f7274616c31323304000800007b00244d6f7274616c31323404000800007c00244d6f7274616c31323504000800007d00244d6f7274616c31323604000800007e00244d6f7274616c31323704000800007f00244d6f7274616c31323804000800008000244d6f7274616c31323904000800008100244d6f7274616c31333004000800008200244d6f7274616c31333104000800008300244d6f7274616c31333204000800008400244d6f7274616c31333304000800008500244d6f7274616c31333404000800008600244d6f7274616c31333504000800008700244d6f7274616c31333604000800008800244d6f7274616c31333704000800008900244d6f7274616c31333804000800008a00244d6f7274616c31333904000800008b00244d6f7274616c31343004000800008c00244d6f7274616c31343104000800008d00244d6f7274616c31343204000800008e00244d6f7274616c31343304000800008f00244d6f7274616c31343404000800009000244d6f7274616c31343504000800009100244d6f7274616c31343604000800009200244d6f7274616c31343704000800009300244d6f7274616c31343804000800009400244d6f7274616c31343904000800009500244d6f7274616c31353004000800009600244d6f7274616c31353104000800009700244d6f7274616c31353204000800009800244d6f7274616c31353304000800009900244d6f7274616c31353404000800009a00244d6f7274616c31353504000800009b00244d6f7274616c31353604000800009c00244d6f7274616c31353704000800009d00244d6f7274616c31353804000800009e00244d6f7274616c31353904000800009f00244d6f7274616c3136300400080000a000244d6f7274616c3136310400080000a100244d6f7274616c3136320400080000a200244d6f7274616c3136330400080000a300244d6f7274616c3136340400080000a400244d6f7274616c3136350400080000a500244d6f7274616c3136360400080000a600244d6f7274616c3136370400080000a700244d6f7274616c3136380400080000a800244d6f7274616c3136390400080000a900244d6f7274616c3137300400080000aa00244d6f7274616c3137310400080000ab00244d6f7274616c3137320400080000ac00244d6f7274616c3137330400080000ad00244d6f7274616c3137340400080000ae00244d6f7274616c3137350400080000af00244d6f7274616c3137360400080000b000244d6f7274616c3137370400080000b100244d6f7274616c3137380400080000b200244d6f7274616c3137390400080000b300244d6f7274616c3138300400080000b400244d6f7274616c3138310400080000b500244d6f7274616c3138320400080000b600244d6f7274616c3138330400080000b700244d6f7274616c3138340400080000b800244d6f7274616c3138350400080000b900244d6f7274616c3138360400080000ba00244d6f7274616c3138370400080000bb00244d6f7274616c3138380400080000bc00244d6f7274616c3138390400080000bd00244d6f7274616c3139300400080000be00244d6f7274616c3139310400080000bf00244d6f7274616c3139320400080000c000244d6f7274616c3139330400080000c100244d6f7274616c3139340400080000c200244d6f7274616c3139350400080000c300244d6f7274616c3139360400080000c400244d6f7274616c3139370400080000c500244d6f7274616c3139380400080000c600244d6f7274616c3139390400080000c700244d6f7274616c3230300400080000c800244d6f7274616c3230310400080000c900244d6f7274616c3230320400080000ca00244d6f7274616c3230330400080000cb00244d6f7274616c3230340400080000cc00244d6f7274616c3230350400080000cd00244d6f7274616c3230360400080000ce00244d6f7274616c3230370400080000cf00244d6f7274616c3230380400080000d000244d6f7274616c3230390400080000d100244d6f7274616c3231300400080000d200244d6f7274616c3231310400080000d300244d6f7274616c3231320400080000d400244d6f7274616c3231330400080000d500244d6f7274616c3231340400080000d600244d6f7274616c3231350400080000d700244d6f7274616c3231360400080000d800244d6f7274616c3231370400080000d900244d6f7274616c3231380400080000da00244d6f7274616c3231390400080000db00244d6f7274616c3232300400080000dc00244d6f7274616c3232310400080000dd00244d6f7274616c3232320400080000de00244d6f7274616c3232330400080000df00244d6f7274616c3232340400080000e000244d6f7274616c3232350400080000e100244d6f7274616c3232360400080000e200244d6f7274616c3232370400080000e300244d6f7274616c3232380400080000e400244d6f7274616c3232390400080000e500244d6f7274616c3233300400080000e600244d6f7274616c3233310400080000e700244d6f7274616c3233320400080000e800244d6f7274616c3233330400080000e900244d6f7274616c3233340400080000ea00244d6f7274616c3233350400080000eb00244d6f7274616c3233360400080000ec00244d6f7274616c3233370400080000ed00244d6f7274616c3233380400080000ee00244d6f7274616c3233390400080000ef00244d6f7274616c3234300400080000f000244d6f7274616c3234310400080000f100244d6f7274616c3234320400080000f200244d6f7274616c3234330400080000f300244d6f7274616c3234340400080000f400244d6f7274616c3234350400080000f500244d6f7274616c3234360400080000f600244d6f7274616c3234370400080000f700244d6f7274616c3234380400080000f800244d6f7274616c3234390400080000f900244d6f7274616c3235300400080000fa00244d6f7274616c3235310400080000fb00244d6f7274616c3235320400080000fc00244d6f7274616c3235330400080000fd00244d6f7274616c3235340400080000fe00244d6f7274616c3235350400080000ff0000fd0810306672616d655f73797374656d28657874656e73696f6e732c636865636b5f6e6f6e636528436865636b4e6f6e636504045400000400ad010120543a3a496e6465780000010910306672616d655f73797374656d28657874656e73696f6e7330636865636b5f7765696768742c436865636b576569676874040454000000000509086870616c6c65745f7472616e73616374696f6e5f7061796d656e74604368617267655472616e73616374696f6e5061796d656e7404045400000400cc013042616c616e63654f663c543e000009090c5c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e18636c61696d734850726576616c696461746541747465737473040454000000000d090840706f6c6b61646f745f72756e74696d651c52756e74696d6500000000b81853797374656d011853797374656d401c4163636f756e7401010402000c4101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e74000010040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e2c426c6f636b57656967687401001c600000000000000000000000000000000000000000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e000010040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b486173680101040510248000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101040510280400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d6265720100101000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801002480000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e1844696765737401002c040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e7473010048040010a0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e005901204e4f54453a20546869732073746f72616765206974656d206973206578706c696369746c7920756e626f756e6465642073696e6365206974206973206e6576657220696e74656e64656420746f2062652072656164642066726f6d2077697468696e207468652072756e74696d652e284576656e74436f756e74010010100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f706963730101040224a5010400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e004d01205468652076616c756520686173207468652074797065206028543a3a426c6f636b4e756d6265722c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000a90104000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e740100e80400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e740100e80400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e506861736500009d01040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e01b50101541830426c6f636b57656967687473c901850100f2052a0100000000204aa9d1010000405973070000000001c0766c8f58010000010098f73e5d010000010000000000000000405973070000000001c0febef9cc0100000100204aa9d1010000010088526a74000000405973070000000000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e677468d9013000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e74101060090000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e204462576569676874e1014040787d010000000000e1f505000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6ee501490320706f6c6b61646f743c7061726974792d706f6c6b61646f7400000000962300000000000038df6acb689907609b0300000037e397fc7c91f5e40100000040fe3ad401f8959a05000000d2bc9897eed08f1503000000f78b278be53f454c02000000af2c0297a23e6d3d0100000049eaaf1b548a0cb00100000091d5df18b0d2cf5801000000ed99c5acb25eedf503000000cbca25e39f14238702000000687ad44ad37f03c201000000ab3c0572291feb8b01000000bc9d89904f5b923f0100000037c8bb1350a9a2a801000000080000000484204765742074686520636861696e27732063757272656e742076657273696f6e2e2853533538507265666978250108000014a8205468652064657369676e61746564205353383520707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e01f90100245363686564756c657201245363686564756c65720c184167656e64610101040510fd010400044d01204974656d7320746f2062652065786563757465642c20696e64657865642062792074686520626c6f636b206e756d626572207468617420746865792073686f756c64206265206578656375746564206f6e2e184c6f6f6b75700001040528740400040101204c6f6f6b75702066726f6d206964656e7469747920746f2074686520626c6f636b206e756d62657220616e6420696e646578206f6620746865207461736b2e3853746f7261676556657273696f6e0100ad0504000c7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e0098204e6577206e6574776f726b732073746172742077697468206c6173742076657273696f6e2e010d02017008344d6178696d756d576569676874202000806e877401000008450120546865206d6178696d756d207765696768742074686174206d6179206265207363686564756c65642070657220626c6f636b20666f7220616e7920646973706174636861626c6573206f66206c657373a4207072696f72697479207468616e20607363686564756c653a3a484152445f444541444c494e45602e504d61785363686564756c6564506572426c6f636b101032000000081d0120546865206d6178696d756d206e756d626572206f66207363686564756c65642063616c6c7320696e2074686520717565756520666f7220612073696e676c6520626c6f636b2edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e01b105011042616265011042616265402845706f6368496e64657801002020000000000000000004542043757272656e742065706f636820696e6465782e2c417574686f7269746965730100b5050400046c2043757272656e742065706f636820617574686f7269746965732e2c47656e65736973536c6f740100290220000000000000000008f82054686520736c6f74206174207768696368207468652066697273742065706f63682061637475616c6c7920737461727465642e205468697320697320309020756e74696c2074686520666972737420626c6f636b206f662074686520636861696e2e2c43757272656e74536c6f740100290220000000000000000004542043757272656e7420736c6f74206e756d6265722e2852616e646f6d6e65737301000480000000000000000000000000000000000000000000000000000000000000000028b8205468652065706f63682072616e646f6d6e65737320666f7220746865202a63757272656e742a2065706f63682e002c20232053656375726974790005012054686973204d555354204e4f54206265207573656420666f722067616d626c696e672c2061732069742063616e20626520696e666c75656e6365642062792061f8206d616c6963696f75732076616c696461746f7220696e207468652073686f7274207465726d2e204974204d4159206265207573656420696e206d616e7915012063727970746f677261706869632070726f746f636f6c732c20686f77657665722c20736f206c6f6e67206173206f6e652072656d656d6265727320746861742074686973150120286c696b652065766572797468696e6720656c7365206f6e2d636861696e29206974206973207075626c69632e20466f72206578616d706c652c2069742063616e206265050120757365642077686572652061206e756d626572206973206e656564656420746861742063616e6e6f742068617665206265656e2063686f73656e20627920616e0d01206164766572736172792c20666f7220707572706f7365732073756368206173207075626c69632d636f696e207a65726f2d6b6e6f776c656467652070726f6f66732e6050656e64696e6745706f6368436f6e6669674368616e67650000310204000461012050656e64696e672065706f636820636f6e66696775726174696f6e206368616e676520746861742077696c6c206265206170706c696564207768656e20746865206e6578742065706f636820697320656e61637465642e384e65787452616e646f6d6e657373010004800000000000000000000000000000000000000000000000000000000000000000045c204e6578742065706f63682072616e646f6d6e6573732e3c4e657874417574686f7269746965730100b50504000460204e6578742065706f636820617574686f7269746965732e305365676d656e74496e6465780100101000000000247c2052616e646f6d6e65737320756e64657220636f6e737472756374696f6e2e00f4205765206d616b6520612074726164656f6666206265747765656e2073746f7261676520616363657373657320616e64206c697374206c656e6774682e01012057652073746f72652074686520756e6465722d636f6e737472756374696f6e2072616e646f6d6e65737320696e207365676d656e7473206f6620757020746f942060554e4445525f434f4e535452554354494f4e5f5345474d454e545f4c454e475448602e00ec204f6e63652061207365676d656e7420726561636865732074686973206c656e6774682c20776520626567696e20746865206e657874206f6e652e090120576520726573657420616c6c207365676d656e747320616e642072657475726e20746f206030602061742074686520626567696e6e696e67206f662065766572791c2065706f63682e44556e646572436f6e737472756374696f6e0101040510c10504000415012054574f582d4e4f54453a20605365676d656e74496e6465786020697320616e20696e6372656173696e6720696e74656765722c20736f2074686973206973206f6b61792e2c496e697469616c697a65640000c90504000801012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e292077686963682069732060536f6d65601d01206966207065722d626c6f636b20696e697469616c697a6174696f6e2068617320616c7265616479206265656e2063616c6c656420666f722063757272656e7420626c6f636b2e4c417574686f7256726652616e646f6d6e6573730100c90504001015012054686973206669656c642073686f756c6420616c7761797320626520706f70756c6174656420647572696e6720626c6f636b2070726f63657373696e6720756e6c6573731901207365636f6e6461727920706c61696e20736c6f74732061726520656e61626c65642028776869636820646f6e277420636f6e7461696e206120565246206f7574707574292e0051012049742069732073657420696e20606f6e5f696e697469616c697a65602c206265666f72652069742077696c6c20636f6e7461696e207468652076616c75652066726f6d20746865206c61737420626c6f636b2e2845706f63685374617274010074200000000000000000145d012054686520626c6f636b206e756d62657273207768656e20746865206c61737420616e642063757272656e742065706f6368206861766520737461727465642c20726573706563746976656c7920604e2d316020616e641420604e602e4901204e4f54453a20576520747261636b207468697320697320696e206f7264657220746f20616e6e6f746174652074686520626c6f636b206e756d626572207768656e206120676976656e20706f6f6c206f66590120656e74726f7079207761732066697865642028692e652e20697420776173206b6e6f776e20746f20636861696e206f6273657276657273292e2053696e63652065706f6368732061726520646566696e656420696e590120736c6f74732c207768696368206d617920626520736b69707065642c2074686520626c6f636b206e756d62657273206d6179206e6f74206c696e6520757020776974682074686520736c6f74206e756d626572732e204c6174656e657373010010100000000014d820486f77206c617465207468652063757272656e7420626c6f636b20697320636f6d706172656420746f2069747320706172656e742e001501205468697320656e74727920697320706f70756c617465642061732070617274206f6620626c6f636b20657865637574696f6e20616e6420697320636c65616e65642075701101206f6e20626c6f636b2066696e616c697a6174696f6e2e205175657279696e6720746869732073746f7261676520656e747279206f757473696465206f6620626c6f636bb020657865637574696f6e20636f6e746578742073686f756c6420616c77617973207969656c64207a65726f2e2c45706f6368436f6e6669670000cd0504000861012054686520636f6e66696775726174696f6e20666f72207468652063757272656e742065706f63682e2053686f756c64206e6576657220626520604e6f6e656020617320697420697320696e697469616c697a656420696e242067656e657369732e3c4e65787445706f6368436f6e6669670000cd050400082d012054686520636f6e66696775726174696f6e20666f7220746865206e6578742065706f63682c20604e6f6e65602069662074686520636f6e6669672077696c6c206e6f74206368616e6765e82028796f752063616e2066616c6c6261636b20746f206045706f6368436f6e6669676020696e737465616420696e20746861742063617365292e011502000c3445706f63684475726174696f6e202060090000000000000cec2054686520616d6f756e74206f662074696d652c20696e20736c6f74732c207468617420656163682065706f63682073686f756c64206c6173742e1901204e4f54453a2043757272656e746c79206974206973206e6f7420706f737369626c6520746f206368616e6765207468652065706f6368206475726174696f6e20616674657221012074686520636861696e2068617320737461727465642e20417474656d7074696e6720746f20646f20736f2077696c6c20627269636b20626c6f636b2070726f64756374696f6e2e444578706563746564426c6f636b54696d652020701700000000000014050120546865206578706563746564206176657261676520626c6f636b2074696d6520617420776869636820424142452073686f756c64206265206372656174696e67110120626c6f636b732e2053696e636520424142452069732070726f626162696c6973746963206974206973206e6f74207472697669616c20746f20666967757265206f75740501207768617420746865206578706563746564206176657261676520626c6f636b2074696d652073686f756c64206265206261736564206f6e2074686520736c6f740901206475726174696f6e20616e642074686520736563757269747920706172616d657465722060636020287768657265206031202d20636020726570726573656e7473a0207468652070726f626162696c697479206f66206120736c6f74206265696e6720656d707479292e384d6178417574686f7269746965731010a08601000488204d6178206e756d626572206f6620617574686f72697469657320616c6c6f77656401d105022454696d657374616d70012454696d657374616d70080c4e6f7701002020000000000000000004902043757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e244469645570646174650100e8040004b420446964207468652074696d657374616d7020676574207570646174656420696e207468697320626c6f636b3f013d020004344d696e696d756d506572696f642020b80b000000000000104d0120546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e204265776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a5d0120706572696f6420746861742074686520626c6f636b2070726f64756374696f6e206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c5d012067656e6572616c6c7920776f726b2077697468207468697320746f2064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20652e672e20466f7220417572612c2069742077696c6c206265a020646f75626c65207468697320706572696f64206f6e2064656661756c742073657474696e67732e00031c496e6469636573011c496e646963657304204163636f756e74730001040210d5050400048820546865206c6f6f6b75702066726f6d20696e64657820746f206163636f756e742e0145020184041c4465706f736974184000e8764817000000000000000000000004ac20546865206465706f736974206e656564656420666f7220726573657276696e6720616e20696e6465782e01d905042042616c616e636573012042616c616e6365731434546f74616c49737375616e6365010018400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e1c4163636f756e740101040200140101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c6c205468652062616c616e6365206f6620616e206163636f756e742e004101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b730101040200dd05040008b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e2052657365727665730101040200ed05040004a4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e3853746f7261676556657273696f6e0100f90504000c7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e00a020546869732069732073657420746f2076322e302e3020666f72206e6577206e6574776f726b732e01490201880c484578697374656e7469616c4465706f736974184000e40b5402000000000000000000000004d420546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d61784c6f636b7310103200000008f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e2c4d61785265736572766573101032000000040d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e01fd0505485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c6965720100010640000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e0100050604000000000c485472616e73616374696f6e42797465466565184040420f00000000000000000000000000040d01205468652066656520746f206265207061696420666f72206d616b696e672061207472616e73616374696f6e3b20746865207065722d6279746520706f7274696f6e2e604f7065726174696f6e616c4665654d756c7469706c696572080405545901204120666565206d756c6974706c69657220666f7220604f7065726174696f6e616c602065787472696e7369637320746f20636f6d7075746520227669727475616c207469702220746f20626f6f73742074686569722c20607072696f7269747960004d0120546869732076616c7565206973206d756c7469706c656420627920746865206066696e616c5f6665656020746f206f627461696e206120227669727475616c20746970222074686174206973206c61746572f420616464656420746f20612074697020636f6d706f6e656e7420696e20726567756c617220607072696f72697479602063616c63756c6174696f6e732e4d01204974206d65616e732074686174206120604e6f726d616c60207472616e73616374696f6e2063616e2066726f6e742d72756e20612073696d696c61726c792d73697a656420604f7065726174696f6e616c6041012065787472696e736963202877697468206e6f20746970292c20627920696e636c7564696e672061207469702076616c75652067726561746572207468616e20746865207669727475616c207469702e003c20606060727573742c69676e6f726540202f2f20466f7220604e6f726d616c608c206c6574207072696f72697479203d207072696f726974795f63616c6328746970293b0054202f2f20466f7220604f7065726174696f6e616c601101206c6574207669727475616c5f746970203d2028696e636c7573696f6e5f666565202b2074697029202a204f7065726174696f6e616c4665654d756c7469706c6965723bc4206c6574207072696f72697479203d207072696f726974795f63616c6328746970202b207669727475616c5f746970293b1020606060005101204e6f746520746861742073696e636520776520757365206066696e616c5f6665656020746865206d756c7469706c696572206170706c69657320616c736f20746f2074686520726567756c61722060746970605d012073656e74207769746820746865207472616e73616374696f6e2e20536f2c206e6f74206f6e6c7920646f657320746865207472616e73616374696f6e206765742061207072696f726974792062756d702062617365646101206f6e207468652060696e636c7573696f6e5f666565602c2062757420776520616c736f20616d706c6966792074686520696d70616374206f662074697073206170706c69656420746f20604f7065726174696f6e616c6038207472616e73616374696f6e732e2c576569676874546f46656509065c040000000000000000000000000000000000b4c4040001040d012054686520706f6c796e6f6d69616c2074686174206973206170706c69656420696e206f7264657220746f20646572697665206665652066726f6d207765696768742e002028417574686f72736869700128417574686f72736869700c18556e636c6573010011060400041c20556e636c657318417574686f720000000400046420417574686f72206f662063757272656e7420626c6f636b2e30446964536574556e636c65730100e8040004bc205768657468657220756e636c6573207765726520616c72656164792073657420696e207468697320626c6f636b2e015502000440556e636c6547656e65726174696f6e731010000000000ccc20546865206e756d626572206f6620626c6f636b73206261636b2077652073686f756c642061636365707420756e636c65732ee42054686973206d65616e7320746861742077652077696c6c206465616c207769746820756e636c652d706172656e7473207468617420617265942060556e636c6547656e65726174696f6e73202b203160206265666f726520606e6f77602e011906061c5374616b696e67011c5374616b696e679430486973746f7279446570746801001010540000001c8c204e756d626572206f66206572617320746f206b65657020696e20686973746f72792e00390120496e666f726d6174696f6e206973206b65707420666f72206572617320696e20605b63757272656e745f657261202d20686973746f72795f64657074683b2063757272656e745f6572615d602e006101204d757374206265206d6f7265207468616e20746865206e756d626572206f6620657261732064656c617965642062792073657373696f6e206f74686572776973652e20492e652e2061637469766520657261206d757374390120616c7761797320626520696e20686973746f72792e20492e652e20606163746976655f657261203e2063757272656e745f657261202d20686973746f72795f646570746860206d757374206265302067756172616e746565642e3856616c696461746f72436f756e74010010100000000004a82054686520696465616c206e756d626572206f66207374616b696e67207061727469636970616e74732e544d696e696d756d56616c696461746f72436f756e740100101000000000044101204d696e696d756d206e756d626572206f66207374616b696e67207061727469636970616e7473206265666f726520656d657267656e637920636f6e646974696f6e732061726520696d706f7365642e34496e76756c6e657261626c65730100dc04000c590120416e792076616c696461746f72732074686174206d6179206e6576657220626520736c6173686564206f7220666f726369626c79206b69636b65642e20497427732061205665632073696e636520746865792772654d01206561737920746f20696e697469616c697a6520616e642074686520706572666f726d616e636520686974206973206d696e696d616c2028776520657870656374206e6f206d6f7265207468616e20666f7572ac20696e76756c6e657261626c65732920616e64207265737472696374656420746f20746573746e6574732e18426f6e6465640001040500000400040101204d61702066726f6d20616c6c206c6f636b65642022737461736822206163636f756e747320746f2074686520636f6e74726f6c6c6572206163636f756e742e404d696e4e6f6d696e61746f72426f6e64010018400000000000000000000000000000000004210120546865206d696e696d756d2061637469766520626f6e6420746f206265636f6d6520616e64206d61696e7461696e2074686520726f6c65206f662061206e6f6d696e61746f722e404d696e56616c696461746f72426f6e64010018400000000000000000000000000000000004210120546865206d696e696d756d2061637469766520626f6e6420746f206265636f6d6520616e64206d61696e7461696e2074686520726f6c65206f6620612076616c696461746f722e184c656467657200010402001d060400044501204d61702066726f6d20616c6c2028756e6c6f636b6564292022636f6e74726f6c6c657222206163636f756e747320746f2074686520696e666f20726567617264696e6720746865207374616b696e672e14506179656501010405006102040004e42057686572652074686520726577617264207061796d656e742073686f756c64206265206d6164652e204b657965642062792073746173682e2856616c696461746f7273010104050065020800000c450120546865206d61702066726f6d202877616e6e616265292076616c696461746f72207374617368206b657920746f2074686520707265666572656e636573206f6620746861742076616c696461746f722e004901205768656e207570646174696e6720746869732073746f72616765206974656d2c20796f75206d75737420616c736f20757064617465207468652060436f756e746572466f7256616c696461746f7273602e50436f756e746572466f7256616c696461746f72730100101000000000042101204120747261636b657220746f206b65657020636f756e74206f6620746865206e756d626572206f66206974656d7320696e20746865206056616c696461746f727360206d61702e484d617856616c696461746f7273436f756e7400001004000c310120546865206d6178696d756d2076616c696461746f7220636f756e74206265666f72652077652073746f7020616c6c6f77696e67206e65772076616c696461746f727320746f206a6f696e2e00d0205768656e20746869732076616c7565206973206e6f74207365742c206e6f206c696d6974732061726520656e666f726365642e284e6f6d696e61746f72730001040500290604000c650120546865206d61702066726f6d206e6f6d696e61746f72207374617368206b657920746f2074686520736574206f66207374617368206b657973206f6620616c6c2076616c696461746f727320746f206e6f6d696e6174652e004901205768656e207570646174696e6720746869732073746f72616765206974656d2c20796f75206d75737420616c736f20757064617465207468652060436f756e746572466f724e6f6d696e61746f7273602e50436f756e746572466f724e6f6d696e61746f72730100101000000000042101204120747261636b657220746f206b65657020636f756e74206f6620746865206e756d626572206f66206974656d7320696e2074686520604e6f6d696e61746f727360206d61702e484d61784e6f6d696e61746f7273436f756e7400001004000c310120546865206d6178696d756d206e6f6d696e61746f7220636f756e74206265666f72652077652073746f7020616c6c6f77696e67206e65772076616c696461746f727320746f206a6f696e2e00d0205768656e20746869732076616c7565206973206e6f74207365742c206e6f206c696d6974732061726520656e666f726365642e2843757272656e744572610000100400105c205468652063757272656e742065726120696e6465782e006501205468697320697320746865206c617465737420706c616e6e6564206572612c20646570656e64696e67206f6e20686f77207468652053657373696f6e2070616c6c657420717565756573207468652076616c696461746f7280207365742c206974206d6967687420626520616374697665206f72206e6f742e2441637469766545726100002d06040010d820546865206163746976652065726120696e666f726d6174696f6e2c20697420686f6c647320696e64657820616e642073746172742e0059012054686520616374697665206572612069732074686520657261206265696e672063757272656e746c792072657761726465642e2056616c696461746f7220736574206f66207468697320657261206d757374206265ac20657175616c20746f205b6053657373696f6e496e746572666163653a3a76616c696461746f7273605d2e5445726173537461727453657373696f6e496e6465780001040510100400103101205468652073657373696f6e20696e646578206174207768696368207468652065726120737461727420666f7220746865206c6173742060484953544f52595f44455054486020657261732e006101204e6f74653a205468697320747261636b7320746865207374617274696e672073657373696f6e2028692e652e2073657373696f6e20696e646578207768656e20657261207374617274206265696e672061637469766529f020666f7220746865206572617320696e20605b43757272656e74457261202d20484953544f52595f44455054482c2043757272656e744572615d602e2c457261735374616b65727301010805053106c80c0000001878204578706f73757265206f662076616c696461746f72206174206572612e0061012054686973206973206b65796564206669727374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00a82049732069742072656d6f7665642061667465722060484953544f52595f44455054486020657261732e4101204966207374616b657273206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e20656d707479206578706f737572652069732072657475726e65642e48457261735374616b657273436c697070656401010805053106c80c0000002c9820436c6970706564204578706f73757265206f662076616c696461746f72206174206572612e00590120546869732069732073696d696c617220746f205b60457261735374616b657273605d20627574206e756d626572206f66206e6f6d696e61746f7273206578706f736564206973207265647563656420746f20746865dc2060543a3a4d61784e6f6d696e61746f72526577617264656450657256616c696461746f72602062696767657374207374616b6572732e1d0120284e6f74653a20746865206669656c642060746f74616c6020616e6420606f776e60206f6620746865206578706f737572652072656d61696e7320756e6368616e676564292ef42054686973206973207573656420746f206c696d69742074686520692f6f20636f737420666f7220746865206e6f6d696e61746f72207061796f75742e005d012054686973206973206b657965642066697374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00a82049732069742072656d6f7665642061667465722060484953544f52595f44455054486020657261732e4101204966207374616b657273206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e20656d707479206578706f737572652069732072657475726e65642e484572617356616c696461746f7250726566730101080505310665020800001411012053696d696c617220746f2060457261735374616b657273602c207468697320686f6c64732074686520707265666572656e636573206f662076616c696461746f72732e0061012054686973206973206b65796564206669727374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00a82049732069742072656d6f7665642061667465722060484953544f52595f44455054486020657261732e4c4572617356616c696461746f7252657761726400010405101804000c09012054686520746f74616c2076616c696461746f7220657261207061796f757420666f7220746865206c6173742060484953544f52595f44455054486020657261732e0021012045726173207468617420686176656e27742066696e697368656420796574206f7220686173206265656e2072656d6f76656420646f65736e27742068617665207265776172642e4045726173526577617264506f696e74730101040510350614000000000008ac205265776172647320666f7220746865206c6173742060484953544f52595f44455054486020657261732e250120496620726577617264206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e2030207265776172642069732072657475726e65642e3845726173546f74616c5374616b65010104051018400000000000000000000000000000000008ec2054686520746f74616c20616d6f756e74207374616b656420666f7220746865206c6173742060484953544f52595f44455054486020657261732e1d0120496620746f74616c206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e2030207374616b652069732072657475726e65642e20466f7263654572610100450604000454204d6f6465206f662065726120666f7263696e672e4c536c6173685265776172644672616374696f6e0100b90110000000000cf8205468652070657263656e74616765206f662074686520736c617368207468617420697320646973747269627574656420746f207265706f72746572732e00e4205468652072657374206f662074686520736c61736865642076616c75652069732068616e646c6564206279207468652060536c617368602e4c43616e63656c6564536c6173685061796f757401001840000000000000000000000000000000000815012054686520616d6f756e74206f662063757272656e637920676976656e20746f207265706f7274657273206f66206120736c617368206576656e7420776869636820776173ec2063616e63656c65642062792065787472616f7264696e6172792063697263756d7374616e6365732028652e672e20676f7665726e616e6365292e40556e6170706c696564536c617368657301010405104906040004c420416c6c20756e6170706c69656420736c61736865732074686174206172652071756575656420666f72206c617465722e28426f6e646564457261730100a50104001025012041206d617070696e672066726f6d207374696c6c2d626f6e646564206572617320746f207468652066697273742073657373696f6e20696e646578206f662074686174206572612e00c8204d75737420636f6e7461696e7320696e666f726d6174696f6e20666f72206572617320666f72207468652072616e67653abc20605b6163746976655f657261202d20626f756e64696e675f6475726174696f6e3b206163746976655f6572615d604c56616c696461746f72536c617368496e457261000108050531065106040008450120416c6c20736c617368696e67206576656e7473206f6e2076616c696461746f72732c206d61707065642062792065726120746f20746865206869676865737420736c6173682070726f706f7274696f6e7020616e6420736c6173682076616c7565206f6620746865206572612e4c4e6f6d696e61746f72536c617368496e4572610001080505310618040004610120416c6c20736c617368696e67206576656e7473206f6e206e6f6d696e61746f72732c206d61707065642062792065726120746f20746865206869676865737420736c6173682076616c7565206f6620746865206572612e34536c617368696e675370616e73000104050055060400048c20536c617368696e67207370616e7320666f72207374617368206163636f756e74732e245370616e536c6173680101040541065906800000000000000000000000000000000000000000000000000000000000000000083d01205265636f72647320696e666f726d6174696f6e2061626f757420746865206d6178696d756d20736c617368206f6620612073746173682077697468696e206120736c617368696e67207370616e2cb82061732077656c6c20617320686f77206d7563682072657761726420686173206265656e2070616964206f75742e584561726c69657374556e6170706c696564536c617368000010040004fc20546865206561726c696573742065726120666f72207768696368207765206861766520612070656e64696e672c20756e6170706c69656420736c6173682e5443757272656e74506c616e6e656453657373696f6e01001010000000000ce820546865206c61737420706c616e6e65642073657373696f6e207363686564756c6564206279207468652073657373696f6e2070616c6c65742e0071012054686973206973206261736963616c6c7920696e2073796e632077697468207468652063616c6c20746f205b6070616c6c65745f73657373696f6e3a3a53657373696f6e4d616e616765723a3a6e65775f73657373696f6e605d2e3853746f7261676556657273696f6e01005d06040710cc2054727565206966206e6574776f726b20686173206265656e20757067726164656420746f20746869732076657273696f6e2e7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e00a020546869732069732073657420746f2076372e302e3020666f72206e6577206e6574776f726b732e384368696c6c5468726573686f6c640000710204000c510120546865207468726573686f6c6420666f72207768656e2075736572732063616e2073746172742063616c6c696e6720606368696c6c5f6f746865726020666f72206f746865722076616c696461746f7273202f5901206e6f6d696e61746f72732e20546865207468726573686f6c6420697320636f6d706172656420746f207468652061637475616c206e756d626572206f662076616c696461746f7273202f206e6f6d696e61746f72732901202860436f756e74466f722a602920696e207468652073797374656d20636f6d706172656420746f2074686520636f6e66696775726564206d61782028604d61782a436f756e7460292e015d020190143853657373696f6e735065724572611010060000000470204e756d626572206f662073657373696f6e7320706572206572612e3c426f6e64696e674475726174696f6e10101c00000004e4204e756d626572206f6620657261732074686174207374616b65642066756e6473206d7573742072656d61696e20626f6e64656420666f722e48536c61736844656665724475726174696f6e10101b000000100101204e756d626572206f662065726173207468617420736c6173686573206172652064656665727265642062792c20616674657220636f6d7075746174696f6e2e000d0120546869732073686f756c64206265206c657373207468616e2074686520626f6e64696e67206475726174696f6e2e2053657420746f203020696620736c617368657315012073686f756c64206265206170706c69656420696d6d6564696174656c792c20776974686f7574206f70706f7274756e69747920666f7220696e74657276656e74696f6e2e804d61784e6f6d696e61746f72526577617264656450657256616c696461746f7210100001000010f820546865206d6178696d756d206e756d626572206f66206e6f6d696e61746f727320726577617264656420666f7220656163682076616c696461746f722e00510120466f7220656163682076616c696461746f72206f6e6c79207468652060244d61784e6f6d696e61746f72526577617264656450657256616c696461746f72602062696767657374207374616b6572732063616e390120636c61696d207468656972207265776172642e2054686973207573656420746f206c696d69742074686520692f6f20636f737420666f7220746865206e6f6d696e61746f72207061796f75742e384d61784e6f6d696e6174696f6e731010100000000001610607204f6666656e63657301204f6666656e6365730c1c5265706f72747300010405246506040004490120546865207072696d61727920737472756374757265207468617420686f6c647320616c6c206f6666656e6365207265636f726473206b65796564206279207265706f7274206964656e746966696572732e58436f6e63757272656e745265706f727473496e64657801010805056906a1010400042901204120766563746f72206f66207265706f727473206f66207468652073616d65206b696e6420746861742068617070656e6564206174207468652073616d652074696d6520736c6f742e485265706f72747342794b696e64496e646578010104059828040018110120456e756d65726174657320616c6c207265706f727473206f662061206b696e6420616c6f6e672077697468207468652074696d6520746865792068617070656e65642e00bc20416c6c207265706f7274732061726520736f72746564206279207468652074696d65206f66206f6666656e63652e004901204e6f74652074686174207468652061637475616c2074797065206f662074686973206d617070696e6720697320605665633c75383e602c207468697320697320626563617573652076616c756573206f66690120646966666572656e7420747970657320617265206e6f7420737570706f7274656420617420746865206d6f6d656e7420736f2077652061726520646f696e6720746865206d616e75616c2073657269616c697a6174696f6e2e00019400000828486973746f726963616c0000000000211c53657373696f6e011c53657373696f6e1c2856616c696461746f72730100dc0400047c205468652063757272656e7420736574206f662076616c696461746f72732e3043757272656e74496e646578010010100000000004782043757272656e7420696e646578206f66207468652073657373696f6e2e345175657565644368616e6765640100e8040008390120547275652069662074686520756e6465726c79696e672065636f6e6f6d6963206964656e746974696573206f7220776569676874696e6720626568696e64207468652076616c696461746f7273a420686173206368616e67656420696e20746865207175657565642076616c696461746f72207365742e285175657565644b65797301006d060400083d012054686520717565756564206b65797320666f7220746865206e6578742073657373696f6e2e205768656e20746865206e6578742073657373696f6e20626567696e732c207468657365206b657973e02077696c6c206265207573656420746f2064657465726d696e65207468652076616c696461746f7227732073657373696f6e206b6579732e4844697361626c656456616c696461746f72730100750204000c8020496e6469636573206f662064697361626c65642076616c696461746f72732e003501205468652073657420697320636c6561726564207768656e20606f6e5f73657373696f6e5f656e64696e67602072657475726e732061206e657720736574206f66206964656e7469746965732e204e6578744b657973000104050085020400049c20546865206e6578742073657373696f6e206b65797320666f7220612076616c696461746f722e204b65794f776e657200010405750600040004090120546865206f776e6572206f662061206b65792e20546865206b65792069732074686520604b657954797065496460202b2074686520656e636f646564206b65792e018102019c00017d06091c4772616e647061011c4772616e647061181453746174650100810604000490205374617465206f66207468652063757272656e7420617574686f72697479207365742e3450656e64696e674368616e676500008506040004c42050656e64696e67206368616e67653a20287369676e616c65642061742c207363686564756c6564206368616e6765292e284e657874466f72636564000010040004bc206e65787420626c6f636b206e756d6265722077686572652077652063616e20666f7263652061206368616e67652e1c5374616c6c65640000740400049020607472756560206966207765206172652063757272656e746c79207374616c6c65642e3043757272656e745365744964010020200000000000000000085d0120546865206e756d626572206f66206368616e6765732028626f746820696e207465726d73206f66206b65797320616e6420756e6465726c79696e672065636f6e6f6d696320726573706f6e736962696c697469657329c420696e20746865202273657422206f66204772616e6470612076616c696461746f72732066726f6d2067656e657369732e30536574496453657373696f6e00010405201004001059012041206d617070696e672066726f6d206772616e6470612073657420494420746f2074686520696e646578206f6620746865202a6d6f737420726563656e742a2073657373696f6e20666f722077686963682069747368206d656d62657273207765726520726573706f6e7369626c652e00b82054574f582d4e4f54453a2060536574496460206973206e6f7420756e646572207573657220636f6e74726f6c2e01950201a004384d6178417574686f7269746965731010a0860100045c204d617820417574686f72697469657320696e20757365018d060b20496d4f6e6c696e650120496d4f6e6c696e651038486561727462656174416674657201001010000000002c1d012054686520626c6f636b206e756d6265722061667465722077686963682069742773206f6b20746f2073656e64206865617274626561747320696e207468652063757272656e74242073657373696f6e2e0025012041742074686520626567696e6e696e67206f6620656163682073657373696f6e20776520736574207468697320746f20612076616c756520746861742073686f756c642066616c6c350120726f7567686c7920696e20746865206d6964646c65206f66207468652073657373696f6e206475726174696f6e2e20546865206964656120697320746f206669727374207761697420666f721901207468652076616c696461746f727320746f2070726f64756365206120626c6f636b20696e207468652063757272656e742073657373696f6e2c20736f207468617420746865a820686561727462656174206c61746572206f6e2077696c6c206e6f74206265206e65636573736172792e00390120546869732076616c75652077696c6c206f6e6c79206265207573656420617320612066616c6c6261636b206966207765206661696c20746f2067657420612070726f7065722073657373696f6e2d012070726f677265737320657374696d6174652066726f6d20604e65787453657373696f6e526f746174696f6e602c2061732074686f736520657374696d617465732073686f756c642062650101206d6f7265206163637572617465207468656e207468652076616c75652077652063616c63756c61746520666f7220604865617274626561744166746572602e104b65797301009106040004d0205468652063757272656e7420736574206f66206b6579732074686174206d61792069737375652061206865617274626561742e4852656365697665644865617274626561747300010805057499060400083d0120466f7220656163682073657373696f6e20696e6465782c207765206b6565702061206d617070696e67206f66202753657373696f6e496e6465786020616e64206041757468496e6465786020746fb02060577261707065724f70617175653c426f756e6465644f70617175654e6574776f726b53746174653e602e38417574686f726564426c6f636b730101080505310610100000000008150120466f7220656163682073657373696f6e20696e6465782c207765206b6565702061206d617070696e67206f66206056616c696461746f7249643c543e6020746f20746865c8206e756d626572206f6620626c6f636b7320617574686f7265642062792074686520676976656e20617574686f726974792e01c10201b40440556e7369676e65645072696f726974792020ffffffffffffffff10f0204120636f6e66696775726174696f6e20666f722062617365207072696f72697479206f6620756e7369676e6564207472616e73616374696f6e732e0015012054686973206973206578706f73656420736f20746861742069742063616e2062652074756e656420666f7220706172746963756c61722072756e74696d652c207768656eb4206d756c7469706c652070616c6c6574732073656e6420756e7369676e6564207472616e73616374696f6e732e01ad060c48417574686f72697479446973636f7665727900000000000d2444656d6f6372616379012444656d6f6372616379383c5075626c696350726f70436f756e74010010100000000004f420546865206e756d626572206f6620287075626c6963292070726f706f73616c7320746861742068617665206265656e206d61646520736f206661722e2c5075626c696350726f70730100b106040004210120546865207075626c69632070726f706f73616c732e20556e736f727465642e20546865207365636f6e64206974656d206973207468652070726f706f73616c277320686173682e244465706f7369744f660001040510b90604000c842054686f73652077686f2068617665206c6f636b65642061206465706f7369742e00d82054574f582d4e4f54453a20536166652c20617320696e6372656173696e6720696e7465676572206b6579732061726520736166652e24507265696d616765730001040624bd060400086101204d6170206f662068617368657320746f207468652070726f706f73616c20707265696d6167652c20616c6f6e6720776974682077686f207265676973746572656420697420616e64207468656972206465706f7369742ee42054686520626c6f636b206e756d6265722069732074686520626c6f636b20617420776869636820697420776173206465706f73697465642e3c5265666572656e64756d436f756e74010010100000000004310120546865206e6578742066726565207265666572656e64756d20696e6465782c20616b6120746865206e756d626572206f66207265666572656e6461207374617274656420736f206661722e344c6f77657374556e62616b6564010010100000000008250120546865206c6f77657374207265666572656e64756d20696e64657820726570726573656e74696e6720616e20756e62616b6564207265666572656e64756d2e20457175616c20746fdc20605265666572656e64756d436f756e74602069662074686572652069736e2774206120756e62616b6564207265666572656e64756d2e405265666572656e64756d496e666f4f660001040510c10604000cb420496e666f726d6174696f6e20636f6e6365726e696e6720616e7920676976656e207265666572656e64756d2e0009012054574f582d4e4f54453a205341464520617320696e646578657320617265206e6f7420756e64657220616e2061747461636b6572e280997320636f6e74726f6c2e20566f74696e674f660101040500cd06d8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000105d0120416c6c20766f74657320666f72206120706172746963756c617220766f7465722e2057652073746f7265207468652062616c616e636520666f7220746865206e756d626572206f6620766f74657320746861742077655d012068617665207265636f726465642e20546865207365636f6e64206974656d2069732074686520746f74616c20616d6f756e74206f662064656c65676174696f6e732c20746861742077696c6c2062652061646465642e00e82054574f582d4e4f54453a205341464520617320604163636f756e7449646073206172652063727970746f2068617368657320616e797761792e144c6f636b730001040500100400105d01204163636f756e747320666f7220776869636820746865726520617265206c6f636b7320696e20616374696f6e207768696368206d61792062652072656d6f76656420617420736f6d6520706f696e7420696e207468655101206675747572652e205468652076616c75652069732074686520626c6f636b206e756d62657220617420776869636820746865206c6f636b206578706972657320616e64206d61792062652072656d6f7665642e00c02054574f582d4e4f54453a204f4b20e2809520604163636f756e7449646020697320612073656375726520686173682e544c6173745461626c656457617345787465726e616c0100e80400085901205472756520696620746865206c617374207265666572656e64756d207461626c656420776173207375626d69747465642065787465726e616c6c792e2046616c7365206966206974207761732061207075626c6963282070726f706f73616c2e304e65787445787465726e616c0000e106040010590120546865207265666572656e64756d20746f206265207461626c6564207768656e6576657220697420776f756c642062652076616c696420746f207461626c6520616e2065787465726e616c2070726f706f73616c2e550120546869732068617070656e73207768656e2061207265666572656e64756d206e6565647320746f206265207461626c656420616e64206f6e65206f662074776f20636f6e646974696f6e7320617265206d65743aa4202d20604c6173745461626c656457617345787465726e616c60206973206066616c7365603b206f7268202d20605075626c696350726f70736020697320656d7074792e24426c61636b6c6973740001040624e50604000851012041207265636f7264206f662077686f207665746f656420776861742e204d6170732070726f706f73616c206861736820746f206120706f737369626c65206578697374656e7420626c6f636b206e756d626572e82028756e74696c207768656e206974206d6179206e6f742062652072657375626d69747465642920616e642077686f207665746f65642069742e3443616e63656c6c6174696f6e730101040624e80400042901205265636f7264206f6620616c6c2070726f706f73616c7320746861742068617665206265656e207375626a65637420746f20656d657267656e63792063616e63656c6c6174696f6e2e3853746f7261676556657273696f6e0000e90604000c7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e0098204e6577206e6574776f726b732073746172742077697468206c6173742076657273696f6e2e01dd0201d82c3c456e6163746d656e74506572696f6410100027060014e82054686520706572696f64206265747765656e20612070726f706f73616c206265696e6720617070726f76656420616e6420656e61637465642e0031012049742073686f756c642067656e6572616c6c792062652061206c6974746c65206d6f7265207468616e2074686520756e7374616b6520706572696f6420746f20656e737572652074686174510120766f74696e67207374616b657273206861766520616e206f70706f7274756e69747920746f2072656d6f7665207468656d73656c7665732066726f6d207468652073797374656d20696e207468652063617365b4207768657265207468657920617265206f6e20746865206c6f73696e672073696465206f66206120766f74652e304c61756e6368506572696f6410100027060004e420486f77206f6674656e2028696e20626c6f636b7329206e6577207075626c6963207265666572656e646120617265206c61756e636865642e30566f74696e67506572696f6410100027060004b820486f77206f6674656e2028696e20626c6f636b732920746f20636865636b20666f72206e657720766f7465732e44566f74654c6f636b696e67506572696f64101000270600109020546865206d696e696d756d20706572696f64206f6620766f7465206c6f636b696e672e0065012049742073686f756c64206265206e6f2073686f72746572207468616e20656e6163746d656e7420706572696f6420746f20656e73757265207468617420696e207468652063617365206f6620616e20617070726f76616c2c49012074686f7365207375636365737366756c20766f7465727320617265206c6f636b656420696e746f2074686520636f6e73657175656e636573207468617420746865697220766f74657320656e7461696c2e384d696e696d756d4465706f73697418400010a5d4e8000000000000000000000004350120546865206d696e696d756d20616d6f756e7420746f20626520757365642061732061206465706f73697420666f722061207075626c6963207265666572656e64756d2070726f706f73616c2e38496e7374616e74416c6c6f776564e804010c550120496e64696361746f7220666f72207768657468657220616e20656d657267656e6379206f726967696e206973206576656e20616c6c6f77656420746f2068617070656e2e20536f6d6520636861696e73206d617961012077616e7420746f207365742074686973207065726d616e656e746c7920746f206066616c7365602c206f7468657273206d61792077616e7420746f20636f6e646974696f6e206974206f6e207468696e67732073756368a020617320616e207570677261646520686176696e672068617070656e656420726563656e746c792e5446617374547261636b566f74696e67506572696f6410100807000004ec204d696e696d756d20766f74696e6720706572696f6420616c6c6f77656420666f72206120666173742d747261636b207265666572656e64756d2e34436f6f6c6f6666506572696f641010c089010004610120506572696f6420696e20626c6f636b7320776865726520616e2065787465726e616c2070726f706f73616c206d6179206e6f742062652072652d7375626d6974746564206166746572206265696e67207665746f65642e4c507265696d616765427974654465706f736974184000e1f5050000000000000000000000000429012054686520616d6f756e74206f662062616c616e63652074686174206d757374206265206465706f7369746564207065722062797465206f6620707265696d6167652073746f7265642e204d6178566f74657310106400000010b020546865206d6178696d756d206e756d626572206f6620766f74657320666f7220616e206163636f756e742e00d420416c736f207573656420746f20636f6d70757465207765696768742c20616e206f7665726c79206269672076616c75652063616e1501206c65616420746f2065787472696e7369632077697468207665727920626967207765696768743a20736565206064656c65676174656020666f7220696e7374616e63652e304d617850726f706f73616c73101064000000040d0120546865206d6178696d756d206e756d626572206f66207075626c69632070726f706f73616c7320746861742063616e20657869737420617420616e792074696d652e01ed060e1c436f756e63696c011c436f756e63696c182450726f706f73616c730100f106040004902054686520686173686573206f6620746865206163746976652070726f706f73616c732e2850726f706f73616c4f6600010406240902040004cc2041637475616c2070726f706f73616c20666f72206120676976656e20686173682c20696620697427732063757272656e742e18566f74696e670001040624f506040004b420566f746573206f6e206120676976656e2070726f706f73616c2c206966206974206973206f6e676f696e672e3450726f706f73616c436f756e74010010100000000004482050726f706f73616c7320736f206661722e1c4d656d626572730100dc0400043901205468652063757272656e74206d656d62657273206f662074686520636f6c6c6563746976652e20546869732069732073746f72656420736f7274656420286a7573742062792076616c7565292e145072696d65000000040004650120546865207072696d65206d656d62657220746861742068656c70732064657465726d696e65207468652064656661756c7420766f7465206265686176696f7220696e2063617365206f6620616273656e746174696f6e732e01ed0201e40001f9060f48546563686e6963616c436f6d6d69747465650148546563686e6963616c436f6d6d6974746565182450726f706f73616c730100fd06040004902054686520686173686573206f6620746865206163746976652070726f706f73616c732e2850726f706f73616c4f6600010406240902040004cc2041637475616c2070726f706f73616c20666f72206120676976656e20686173682c20696620697427732063757272656e742e18566f74696e670001040624f506040004b420566f746573206f6e206120676976656e2070726f706f73616c2c206966206974206973206f6e676f696e672e3450726f706f73616c436f756e74010010100000000004482050726f706f73616c7320736f206661722e1c4d656d626572730100dc0400043901205468652063757272656e74206d656d62657273206f662074686520636f6c6c6563746976652e20546869732069732073746f72656420736f7274656420286a7573742062792076616c7565292e145072696d65000000040004650120546865207072696d65206d656d62657220746861742068656c70732064657465726d696e65207468652064656661756c7420766f7465206265686176696f7220696e2063617365206f6620616273656e746174696f6e732e01f50201ec00010107104050687261676d656e456c656374696f6e014050687261676d656e456c656374696f6e141c4d656d626572730100050704000c74205468652063757272656e7420656c6563746564206d656d626572732e00b820496e76617269616e743a20416c7761797320736f72746564206261736564206f6e206163636f756e742069642e2452756e6e65727355700100050704001084205468652063757272656e742072657365727665642072756e6e6572732d75702e00590120496e76617269616e743a20416c7761797320736f72746564206261736564206f6e2072616e6b2028776f72736520746f2062657374292e2055706f6e2072656d6f76616c206f662061206d656d6265722c20746865bc206c6173742028692e652e205f626573745f292072756e6e65722d75702077696c6c206265207265706c616365642e2843616e646964617465730100f40400185901205468652070726573656e742063616e646964617465206c6973742e20412063757272656e74206d656d626572206f722072756e6e65722d75702063616e206e6576657220656e746572207468697320766563746f72d020616e6420697320616c7761797320696d706c696369746c7920617373756d656420746f20626520612063616e6469646174652e007c205365636f6e6420656c656d656e7420697320746865206465706f7369742e00b820496e76617269616e743a20416c7761797320736f72746564206261736564206f6e206163636f756e742069642e38456c656374696f6e526f756e647301001010000000000441012054686520746f74616c206e756d626572206f6620766f746520726f756e6473207468617420686176652068617070656e65642c206578636c7564696e6720746865207570636f6d696e67206f6e652e18566f74696e6701010405000d07840000000000000000000000000000000000000000000000000000000000000000000cb820566f74657320616e64206c6f636b6564207374616b65206f66206120706172746963756c617220766f7465722e00c42054574f582d4e4f54453a205341464520617320604163636f756e7449646020697320612063727970746f20686173682e01f90201f01c2050616c6c65744964f50120706872656c65637404d0204964656e74696669657220666f722074686520656c656374696f6e732d70687261676d656e2070616c6c65742773206c6f636b3443616e646964616379426f6e6418400010a5d4e8000000000000000000000004050120486f77206d7563682073686f756c64206265206c6f636b656420757020696e206f7264657220746f207375626d6974206f6e6527732063616e6469646163792e38566f74696e67426f6e64426173651840007013b72e000000000000000000000010942042617365206465706f736974206173736f636961746564207769746820766f74696e672e00550120546869732073686f756c642062652073656e7369626c79206869676820746f2065636f6e6f6d6963616c6c7920656e73757265207468652070616c6c65742063616e6e6f742062652061747461636b656420627994206372656174696e67206120676967616e746963206e756d626572206f6620766f7465732e40566f74696e67426f6e64466163746f72184000d012130000000000000000000000000411012054686520616d6f756e74206f6620626f6e642074686174206e65656420746f206265206c6f636b656420666f72206561636820766f746520283332206279746573292e38446573697265644d656d6265727310100d0000000470204e756d626572206f66206d656d6265727320746f20656c6563742e404465736972656452756e6e65727355701010140000000478204e756d626572206f662072756e6e6572735f757020746f206b6565702e305465726d4475726174696f6e1010c08901000c510120486f77206c6f6e6720656163682073656174206973206b6570742e205468697320646566696e657320746865206e65787420626c6f636b206e756d62657220617420776869636820616e20656c656374696f6e5d0120726f756e642077696c6c2068617070656e2e2049662073657420746f207a65726f2c206e6f20656c656374696f6e732061726520657665722074726967676572656420616e6420746865206d6f64756c652077696c6c5020626520696e2070617373697665206d6f64652e011107114c546563686e6963616c4d656d62657273686970014c546563686e6963616c4d656d62657273686970081c4d656d626572730100dc040004c8205468652063757272656e74206d656d626572736869702c2073746f72656420617320616e206f726465726564205665632e145072696d65000000040004a4205468652063757272656e74207072696d65206d656d6265722c206966206f6e65206578697374732e01010301fc0001150712205472656173757279012054726561737572790c3450726f706f73616c436f756e74010010100000000004a4204e756d626572206f662070726f706f73616c7320746861742068617665206265656e206d6164652e2450726f706f73616c73000104051019070400047c2050726f706f73616c7320746861742068617665206265656e206d6164652e24417070726f76616c7301001d07040004f82050726f706f73616c20696e646963657320746861742068617665206265656e20617070726f76656420627574206e6f742079657420617761726465642e010503010101183050726f706f73616c426f6e6421071050c30000085501204672616374696f6e206f6620612070726f706f73616c27732076616c756520746861742073686f756c6420626520626f6e64656420696e206f7264657220746f20706c616365207468652070726f706f73616c2e110120416e2061636365707465642070726f706f73616c2067657473207468657365206261636b2e20412072656a65637465642070726f706f73616c20646f6573206e6f742e4c50726f706f73616c426f6e644d696e696d756d18400010a5d4e80000000000000000000000044901204d696e696d756d20616d6f756e74206f662066756e647320746861742073686f756c6420626520706c6163656420696e2061206465706f73697420666f72206d616b696e6720612070726f706f73616c2e2c5370656e64506572696f64101000460500048820506572696f64206265747765656e2073756363657373697665207370656e64732e104275726e210710102700000411012050657263656e74616765206f662073706172652066756e64732028696620616e7929207468617420617265206275726e7420706572207370656e6420706572696f642e2050616c6c6574496425072070792f74727372790419012054686520747265617375727927732070616c6c65742069642c207573656420666f72206465726976696e672069747320736f7665726569676e206163636f756e742049442e304d6178417070726f76616c7310106400000004150120546865206d6178696d756d206e756d626572206f6620617070726f76616c7320746861742063616e207761697420696e20746865207370656e64696e672071756575652e0129071318436c61696d730118436c61696d731418436c61696d730001040609011804000014546f74616c0100184000000000000000000000000000000000001c56657374696e670001040609011903040010782056657374696e67207363686564756c6520666f72206120636c61696d2e0d012046697273742062616c616e63652069732074686520746f74616c20616d6f756e7420746861742073686f756c642062652068656c6420666f722076657374696e672ee4205365636f6e642062616c616e636520697320686f77206d7563682073686f756c6420626520756e6c6f636b65642070657220626c6f636b2ecc2054686520626c6f636b206e756d626572206973207768656e207468652076657374696e672073686f756c642073746172742e1c5369676e696e670001040609012103040004c0205468652073746174656d656e74206b696e642074686174206d757374206265207369676e65642c20696620616e792e24507265636c61696d73000104060009010400042d01205072652d636c61696d656420457468657265756d206163636f756e74732c20627920746865204163636f756e74204944207468617420746865792061726520636c61696d656420746f2e010903010501041850726566697828888450617920444f547320746f2074686520506f6c6b61646f74206163636f756e743a00012d07181c56657374696e67011c56657374696e67081c56657374696e6700010402003107040004d820496e666f726d6174696f6e20726567617264696e67207468652076657374696e67206f66206120676976656e206163636f756e742e3853746f7261676556657273696f6e0100390704000c7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e003101204e6577206e6574776f726b732073746172742077697468206c61746573742076657273696f6e2c2061732064657465726d696e6564206279207468652067656e65736973206275696c642e01250301110108444d696e5665737465645472616e73666572184000e40b5402000000000000000000000004e820546865206d696e696d756d20616d6f756e74207472616e7366657272656420746f2063616c6c20607665737465645f7472616e73666572602e4c4d617856657374696e675363686564756c657310101c00000000013d07191c5574696c69747900012d03011501044c626174636865645f63616c6c735f6c696d697410100dd2000004a820546865206c696d6974206f6e20746865206e756d626572206f6620626174636865642063616c6c732e0141071a204964656e7469747901204964656e7469747910284964656e746974794f660001040500450704000c210120496e666f726d6174696f6e20746861742069732070657274696e656e7420746f206964656e746966792074686520656e7469747920626568696e6420616e206163636f756e742e00c02054574f582d4e4f54453a204f4b20e2809520604163636f756e7449646020697320612073656375726520686173682e1c53757065724f660001040200c5030400086101205468652073757065722d6964656e74697479206f6620616e20616c7465726e6174697665202273756222206964656e7469747920746f676574686572207769746820697473206e616d652c2077697468696e2074686174510120636f6e746578742e20496620746865206163636f756e74206973206e6f7420736f6d65206f74686572206163636f756e742773207375622d6964656e746974792c207468656e206a75737420604e6f6e65602e18537562734f660101040500550744000000000000000000000000000000000014b820416c7465726e6174697665202273756222206964656e746974696573206f662074686973206163636f756e742e001d0120546865206669727374206974656d20697320746865206465706f7369742c20746865207365636f6e64206973206120766563746f72206f6620746865206163636f756e74732e00c02054574f582d4e4f54453a204f4b20e2809520604163636f756e7449646020697320612073656375726520686173682e285265676973747261727301005d070400104d012054686520736574206f6620726567697374726172732e204e6f7420657870656374656420746f206765742076657279206269672061732063616e206f6e6c79206265206164646564207468726f7567682061a8207370656369616c206f726967696e20286c696b656c79206120636f756e63696c206d6f74696f6e292e0029012054686520696e64657820696e746f20746869732063616e206265206361737420746f2060526567697374726172496e6465786020746f2067657420612076616c69642076616c75652e013503011901183042617369634465706f7369741840007db52a2f000000000000000000000004d42054686520616d6f756e742068656c64206f6e206465706f73697420666f7220612072656769737465726564206964656e74697479304669656c644465706f736974184000cd5627000000000000000000000000042d012054686520616d6f756e742068656c64206f6e206465706f73697420706572206164646974696f6e616c206669656c6420666f7220612072656769737465726564206964656e746974792e445375624163636f756e744465706f736974184080f884b02e00000000000000000000000c65012054686520616d6f756e742068656c64206f6e206465706f73697420666f7220612072656769737465726564207375626163636f756e742e20546869732073686f756c64206163636f756e7420666f7220746865206661637465012074686174206f6e652073746f72616765206974656d27732076616c75652077696c6c20696e637265617365206279207468652073697a65206f6620616e206163636f756e742049442c20616e642074686572652077696c6c350120626520616e6f746865722074726965206974656d2077686f73652076616c7565206973207468652073697a65206f6620616e206163636f756e7420494420706c75732033322062797465732e384d61785375624163636f756e7473101064000000040d0120546865206d6178696d756d206e756d626572206f66207375622d6163636f756e747320616c6c6f77656420706572206964656e746966696564206163636f756e742e4c4d61784164646974696f6e616c4669656c6473101064000000086501204d6178696d756d206e756d626572206f66206164646974696f6e616c206669656c64732074686174206d61792062652073746f72656420696e20616e2049442e204e656564656420746f20626f756e642074686520492f4fe020726571756972656420746f2061636365737320616e206964656e746974792c206275742063616e2062652070726574747920686967682e344d617852656769737472617273101014000000085101204d61786d696d756d206e756d626572206f66207265676973747261727320616c6c6f77656420696e207468652073797374656d2e204e656564656420746f20626f756e642074686520636f6d706c65786974797c206f662c20652e672e2c207570646174696e67206a756467656d656e74732e016d071c1450726f7879011450726f7879081c50726f78696573010104050071074400000000000000000000000000000000000845012054686520736574206f66206163636f756e742070726f786965732e204d61707320746865206163636f756e74207768696368206861732064656c65676174656420746f20746865206163636f756e7473210120776869636820617265206265696e672064656c65676174656420746f2c20746f67657468657220776974682074686520616d6f756e742068656c64206f6e206465706f7369742e34416e6e6f756e63656d656e74730101040500810744000000000000000000000000000000000004ac2054686520616e6e6f756e63656d656e7473206d616465206279207468652070726f787920286b6579292e01d503011d01184050726f78794465706f7369744261736518400084b2952e000000000000000000000010110120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e6720612070726f78792e00010120546869732069732068656c6420666f7220616e206164646974696f6e616c2073746f72616765206974656d2077686f73652076616c75652073697a652069732501206073697a656f662842616c616e6365296020627974657320616e642077686f7365206b65792073697a65206973206073697a656f66284163636f756e74496429602062797465732e4850726f78794465706f736974466163746f7218408066ab1300000000000000000000000014bc2054686520616d6f756e74206f662063757272656e6379206e6565646564207065722070726f78792061646465642e00350120546869732069732068656c6420666f7220616464696e6720333220627974657320706c757320616e20696e7374616e6365206f66206050726f78795479706560206d6f726520696e746f20616101207072652d6578697374696e672073746f726167652076616c75652e20546875732c207768656e20636f6e6669677572696e67206050726f78794465706f736974466163746f7260206f6e652073686f756c642074616b65f420696e746f206163636f756e7420603332202b2070726f78795f747970652e656e636f646528292e6c656e282960206279746573206f6620646174612e284d617850726f7869657310102000000004f020546865206d6178696d756d20616d6f756e74206f662070726f7869657320616c6c6f77656420666f7220612073696e676c65206163636f756e742e284d617850656e64696e6710102000000004450120546865206d6178696d756d20616d6f756e74206f662074696d652d64656c6179656420616e6e6f756e63656d656e747320746861742061726520616c6c6f77656420746f2062652070656e64696e672e5c416e6e6f756e63656d656e744465706f7369744261736518400084b2952e000000000000000000000010310120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e6720616e20616e6e6f756e63656d656e742e00490120546869732069732068656c64207768656e2061206e65772073746f72616765206974656d20686f6c64696e672061206042616c616e636560206973206372656174656420287479706963616c6c7920313620206279746573292e64416e6e6f756e63656d656e744465706f736974466163746f72184000cd562700000000000000000000000010d42054686520616d6f756e74206f662063757272656e6379206e65656465642070657220616e6e6f756e63656d656e74206d6164652e00590120546869732069732068656c6420666f7220616464696e6720616e20604163636f756e744964602c2060486173686020616e642060426c6f636b4e756d6265726020287479706963616c6c79203638206279746573298c20696e746f2061207072652d6578697374696e672073746f726167652076616c75652e0191071d204d756c746973696701204d756c746973696708244d756c746973696773000108050295079907040004942054686520736574206f66206f70656e206d756c7469736967206f7065726174696f6e732e1443616c6c7300010406049d0704000001dd030129010c2c4465706f736974426173651840008c61c52e000000000000000000000018590120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e672061206d756c746973696720657865637574696f6e206f7220746f842073746f726520612064697370617463682063616c6c20666f72206c617465722e00010120546869732069732068656c6420666f7220616e206164646974696f6e616c2073746f72616765206974656d2077686f73652076616c75652073697a652069733101206034202b2073697a656f662828426c6f636b4e756d6265722c2042616c616e63652c204163636f756e74496429296020627974657320616e642077686f7365206b65792073697a652069738020603332202b2073697a656f66284163636f756e74496429602062797465732e344465706f736974466163746f72184000d012130000000000000000000000000c55012054686520616d6f756e74206f662063757272656e6379206e65656465642070657220756e6974207468726573686f6c64207768656e206372656174696e672061206d756c746973696720657865637574696f6e2e00250120546869732069732068656c6420666f7220616464696e67203332206279746573206d6f726520696e746f2061207072652d6578697374696e672073746f726167652076616c75652e384d61785369676e61746f72696573250108640004ec20546865206d6178696d756d20616d6f756e74206f66207369676e61746f7269657320616c6c6f77656420696e20746865206d756c74697369672e01a1071e20426f756e746965730120426f756e74696573102c426f756e7479436f756e74010010100000000004c0204e756d626572206f6620626f756e74792070726f706f73616c7320746861742068617665206265656e206d6164652e20426f756e746965730001040510a5070400047820426f756e7469657320746861742068617665206265656e206d6164652e48426f756e74794465736372697074696f6e730001040510280400048020546865206465736372697074696f6e206f66206561636820626f756e74792e3c426f756e7479417070726f76616c7301007502040004ec20426f756e747920696e646963657320746861742068617665206265656e20617070726f76656420627574206e6f74207965742066756e6465642e01e5030131011c44426f756e74794465706f73697442617365184000e40b5402000000000000000000000004e82054686520616d6f756e742068656c64206f6e206465706f73697420666f7220706c6163696e67206120626f756e74792070726f706f73616c2e60426f756e74794465706f7369745061796f757444656c6179101000c20100045901205468652064656c617920706572696f6420666f72207768696368206120626f756e74792062656e6566696369617279206e65656420746f2077616974206265666f726520636c61696d20746865207061796f75742e48426f756e7479557064617465506572696f64101080c61300046c20426f756e7479206475726174696f6e20696e20626c6f636b732e50426f756e747943757261746f724465706f73697421071020a107000849012050657263656e74616765206f66207468652063757261746f722066656520746861742077696c6c20626520726573657276656420757066726f6e74206173206465706f73697420666f7220626f756e7479242063757261746f722e48426f756e747956616c75654d696e696d756d184000e876481700000000000000000000000470204d696e696d756d2076616c756520666f72206120626f756e74792e48446174614465706f73697450657242797465184000e1f5050000000000000000000000000461012054686520616d6f756e742068656c64206f6e206465706f7369742070657220627974652077697468696e2074686520746970207265706f727420726561736f6e206f7220626f756e7479206465736372697074696f6e2e4c4d6178696d756d526561736f6e4c656e6774681010004000000488204d6178696d756d2061636365707461626c6520726561736f6e206c656e6774682e01ad072210546970730110546970730810546970730001040524b10704000c650120546970734d6170207468617420617265206e6f742079657420636f6d706c657465642e204b65796564206279207468652068617368206f66206028726561736f6e2c2077686f29602066726f6d207468652076616c75652e3d012054686973206861732074686520696e73656375726520656e756d657261626c6520686173682066756e6374696f6e2073696e636520746865206b657920697473656c6620697320616c7265616479802067756172616e7465656420746f20626520612073656375726520686173682e1c526561736f6e7300010406242804000849012053696d706c6520707265696d616765206c6f6f6b75702066726f6d2074686520726561736f6e2773206861736820746f20746865206f726967696e616c20646174612e20416761696e2c2068617320616e610120696e73656375726520656e756d657261626c6520686173682073696e636520746865206b65792069732067756172616e7465656420746f2062652074686520726573756c74206f6620612073656375726520686173682e01e903013501144c4d6178696d756d526561736f6e4c656e6774681010004000000488204d6178696d756d2061636365707461626c6520726561736f6e206c656e6774682e48446174614465706f73697450657242797465184000e1f5050000000000000000000000000461012054686520616d6f756e742068656c64206f6e206465706f7369742070657220627974652077697468696e2074686520746970207265706f727420726561736f6e206f7220626f756e7479206465736372697074696f6e2e30546970436f756e74646f776e1010403800000445012054686520706572696f6420666f722077686963682061207469702072656d61696e73206f70656e20616674657220697320686173206163686965766564207468726573686f6c6420746970706572732e3454697046696e6465727346656571020414043501205468652070657263656e74206f66207468652066696e616c2074697020776869636820676f657320746f20746865206f726967696e616c207265706f72746572206f6620746865207469702e505469705265706f72744465706f73697442617365184000e40b5402000000000000000000000004d42054686520616d6f756e742068656c64206f6e206465706f73697420666f7220706c6163696e67206120746970207265706f72742e01b5072368456c656374696f6e50726f76696465724d756c746950686173650168456c656374696f6e50726f76696465724d756c746950686173652814526f756e64010010100100000018ac20496e7465726e616c20636f756e74657220666f7220746865206e756d626572206f6620726f756e64732e00550120546869732069732075736566756c20666f722064652d6475706c69636174696f6e206f66207472616e73616374696f6e73207375626d697474656420746f2074686520706f6f6c2c20616e642067656e6572616c6c20646961676e6f7374696373206f66207468652070616c6c65742e004d012054686973206973206d6572656c7920696e6372656d656e746564206f6e6365207065722065766572792074696d65207468617420616e20757073747265616d2060656c656374602069732063616c6c65642e3043757272656e7450686173650100b9070400043c2043757272656e742070686173652e38517565756564536f6c7574696f6e0000c1070400043d012043757272656e74206265737420736f6c7574696f6e2c207369676e6564206f7220756e7369676e65642c2071756575656420746f2062652072657475726e65642075706f6e2060656c656374602e20536e617073686f740000c50704000c7020536e617073686f742064617461206f662074686520726f756e642e005d01205468697320697320637265617465642061742074686520626567696e6e696e67206f6620746865207369676e656420706861736520616e6420636c65617265642075706f6e2063616c6c696e672060656c656374602e38446573697265645461726765747300001004000ccc2044657369726564206e756d626572206f66207461726765747320746f20656c65637420666f72207468697320726f756e642e00a8204f6e6c7920657869737473207768656e205b60536e617073686f74605d2069732070726573656e742e40536e617073686f744d657461646174610000c50404000c9820546865206d65746164617461206f6620746865205b60526f756e64536e617073686f74605d00a8204f6e6c7920657869737473207768656e205b60536e617073686f74605d2069732070726573656e742e645369676e65645375626d697373696f6e4e657874496e646578010010100000000024010120546865206e65787420696e64657820746f2062652061737369676e656420746f20616e20696e636f6d696e67207369676e6564207375626d697373696f6e2e007501204576657279206163636570746564207375626d697373696f6e2069732061737369676e6564206120756e6971756520696e6465783b207468617420696e64657820697320626f756e6420746f207468617420706172746963756c61726501207375626d697373696f6e20666f7220746865206475726174696f6e206f662074686520656c656374696f6e2e204f6e20656c656374696f6e2066696e616c697a6174696f6e2c20746865206e65787420696e6465782069733020726573657420746f20302e0069012057652063616e2774206a7573742075736520605369676e65645375626d697373696f6e496e64696365732e6c656e2829602c206265636175736520746861742773206120626f756e646564207365743b20706173742069747359012063617061636974792c2069742077696c6c2073696d706c792073617475726174652e2057652063616e2774206a7573742069746572617465206f76657220605369676e65645375626d697373696f6e734d6170602cf4206265636175736520697465726174696f6e20697320736c6f772e20496e73746561642c2077652073746f7265207468652076616c756520686572652e5c5369676e65645375626d697373696f6e496e64696365730100d1070400184d01204120736f727465642c20626f756e64656420736574206f6620602873636f72652c20696e64657829602c20776865726520656163682060696e6465786020706f696e747320746f20612076616c756520696e5420605369676e65645375626d697373696f6e73602e007101205765206e65766572206e65656420746f2070726f63657373206d6f7265207468616e20612073696e676c65207369676e6564207375626d697373696f6e20617420612074696d652e205369676e6564207375626d697373696f6e7375012063616e206265207175697465206c617267652c20736f2077652772652077696c6c696e6720746f207061792074686520636f7374206f66206d756c7469706c6520646174616261736520616363657373657320746f206163636573732101207468656d206f6e6520617420612074696d6520696e7374656164206f662072656164696e6720616e64206465636f64696e6720616c6c206f66207468656d206174206f6e63652e505369676e65645375626d697373696f6e734d61700101040510e10711020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000001c7420556e636865636b65642c207369676e656420736f6c7574696f6e732e00690120546f676574686572207769746820605375626d697373696f6e496e6469636573602c20746869732073746f726573206120626f756e64656420736574206f6620605369676e65645375626d697373696f6e7360207768696c65ec20616c6c6f77696e6720757320746f206b656570206f6e6c7920612073696e676c65206f6e6520696e206d656d6f727920617420612074696d652e0069012054776f78206e6f74653a20746865206b6579206f6620746865206d617020697320616e206175746f2d696e6372656d656e74696e6720696e6465782077686963682075736572732063616e6e6f7420696e7370656374206f72f4206166666563743b2077652073686f756c646e2774206e65656420612063727970746f67726170686963616c6c7920736563757265206861736865722e544d696e696d756d556e7472757374656453636f72650000c1040400105d0120546865206d696e696d756d2073636f7265207468617420656163682027756e747275737465642720736f6c7574696f6e206d7573742061747461696e20696e206f7264657220746f20626520636f6e7369646572656428206665617369626c652e00b82043616e206265207365742076696120607365745f6d696e696d756d5f756e747275737465645f73636f7265602e01ed030139013834556e7369676e656450686173651010580200000480204475726174696f6e206f662074686520756e7369676e65642070686173652e2c5369676e656450686173651010580200000478204475726174696f6e206f6620746865207369676e65642070686173652e70536f6c7574696f6e496d70726f76656d656e745468726573686f6c64b9011020a10700084d0120546865206d696e696d756d20616d6f756e74206f6620696d70726f76656d656e7420746f2074686520736f6c7574696f6e2073636f7265207468617420646566696e6573206120736f6c7574696f6e206173642022626574746572222028696e20616e79207068617365292e384f6666636861696e52657065617410100500000010b42054686520726570656174207468726573686f6c64206f6620746865206f6666636861696e20776f726b65722e00610120466f72206578616d706c652c20696620697420697320352c2074686174206d65616e732074686174206174206c65617374203520626c6f636b732077696c6c20656c61707365206265747765656e20617474656d7074738420746f207375626d69742074686520776f726b6572277320736f6c7574696f6e2e3c4d696e657254785072696f72697479202065666666666666e604250120546865207072696f72697479206f662074686520756e7369676e6564207472616e73616374696f6e207375626d697474656420696e2074686520756e7369676e65642d7068617365384d696e65724d61785765696768742020c08466655701000010b8204d6178696d756d20776569676874207468617420746865206d696e65722073686f756c6420636f6e73756d652e00550120546865206d696e65722077696c6c20656e7375726520746861742074686520746f74616c20776569676874206f662074686520756e7369676e656420736f6c7574696f6e2077696c6c206e6f7420657863656564d820746869732076616c75652c206261736564206f6e205b60576569676874496e666f3a3a7375626d69745f756e7369676e6564605d2e505369676e65644d61785375626d697373696f6e731010100000001ce4204d6178696d756d206e756d626572206f66207369676e6564207375626d697373696f6e7320746861742063616e206265207175657565642e005501204974206973206265737420746f2061766f69642061646a757374696e67207468697320647572696e6720616e20656c656374696f6e2c20617320697420696d706163747320646f776e73747265616d2064617461650120737472756374757265732e20496e20706172746963756c61722c20605369676e65645375626d697373696f6e496e64696365733c543e6020697320626f756e646564206f6e20746869732076616c75652e20496620796f75f42075706461746520746869732076616c756520647572696e6720616e20656c656374696f6e2c20796f75205f6d7573745f20656e7375726520746861744d0120605369676e65645375626d697373696f6e496e64696365732e6c656e282960206973206c657373207468616e206f7220657175616c20746f20746865206e65772076616c75652e204f74686572776973652cf020617474656d70747320746f207375626d6974206e657720736f6c7574696f6e73206d617920636175736520612072756e74696d652070616e69632e3c5369676e65644d61785765696768742020c0846665570100000c94204d6178696d756d20776569676874206f662061207369676e656420736f6c7574696f6e2e00fc20546869732073686f756c642070726f6261626c792062652073696d696c617220746f205b60436f6e6669673a3a4d696e65724d6178576569676874605d2e405369676e656452657761726442617365184000e40b54020000000000000000000000048820426173652072657761726420666f722061207369676e656420736f6c7574696f6e445369676e65644465706f73697442617365184000a0db215d000000000000000000000004902042617365206465706f73697420666f722061207369676e656420736f6c7574696f6e2e445369676e65644465706f736974427974651840787d010000000000000000000000000004a0205065722d62797465206465706f73697420666f722061207369676e656420736f6c7574696f6e2e4c5369676e65644465706f73697457656967687418400000000000000000000000000000000004a8205065722d776569676874206465706f73697420666f722061207369676e656420736f6c7574696f6e2e54566f746572536e617073686f74506572426c6f636b1010e4570000185d0120546865206d6178696d756d206e756d626572206f6620766f7465727320746f2070757420696e2074686520736e617073686f742e20417420746865206d6f6d656e742c20736e617073686f747320617265206f6e6c796101206f76657220612073696e676c6520626c6f636b2c20627574206f6e6365206d756c74692d626c6f636b20656c656374696f6e732061726520696e74726f647563656420746865792077696c6c2074616b6520706c61636558206f766572206d756c7469706c6520626c6f636b732e00310120416c736f2c206e6f746520746865206461746120747970653a2049662074686520766f746572732061726520726570726573656e746564206279206120607533326020696e206074797065390120436f6d70616374536f6c7574696f6e602c207468652073616d652060753332602069732075736564206865726520746f20656e7375726520626f756e647320617265207265737065637465642e384d696e65724d61784c656e67746810100000360010fc204d6178696d756d206c656e6774682028627974657329207468617420746865206d696e656420736f6c7574696f6e2073686f756c6420636f6e73756d652e00550120546865206d696e65722077696c6c20656e7375726520746861742074686520746f74616c206c656e677468206f662074686520756e7369676e656420736f6c7574696f6e2077696c6c206e6f74206578636565643020746869732076616c75652e01e507244050617261636861696e734f726967696e00000000003234436f6e66696775726174696f6e0134436f6e66696775726174696f6e0830416374697665436f6e6669670100e907e90200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000100000001000000000000000000060000006400000002000000c8000000010000000000000000000000000000000000000000c817a80400000004c8205468652061637469766520636f6e66696775726174696f6e20666f72207468652063757272656e742073657373696f6e2e3450656e64696e67436f6e6669670001040510e907040004d42050656e64696e6720636f6e66696775726174696f6e2028696620616e792920666f7220746865206e6578742073657373696f6e2e01d904000001ed07332c5061726173536861726564012c50617261735368617265640c4c43757272656e7453657373696f6e496e6465780100101000000000046c205468652063757272656e742073657373696f6e20696e6465782e5841637469766556616c696461746f72496e64696365730100f107040008090120416c6c207468652076616c696461746f7273206163746976656c792070617274696369706174696e6720696e2070617261636861696e20636f6e73656e7375732eb020496e64696365732061726520696e746f207468652062726f616465722076616c696461746f72207365742e4c41637469766556616c696461746f724b6579730100f5070400088101205468652070617261636861696e206174746573746174696f6e206b657973206f66207468652076616c696461746f7273206163746976656c792070617274696369706174696e6720696e2070617261636861696e20636f6e73656e7375732ef020546869732073686f756c64206265207468652073616d65206c656e677468206173206041637469766556616c696461746f72496e6469636573602e01dd04000000343450617261496e636c7573696f6e013450617261496e636c7573696f6e0c54417661696c6162696c6974794269746669656c6473000104050105f907040004650120546865206c6174657374206269746669656c6420666f7220656163682076616c696461746f722c20726566657272656420746f20627920746865697220696e64657820696e207468652076616c696461746f72207365742e4c50656e64696e67417661696c6162696c697479000104055101fd07040004b42043616e646964617465732070656e64696e6720617661696c6162696c6974792062792060506172614964602e7850656e64696e67417661696c6162696c697479436f6d6d69746d656e7473000104055101150504000405012054686520636f6d6d69746d656e7473206f662063616e646964617465732070656e64696e6720617661696c6162696c6974792c2062792060506172614964602e01e10401450100010108353050617261496e686572656e74013050617261496e686572656e740420496e636c75646564000080040018ec20576865746865722074686520706172617320696e686572656e742077617320696e636c756465642077697468696e207468697320626c6f636b2e0069012054686520604f7074696f6e3c28293e60206973206566666563746976656c7920612060626f6f6c602c20627574206974206e6576657220686974732073746f7261676520696e2074686520604e6f6e65602076617269616e74bc2064756520746f207468652067756172616e74656573206f66204652414d4527732073746f7261676520415049732e004901204966207468697320697320604e6f6e65602061742074686520656e64206f662074686520626c6f636b2c2077652070616e696320616e642072656e6465722074686520626c6f636b20696e76616c69642e01e50400000105083634506172615363686564756c65720134506172615363686564756c6572183c56616c696461746f7247726f757073010009080400186d0120416c6c207468652076616c696461746f722067726f7570732e204f6e6520666f72206561636820636f72652e20496e64696365732061726520696e746f206041637469766556616c696461746f727360202d206e6f74207468656d012062726f6164657220736574206f6620506f6c6b61646f742076616c696461746f72732c2062757420696e7374656164206a7573742074686520737562736574207573656420666f722070617261636861696e7320647572696e673820746869732073657373696f6e2e00810120426f756e643a20546865206e756d626572206f6620636f726573206973207468652073756d206f6620746865206e756d62657273206f662070617261636861696e7320616e642070617261746872656164206d756c7469706c65786572732e810120526561736f6e61626c792c203130302d313030302e2054686520646f6d696e616e7420666163746f7220697320746865206e756d626572206f662076616c696461746f72733a207361666520757070657220626f756e642061742031306b2e3c50617261746872656164517565756501000d081400000000001019012041207175657565206f66207570636f6d696e6720636c61696d7320616e6420776869636820636f726520746865792073686f756c64206265206d6170706564206f6e746f2e00150120546865206e756d626572206f662071756575656420636c61696d7320697320626f756e6465642061742074686520607363686564756c696e675f6c6f6f6b6168656164605501206d756c7469706c69656420627920746865206e756d626572206f662070617261746872656164206d756c7469706c6578657220636f7265732e20526561736f6e61626c792c203130202a203530203d203530302e44417661696c6162696c697479436f726573010021080400209d01204f6e6520656e74727920666f72206561636820617661696c6162696c69747920636f72652e20456e74726965732061726520604e6f6e65602069662074686520636f7265206973206e6f742063757272656e746c79206f636375706965642e2043616e206265c82074656d706f726172696c792060536f6d6560206966207363686564756c656420627574206e6f74206f636375706965642e41012054686520692774682070617261636861696e2062656c6f6e677320746f20746865206927746820636f72652c2077697468207468652072656d61696e696e6720636f72657320616c6c206265696e676420706172617468726561642d6d756c7469706c65786572732e00d820426f756e64656420627920746865206d6178696d756d206f6620656974686572206f662074686573652074776f2076616c7565733ae42020202a20546865206e756d626572206f662070617261636861696e7320616e642070617261746872656164206d756c7469706c657865727345012020202a20546865206e756d626572206f662076616c696461746f727320646976696465642062792060636f6e66696775726174696f6e2e6d61785f76616c696461746f72735f7065725f636f7265602e5050617261746872656164436c61696d496e64657801002d08040010590120416e20696e646578207573656420746f20656e737572652074686174206f6e6c79206f6e6520636c61696d206f6e206120706172617468726561642065786973747320696e20746865207175657565206f72206973b42063757272656e746c79206265696e672068616e646c656420627920616e206f6363757069656420636f72652e007d0120426f756e64656420627920746865206e756d626572206f66207061726174687265616420636f72657320616e64207363686564756c696e67206c6f6f6b61686561642e20526561736f6e61626c792c203130202a203530203d203530302e4453657373696f6e5374617274426c6f636b010010100000000018a5012054686520626c6f636b206e756d626572207768657265207468652073657373696f6e207374617274206f636375727265642e205573656420746f20747261636b20686f77206d616e792067726f757020726f746174696f6e732068617665206f636375727265642e005501204e6f7465207468617420696e2074686520636f6e74657874206f662070617261636861696e73206d6f64756c6573207468652073657373696f6e206368616e6765206973207369676e616c656420647572696e6761012074686520626c6f636b20616e6420656e61637465642061742074686520656e64206f662074686520626c6f636b20286174207468652066696e616c697a6174696f6e2073746167652c20746f206265206578616374292e5901205468757320666f7220616c6c20696e74656e747320616e6420707572706f7365732074686520656666656374206f66207468652073657373696f6e206368616e6765206973206f6273657276656420617420746865650120626c6f636b20666f6c6c6f77696e67207468652073657373696f6e206368616e67652c20626c6f636b206e756d626572206f66207768696368207765207361766520696e20746869732073746f726167652076616c75652e245363686564756c656401003108040018e02043757272656e746c79207363686564756c656420636f726573202d20667265652062757420757020746f206265206f636375706965642e004d0120426f756e64656420627920746865206e756d626572206f6620636f7265733a206f6e6520666f7220656163682070617261636861696e20616e642070617261746872656164206d756c7469706c657865722e00fd01205468652076616c756520636f6e7461696e656420686572652077696c6c206e6f742062652076616c69642061667465722074686520656e64206f66206120626c6f636b2e2052756e74696d6520415049732073686f756c64206265207573656420746f2064657465726d696e65207363686564756c656420636f7265732f6020666f7220746865207570636f6d696e6720626c6f636b2e000000003714506172617301145061726173442850617261636861696e7301002d08040004350120416c6c2070617261636861696e732e204f72646572656420617363656e64696e672062792060506172614964602e20506172617468726561647320617265206e6f7420696e636c756465642e38506172614c6966656379636c65730001040551013d08040004bc205468652063757272656e74206c6966656379636c65206f66206120616c6c206b6e6f776e2050617261204944732e1448656164730001040551016901040004a02054686520686561642d64617461206f66206576657279207265676973746572656420706172612e3c43757272656e74436f646548617368000104055101650104000cb4205468652076616c69646174696f6e20636f64652068617368206f66206576657279206c69766520706172612e00e420436f72726573706f6e64696e6720636f64652063616e206265207265747269657665642077697468205b60436f6465427948617368605d2e3050617374436f646548617368000104054108650104001061012041637475616c207061737420636f646520686173682c20696e646963617465642062792074686520706172612069642061732077656c6c2061732074686520626c6f636b206e756d6265722061742077686963682069744420626563616d65206f757464617465642e00e420436f72726573706f6e64696e6720636f64652063616e206265207265747269657665642077697468205b60436f6465427948617368605d2e3050617374436f64654d65746101010405510145080800000c4901205061737420636f6465206f662070617261636861696e732e205468652070617261636861696e73207468656d73656c766573206d6179206e6f74206265207265676973746572656420616e796d6f72652c49012062757420776520616c736f206b65657020746865697220636f6465206f6e2d636861696e20666f72207468652073616d6520616d6f756e74206f662074696d65206173206f7574646174656420636f6465b420746f206b65657020697420617661696c61626c6520666f72207365636f6e6461727920636865636b6572732e3c50617374436f64655072756e696e6701005108040018a1012057686963682070617261732068617665207061737420636f64652074686174206e65656473207072756e696e6720616e64207468652072656c61792d636861696e20626c6f636b2061742077686963682074686520636f646520776173207265706c616365642e8101204e6f746520746861742074686973206973207468652061637475616c20686569676874206f662074686520696e636c7564656420626c6f636b2c206e6f74207468652065787065637465642068656967687420617420776869636820746865ec20636f6465207570677261646520776f756c64206265206170706c6965642c20616c74686f7567682074686579206d617920626520657175616c2e9101205468697320697320746f20656e737572652074686520656e7469726520616363657074616e636520706572696f6420697320636f76657265642c206e6f7420616e206f666673657420616363657074616e636520706572696f64207374617274696e6749012066726f6d207468652074696d65206174207768696368207468652070617261636861696e20706572636569766573206120636f6465207570677261646520617320686176696e67206f636375727265642e5501204d756c7469706c6520656e747269657320666f7220612073696e676c65207061726120617265207065726d69747465642e204f72646572656420617363656e64696e6720627920626c6f636b206e756d6265722e48467574757265436f646555706772616465730001040551011004000c29012054686520626c6f636b206e756d6265722061742077686963682074686520706c616e6e656420636f6465206368616e676520697320657870656374656420666f72206120706172612e650120546865206368616e67652077696c6c206265206170706c696564206166746572207468652066697273742070617261626c6f636b20666f72207468697320494420696e636c75646564207768696368206578656375746573190120696e2074686520636f6e74657874206f6620612072656c617920636861696e20626c6f636b20776974682061206e756d626572203e3d206065787065637465645f6174602e38467574757265436f646548617368000104055101650104000c9c205468652061637475616c2066757475726520636f64652068617368206f66206120706172612e00e420436f72726573706f6e64696e6720636f64652063616e206265207265747269657665642077697468205b60436f6465427948617368605d2e5055706772616465476f41686561645369676e616c0001040551015508040024a10120546869732069732075736564206279207468652072656c61792d636861696e20746f20636f6d6d756e696361746520746f20612070617261636861696e206120676f2d6168656164207769746820696e2074686520757067726164652070726f6365647572652e00750120546869732076616c756520697320616273656e74207768656e20746865726520617265206e6f207570677261646573207363686564756c6564206f7220647572696e67207468652074696d65207468652072656c617920636861696e7d0120706572666f726d732074686520636865636b732e20497420697320736574206174207468652066697273742072656c61792d636861696e20626c6f636b207768656e2074686520636f72726573706f6e64696e672070617261636861696e65012063616e207377697463682069747320757067726164652066756e6374696f6e2e20417320736f6f6e206173207468652070617261636861696e277320626c6f636b20697320696e636c756465642c207468652076616c756558206765747320726573657420746f20604e6f6e65602e006501204e4f544520746861742074686973206669656c6420697320757365642062792070617261636861696e7320766961206d65726b6c652073746f726167652070726f6f66732c207468657265666f7265206368616e67696e67c42074686520666f726d61742077696c6c2072657175697265206d6967726174696f6e206f662070617261636861696e732e60557067726164655265737472696374696f6e5369676e616c0001040551015908040024690120546869732069732075736564206279207468652072656c61792d636861696e20746f20636f6d6d756e6963617465207468617420746865726520617265207265737472696374696f6e7320666f7220706572666f726d696e677c20616e207570677261646520666f7220746869732070617261636861696e2e0059012054686973206d617920626520612062656361757365207468652070617261636861696e20776169747320666f7220746865207570677261646520636f6f6c646f776e20746f206578706972652e20416e6f746865726d0120706f74656e7469616c207573652063617365206973207768656e2077652077616e7420746f20706572666f726d20736f6d65206d61696e74656e616e63652028737563682061732073746f72616765206d6967726174696f6e29e020776520636f756c6420726573747269637420757067726164657320746f206d616b65207468652070726f636573732073696d706c65722e006501204e4f544520746861742074686973206669656c6420697320757365642062792070617261636861696e7320766961206d65726b6c652073746f726167652070726f6f66732c207468657265666f7265206368616e67696e67c42074686520666f726d61742077696c6c2072657175697265206d6967726174696f6e206f662070617261636861696e732e4055706772616465436f6f6c646f776e730100510804000c510120546865206c697374206f662070617261636861696e73207468617420617265206177616974696e6720666f722074686569722075706772616465207265737472696374696f6e20746f20636f6f6c646f776e2e008c204f72646572656420617363656e64696e6720627920626c6f636b206e756d6265722e405570636f6d696e67557067726164657301005108040010590120546865206c697374206f66207570636f6d696e6720636f64652075706772616465732e2045616368206974656d20697320612070616972206f66207768696368207061726120706572666f726d73206120636f6465e8207570677261646520616e642061742077686963682072656c61792d636861696e20626c6f636b2069742069732065787065637465642061742e008c204f72646572656420617363656e64696e6720627920626c6f636b206e756d6265722e30416374696f6e73517565756501010405102d0804000415012054686520616374696f6e7320746f20706572666f726d20647572696e6720746865207374617274206f6620612073706563696669632073657373696f6e20696e6465782e505570636f6d696e67506172617347656e657369730001040551015d08040004a0205570636f6d696e6720706172617320696e7374616e74696174696f6e20617267756d656e74732e38436f64654279486173685265667301010406650110100000000004290120546865206e756d626572206f66207265666572656e6365206f6e207468652076616c69646174696f6e20636f646520696e205b60436f6465427948617368605d2073746f726167652e28436f64654279486173680001040665012505040010902056616c69646174696f6e20636f64652073746f7265642062792069747320686173682e00310120546869732073746f7261676520697320636f6e73697374656e742077697468205b60467574757265436f646548617368605d2c205b6043757272656e74436f646548617368605d20616e6448205b6050617374436f646548617368605d2e01510501750100016108382c496e697469616c697a6572012c496e697469616c697a65720838486173496e697469616c697a656400008004002021012057686574686572207468652070617261636861696e73206d6f64756c65732068617665206265656e20696e697469616c697a65642077697468696e207468697320626c6f636b2e0025012053656d616e746963616c6c7920612060626f6f6c602c2062757420746869732067756172616e746565732069742073686f756c64206e65766572206869742074686520747269652c6901206173207468697320697320636c656172656420696e20606f6e5f66696e616c697a656020616e64204672616d65206f7074696d697a657320604e6f6e65602076616c75657320746f20626520656d7074792076616c7565732e007d0120417320612060626f6f6c602c20607365742866616c7365296020616e64206072656d6f766528296020626f7468206c65616420746f20746865206e6578742060676574282960206265696e672066616c73652c20627574206f6e65206f667901207468656d2077726974657320746f20746865207472696520616e64206f6e6520646f6573206e6f742e205468697320636f6e667573696f6e206d616b657320604f7074696f6e3c28293e60206d6f7265207375697461626c6520666f7280207468652073656d616e74696373206f662074686973207661726961626c652e58427566666572656453657373696f6e4368616e6765730100650804001c59012042756666657265642073657373696f6e206368616e67657320616c6f6e6720776974682074686520626c6f636b206e756d62657220617420776869636820746865792073686f756c64206265206170706c6965642e005d01205479706963616c6c7920746869732077696c6c20626520656d707479206f72206f6e6520656c656d656e74206c6f6e672e2041706172742066726f6d20746861742074686973206974656d206e65766572206869747334207468652073746f726167652e00690120486f776576657220746869732069732061206056656360207265676172646c65737320746f2068616e646c6520766172696f757320656467652063617365732074686174206d6179206f636375722061742072756e74696d65c0207570677261646520626f756e646172696573206f7220696620676f7665726e616e636520696e74657276656e65732e015505000000390c446d70010c446d700854446f776e776172644d6573736167655175657565730101040551016d08040004d02054686520646f776e77617264206d657373616765732061646472657373656420666f722061206365727461696e20706172612e64446f776e776172644d65737361676551756575654865616473010104055101248000000000000000000000000000000000000000000000000000000000000000001c25012041206d617070696e6720746861742073746f7265732074686520646f776e77617264206d657373616765207175657565204d5143206865616420666f72206561636820706172612e00902045616368206c696e6b20696e207468697320636861696e20686173206120666f726d3a78206028707265765f686561642c20422c2048284d2929602c207768657265e8202d2060707265765f68656164603a206973207468652070726576696f757320686561642068617368206f72207a65726f206966206e6f6e652e2101202d206042603a206973207468652072656c61792d636861696e20626c6f636b206e756d62657220696e2077686963682061206d6573736167652077617320617070656e6465642ed4202d206048284d29603a206973207468652068617368206f6620746865206d657373616765206265696e6720617070656e6465642e0159050000003a0c556d70010c556d70184c52656c61794469737061746368517565756573010104055101c501040018710120546865206d657373616765732077616974696e6720746f2062652068616e646c6564206279207468652072656c61792d636861696e206f726967696e6174696e672066726f6d2061206365727461696e2070617261636861696e2e007901204e6f7465207468617420736f6d6520757077617264206d65737361676573206d696768742068617665206265656e20616c72656164792070726f6365737365642062792074686520696e636c7573696f6e206c6f6769632e20452e672e74206368616e6e656c206d616e6167656d656e74206d657373616765732e00a820546865206d65737361676573206172652070726f63657373656420696e204649464f206f726465722e5852656c61794469737061746368517565756553697a65010104055101742000000000000000002c45012053697a65206f6620746865206469737061746368207175657565732e204361636865732073697a6573206f66207468652071756575657320696e206052656c617944697370617463685175657565602e00f0204669727374206974656d20696e20746865207475706c652069732074686520636f756e74206f66206d6573736167657320616e64207365636f6e64e02069732074686520746f74616c206c656e6774682028696e20627974657329206f6620746865206d657373616765207061796c6f6164732e007901204e6f74652074686174207468697320697320616e20617578696c69617279206d617070696e673a206974277320706f737369626c6520746f2074656c6c2074686520627974652073697a6520616e6420746865206e756d626572206f667901206d65737361676573206f6e6c79206c6f6f6b696e67206174206052656c61794469737061746368517565756573602e2054686973206d617070696e6720697320736570617261746520746f2061766f69642074686520636f7374206f663d01206c6f6164696e67207468652077686f6c65206d657373616765207175657565206966206f6e6c792074686520746f74616c2073697a6520616e6420636f756e74206172652072657175697265642e002c20496e76617269616e743a4501202d2054686520736574206f66206b6579732073686f756c642065786163746c79206d617463682074686520736574206f66206b657973206f66206052656c61794469737061746368517565756573602e344e65656473446973706174636801002d08040014190120546865206f726465726564206c697374206f6620605061726149646073207468617420686176652061206052656c6179446973706174636851756575656020656e7472792e002c20496e76617269616e743a3501202d2054686520736574206f66206974656d732066726f6d207468697320766563746f722073686f756c642062652065786163746c792074686520736574206f6620746865206b65797320696ed82020206052656c617944697370617463685175657565736020616e64206052656c61794469737061746368517565756553697a65602e684e6578744469737061746368526f756e64537461727457697468000051010400147d012054686973206973207468652070617261207468617420676574732077696c6c20676574206469737061746368656420666972737420647572696e6720746865206e6578742075707761726420646973706174636861626c652071756575654420657865637574696f6e20726f756e642e002c20496e76617269616e743a0d01202d2049662060536f6d65287061726129602c207468656e20607061726160206d7573742062652070726573656e7420696e20604e656564734469737061746368602e284f7665727765696768740001040520750804000c050120546865206d657373616765732074686174206578636565646564206d617820696e646976696475616c206d65737361676520776569676874206275646765742e00d4205468657365206d65737361676573207374617920746865726520756e74696c206d616e75616c6c7920646973706174636865642e3c4f766572776569676874436f756e7401002020000000000000000008690120546865206e756d626572206f66206f766572776569676874206d657373616765732065766572207265636f7264656420696e20604f766572776569676874602028616e64207468757320746865206c6f7765737420667265652020696e646578292e015d05017901000179083b1048726d70011048726d70305c48726d704f70656e4368616e6e656c52657175657374730001040589017d08040018bc2054686520736574206f662070656e64696e672048524d50206f70656e206368616e6e656c2072657175657374732e00c02054686520736574206973206163636f6d70616e6965642062792061206c69737420666f7220697465726174696f6e2e002c20496e76617269616e743a3d01202d20546865726520617265206e6f206368616e6e656c7320746861742065786973747320696e206c69737420627574206e6f7420696e207468652073657420616e6420766963652076657273612e6c48726d704f70656e4368616e6e656c52657175657374734c697374010081080400006c48726d704f70656e4368616e6e656c52657175657374436f756e740101040551011010000000000c65012054686973206d617070696e6720747261636b7320686f77206d616e79206f70656e206368616e6e656c2072657175657374732061726520696e69746961746564206279206120676976656e2073656e64657220706172612e7d0120496e76617269616e743a206048726d704f70656e4368616e6e656c5265717565737473602073686f756c6420636f6e7461696e207468652073616d65206e756d626572206f66206974656d73207468617420686173206028582c205f2960e020617320746865206e756d626572206f66206048726d704f70656e4368616e6e656c52657175657374436f756e746020666f72206058602e7c48726d7041636365707465644368616e6e656c52657175657374436f756e740101040551011010000000000c71012054686973206d617070696e6720747261636b7320686f77206d616e79206f70656e206368616e6e656c2072657175657374732077657265206163636570746564206279206120676976656e20726563697069656e7420706172612e6d0120496e76617269616e743a206048726d704f70656e4368616e6e656c5265717565737473602073686f756c6420636f6e7461696e207468652073616d65206e756d626572206f66206974656d732060285f2c20582960207769746855012060636f6e6669726d6564602073657420746f20747275652c20617320746865206e756d626572206f66206048726d7041636365707465644368616e6e656c52657175657374436f756e746020666f72206058602e6048726d70436c6f73654368616e6e656c52657175657374730001040589018004001c9101204120736574206f662070656e64696e672048524d5020636c6f7365206368616e6e656c20726571756573747320746861742061726520676f696e6720746f20626520636c6f73656420647572696e67207468652073657373696f6e206368616e67652e0101205573656420666f7220636865636b696e67206966206120676976656e206368616e6e656c206973207265676973746572656420666f7220636c6f737572652e00c02054686520736574206973206163636f6d70616e6965642062792061206c69737420666f7220697465726174696f6e2e002c20496e76617269616e743a3d01202d20546865726520617265206e6f206368616e6e656c7320746861742065786973747320696e206c69737420627574206e6f7420696e207468652073657420616e6420766963652076657273612e7048726d70436c6f73654368616e6e656c52657175657374734c697374010081080400003848726d7057617465726d61726b730001040551011004000cb8205468652048524d502077617465726d61726b206173736f6369617465642077697468206561636820706172612e2c20496e76617269616e743a7901202d2065616368207061726120605060207573656420686572652061732061206b65792073686f756c642073617469736679206050617261733a3a69735f76616c69645f70617261285029602077697468696e20612073657373696f6e2e3048726d704368616e6e656c73000104058901850804000cb42048524d50206368616e6e656c2064617461206173736f6369617465642077697468206561636820706172612e2c20496e76617269616e743a7501202d2065616368207061727469636970616e7420696e20746865206368616e6e656c2073686f756c642073617469736679206050617261733a3a69735f76616c69645f70617261285029602077697468696e20612073657373696f6e2e6048726d70496e67726573734368616e6e656c73496e6465780101040551012d08040034590120496e67726573732f65677265737320696e646578657320616c6c6f7720746f2066696e6420616c6c207468652073656e6465727320616e642072656365697665727320676976656e20746865206f70706f736974652c20736964652e20492e652e0021012028612920696e677265737320696e64657820616c6c6f777320746f2066696e6420616c6c207468652073656e6465727320666f72206120676976656e20726563697069656e742e1d01202862292065677265737320696e64657820616c6c6f777320746f2066696e6420616c6c2074686520726563697069656e747320666f72206120676976656e2073656e6465722e003020496e76617269616e74733a8d01202d20666f72206561636820696e677265737320696e64657820656e74727920666f72206050602065616368206974656d2060496020696e2074686520696e6465782073686f756c642070726573656e7420696e206048726d704368616e6e656c73603c2020206173206028492c205029602e8901202d20666f7220656163682065677265737320696e64657820656e74727920666f72206050602065616368206974656d2060456020696e2074686520696e6465782073686f756c642070726573656e7420696e206048726d704368616e6e656c73603c2020206173206028502c204529602e0101202d2074686572652073686f756c64206265206e6f206f746865722064616e676c696e67206368616e6e656c7320696e206048726d704368616e6e656c73602e68202d2074686520766563746f72732061726520736f727465642e5c48726d704567726573734368616e6e656c73496e6465780101040551012d080400004c48726d704368616e6e656c436f6e74656e74730101040589018d08040008ac2053746f7261676520666f7220746865206d6573736167657320666f722065616368206368616e6e656c2e650120496e76617269616e743a2063616e6e6f74206265206e6f6e2d656d7074792069662074686520636f72726573706f6e64696e67206368616e6e656c20696e206048726d704368616e6e656c736020697320604e6f6e65602e4848726d704368616e6e656c44696765737473010104055101950804001cf4204d61696e7461696e732061206d617070696e6720746861742063616e206265207573656420746f20616e7377657220746865207175657374696f6e3a290120576861742070617261732073656e742061206d6573736167652061742074686520676976656e20626c6f636b206e756d62657220666f72206120676976656e2072656365697665722e3020496e76617269616e74733aa8202d2054686520696e6e657220605665633c5061726149643e60206973206e6576657220656d7074792ee8202d2054686520696e6e657220605665633c5061726149643e602063616e6e6f742073746f72652074776f2073616d652060506172614964602e8101202d20546865206f7574657220766563746f7220697320736f7274656420617363656e64696e6720627920626c6f636b206e756d62657220616e642063616e6e6f742073746f72652074776f206974656d732077697468207468652073616d6540202020626c6f636b206e756d6265722e01610501850100019d083c3c5061726153657373696f6e496e666f013c5061726153657373696f6e496e666f0c5041737369676e6d656e744b657973556e736166650100a10804000ca42041737369676e6d656e74206b65797320666f72207468652063757272656e742073657373696f6e2e6d01204e6f7465207468617420746869732041504920697320707269766174652064756520746f206974206265696e672070726f6e6520746f20276f66662d62792d6f6e65272061742073657373696f6e20626f756e6461726965732eac205768656e20696e20646f7562742c20757365206053657373696f6e73602041504920696e73746561642e544561726c6965737453746f72656453657373696f6e010010100000000004010120546865206561726c696573742073657373696f6e20666f722077686963682070726576696f75732073657373696f6e20696e666f2069732073746f7265642e2053657373696f6e730001040610a50804000ca42053657373696f6e20696e666f726d6174696f6e20696e206120726f6c6c696e672077696e646f772e35012053686f756c64206861766520616e20656e74727920696e2072616e676520604561726c6965737453746f72656453657373696f6e2e2e3d43757272656e7453657373696f6e496e646578602e750120446f6573206e6f74206861766520616e7920656e7472696573206265666f7265207468652073657373696f6e20696e64657820696e207468652066697273742073657373696f6e206368616e6765206e6f74696669636174696f6e2e000000003d2452656769737472617201245265676973747261720c2c50656e64696e67537761700001040551015101040004642050656e64696e672073776170206f7065726174696f6e732e145061726173000104055101ad08040010050120416d6f756e742068656c64206f6e206465706f73697420666f722065616368207061726120616e6420746865206f726967696e616c206465706f7369746f722e0091012054686520676976656e206163636f756e7420494420697320726573706f6e7369626c6520666f72207265676973746572696e672074686520636f646520616e6420696e697469616c206865616420646174612c20627574206d6179206f6e6c7920646f350120736f2069662069742069736e27742079657420726567697374657265642e2028416674657220746861742c206974277320757020746f20676f7665726e616e636520746f20646f20736f2e29384e65787446726565506172614964010051011000000000046020546865206e65787420667265652060506172614964602e016505018d01082c506172614465706f73697418400010a5d4e8000000000000000000000008b020546865206465706f73697420746f206265207061696420746f2072756e206120706172617468726561642e3d0120546869732073686f756c6420696e636c7564652074686520636f737420666f722073746f72696e67207468652067656e65736973206865616420616e642076616c69646174696f6e20636f64652e48446174614465706f7369745065724279746518408096980000000000000000000000000004c420546865206465706f73697420746f20626520706169642070657220627974652073746f726564206f6e20636861696e2e01b1084614536c6f74730114536c6f747304184c6561736573010104055101b508040040150120416d6f756e74732068656c64206f6e206465706f73697420666f7220656163682028706f737369626c792066757475726529206c65617365642070617261636861696e2e009901205468652061637475616c20616d6f756e74206c6f636b6564206f6e2069747320626568616c6620627920616e79206163636f756e7420617420616e792074696d6520697320746865206d6178696d756d206f6620746865207365636f6e642076616c756573f0206f6620746865206974656d7320696e2074686973206c6973742077686f73652066697273742076616c756520697320746865206163636f756e742e00610120546865206669727374206974656d20696e20746865206c6973742069732074686520616d6f756e74206c6f636b656420666f72207468652063757272656e74204c6561736520506572696f642e20466f6c6c6f77696e67b0206974656d732061726520666f72207468652073756273657175656e74206c6561736520706572696f64732e006101205468652064656661756c742076616c75652028616e20656d707479206c6973742920696d706c6965732074686174207468652070617261636861696e206e6f206c6f6e6765722065786973747320286f72206e65766572b42065786973746564292061732066617220617320746869732070616c6c657420697320636f6e6365726e65642e00510120496620612070617261636861696e20646f65736e2774206578697374202a7965742a20627574206973207363686564756c656420746f20657869737420696e20746865206675747572652c207468656e20697461012077696c6c206265206c6566742d7061646465642077697468206f6e65206f72206d6f726520604e6f6e65607320746f2064656e6f74652074686520666163742074686174206e6f7468696e672069732068656c64206f6e5d01206465706f73697420666f7220746865206e6f6e2d6578697374656e7420636861696e2063757272656e746c792c206275742069732068656c6420617420736f6d6520706f696e7420696e20746865206675747572652e00dc20497420697320696c6c6567616c20666f72206120604e6f6e65602076616c756520746f20747261696c20696e20746865206c6973742e016905019101082c4c65617365506572696f6410100075120004dc20546865206e756d626572206f6620626c6f636b73206f76657220776869636820612073696e676c6520706572696f64206c617374732e2c4c656173654f6666736574101000100e0004d420546865206e756d626572206f6620626c6f636b7320746f206f66667365742065616368206c6561736520706572696f642062792e01bd08472041756374696f6e73012041756374696f6e73103841756374696f6e436f756e7465720100101000000000048c204e756d626572206f662061756374696f6e73207374617274656420736f206661722e2c41756374696f6e496e666f000074040014f820496e666f726d6174696f6e2072656c6174696e6720746f207468652063757272656e742061756374696f6e2c206966207468657265206973206f6e652e00450120546865206669727374206974656d20696e20746865207475706c6520697320746865206c6561736520706572696f6420696e646578207468617420746865206669727374206f662074686520666f7572510120636f6e746967756f7573206c6561736520706572696f6473206f6e2061756374696f6e20697320666f722e20546865207365636f6e642069732074686520626c6f636b206e756d626572207768656e207468655d012061756374696f6e2077696c6c2022626567696e20746f20656e64222c20692e652e2074686520666972737420626c6f636b206f662074686520456e64696e6720506572696f64206f66207468652061756374696f6e2e3c5265736572766564416d6f756e747300010405c10818040008310120416d6f756e74732063757272656e746c7920726573657276656420696e20746865206163636f756e7473206f662074686520626964646572732063757272656e746c792077696e6e696e673820287375622d2972616e6765732e1c57696e6e696e670001040510c50804000c6101205468652077696e6e696e67206269647320666f722065616368206f66207468652031302072616e67657320617420656163682073616d706c6520696e207468652066696e616c20456e64696e6720506572696f64206f664901207468652063757272656e742061756374696f6e2e20546865206d61702773206b65792069732074686520302d626173656420696e64657820696e746f207468652053616d706c652053697a652e205468651d012066697273742073616d706c65206f662074686520656e64696e6720706572696f6420697320303b20746865206c617374206973206053616d706c652053697a65202d2031602e016d050195011030456e64696e67506572696f64101040190100041d0120546865206e756d626572206f6620626c6f636b73206f76657220776869636820616e2061756374696f6e206d617920626520726574726f6163746976656c7920656e6465642e3053616d706c654c656e6774681010140000000cf020546865206c656e677468206f6620656163682073616d706c6520746f2074616b6520647572696e672074686520656e64696e6720706572696f642e00d42060456e64696e67506572696f6460202f206053616d706c654c656e67746860203d20546f74616c2023206f662053616d706c657338536c6f7452616e6765436f756e74101024000000004c4c65617365506572696f6473506572536c6f741010080000000001d108482443726f77646c6f616e012443726f77646c6f616e101446756e6473000104055101d5080400046820496e666f206f6e20616c6c206f66207468652066756e64732e204e6577526169736501002d080400085501205468652066756e64732074686174206861766520686164206164646974696f6e616c20636f6e747269627574696f6e7320647572696e6720746865206c61737420626c6f636b2e20546869732069732075736564150120696e206f7264657220746f2064657465726d696e652077686963682066756e64732073686f756c64207375626d6974206e6577206f72207570646174656420626964732e30456e64696e6773436f756e74010010100000000004290120546865206e756d626572206f662061756374696f6e732074686174206861766520656e746572656420696e746f20746865697220656e64696e6720706572696f6420736f206661722e344e65787454726965496e646578010010100000000004a820547261636b657220666f7220746865206e65787420617661696c61626c65207472696520696e6465780175050199010c2050616c6c6574496425072070792f6366756e64047101206050616c6c657449646020666f72207468652063726f77646c6f616e2070616c6c65742e20416e20617070726f7072696174652076616c756520636f756c64206265206050616c6c65744964282a622270792f6366756e642229603c4d696e436f6e747269627574696f6e184000743ba40b0000000000000000000000086d0120546865206d696e696d756d20616d6f756e742074686174206d617920626520636f6e747269627574656420696e746f20612063726f77646c6f616e2e2053686f756c6420616c6d6f7374206365727461696e6c7920626520617470206c6561737420604578697374656e7469616c4465706f736974602e3c52656d6f76654b6579734c696d69741010e803000004e4204d6178206e756d626572206f662073746f72616765206b65797320746f2072656d6f7665207065722065787472696e7369632063616c6c2e01dd0849e108042040436865636b5370656356657273696f6ee9081038436865636b547856657273696f6eed081030436865636b47656e65736973f1082438436865636b4d6f7274616c697479f5082428436865636b4e6f6e6365fd08802c436865636b576569676874010980604368617267655472616e73616374696f6e5061796d656e740509804850726576616c6964617465417474657374730909800d09"; #endregion @@ -41,7 +47,7 @@ public static MetadataV14 MetadataV14 }; } - public static string HardBinding(string type) + public static string HardBinding(string type, string palletContext) { return type switch { @@ -51,9 +57,23 @@ public static string HardBinding(string type) "EventIndex" => "U32", "Moment" => "U64", //"AuthorityId" => "sr25519::Public", - "AuthorityId" => "sp_consensus_babe::app::Public", + "AuthorityId" when palletContext == "Babe" => "sp_consensus_babe::app::Public", + "AuthorityId" when palletContext == "ImOnline" => "pallet_im_online::sr25519::app_sr25519::Public", + "AuthorityId" => throw new InvalidOperationException(), "BabeAuthorityWeight" => "U64", "schnorrkel::Randomness" => "[u8;32]", + "MaybeRandomness" => "Option<[u8;32]>", + "Multiplier" => "FixedU128", + "slashing::SpanIndex" => "U32", + "ReportIdOf" => "H256", + "ValidatorId" => "AccountId32", + "Keys" => "SessionKeys", + "SetId" => "U64", + "IdentificationTuple" => "(AccountId32, Exposure)", + "SessionIndex" => "U32", + "AuthIndex" => "U32", + "LockIdentifier" => "[u8;8]", + "ModuleId" => "frame_support::PalletId", _ => type }; } @@ -63,63 +83,61 @@ public static PortableType FindTypeByIndex(int index) return MetadataV14.RuntimeMetadataData.Lookup.Value.Single(x => x.Id.Value == index); } - public static int? FindIndexByNode(NodeBuilderType node) + public static (int index, SearchResult searchResult) SearchIndexByNode(NodeBuilderType node, ConversionBuilder conversionBuilder) { var potentialIndex = FindIndexByClass(node.Adapted); - if(potentialIndex != null) return potentialIndex.Value; + if (potentialIndex != null) return (potentialIndex.Value, SearchResult.Founded); var typeDefs = MetadataV14.RuntimeMetadataData.Lookup.Value.Where(x => x.Ty.TypeDef.Value == node.TypeDef); if (typeDefs is null || !typeDefs.Any()) { - return null; + throw new MetadataConversionException($"typeDefs ({node.TypeDef}) result is empty"); } // Find the potential children index - var indexesToSearch = node.Children.Select(FindIndexByNode).ToList(); + var indexesToSearch = node.Children.Select(x => SearchIndexByNode(x, conversionBuilder)).ToList(); foreach (var typeDef in typeDefs) { if (typeDef.Ty.TypeDef.Value2 is TypeDefSequence tds) { - if (tds.ElemType.Value == indexesToSearch[0]) + if (tds.ElemType.Value == indexesToSearch[0].index) { - return (int)typeDef.Id.Value; + return ((int)typeDef.Id.Value, SearchResult.Founded); } } else if (typeDef.Ty.TypeDef.Value2 is TypeDefArray tda) { - var childIndex = FindIndexByNode(node.Children[0]); - - if (tda.ElemType.Value == childIndex) + if (tda.ElemType.Value == indexesToSearch[0].index && tda.Len.Value == ((NodeBuilderTypeArray)node).Length) { - return (int)typeDef.Id.Value; + return ((int)typeDef.Id.Value, SearchResult.Founded); } } else if (typeDef.Ty.TypeDef.Value2 is TypeDefBitSequence tdbs) { - var child1 = FindIndexByNode(node.Children[0]); - var child2 = FindIndexByNode(node.Children[1]); + var child1 = SearchIndexByNode(node.Children[0], conversionBuilder); + var child2 = SearchIndexByNode(node.Children[1], conversionBuilder); - if (tdbs.BitOrderType.Value == child1 && tdbs.BitStoreType.Value == child2) + if (tdbs.BitOrderType.Value == child1.index && tdbs.BitStoreType.Value == child2.index) { - return (int)typeDef.Id.Value; + return ((int)typeDef.Id.Value, SearchResult.Founded); } } else if (typeDef.Ty.TypeDef.Value2 is TypeDefCompact tdc) { - var childIndex = FindIndexByNode(node.Children[0]); + var childIndex = SearchIndexByNode(node.Children[0], conversionBuilder); - if (tdc.ElemType.Value == childIndex) + if (tdc.ElemType.Value == childIndex.index) { - return (int)typeDef.Id.Value; + return ((int)typeDef.Id.Value, SearchResult.Founded); } } else if (typeDef.Ty.TypeDef.Value2 is TypeDefComposite tdcomposite) { - if(indexesToSearch.Count == 1 && indexesToSearch[0] == 0) + if (indexesToSearch.Count == 1 && indexesToSearch[0].index == 0) { - return (int)typeDef.Id.Value; + return ((int)typeDef.Id.Value, SearchResult.Founded); } //var indexes = node.Children.Select(n => FindIndexByNode(n)!.Value); //if(indexes.SequenceEqual(tdcomposite.Fields.Value.Select(x => (int)x.ElemType.Value))) @@ -133,25 +151,50 @@ public static PortableType FindTypeByIndex(int index) if (index == null) throw new MetadataConversionException($"Primitive {tdp} not found. Should never happened"); - return (int)typeDef.Id.Value; + return ((int)typeDef.Id.Value, SearchResult.Founded); + } + else if (typeDef.Ty.TypeDef.Value2 is TypeDefTuple tdt && FoundAllChildren(indexesToSearch.Select(x => x.index).ToList(), tdt)) + { + return ((int)typeDef.Id.Value, SearchResult.Founded); } - else if (typeDef.Ty.TypeDef.Value2 is TypeDefTuple tdt) + else if (typeDef.Ty.TypeDef.Value2 is TypeDefVariant tdv) { - if(FoundAllChildren(indexesToSearch, tdt)) + if (node is NodeBuilderTypeOption) { - return (int)typeDef.Id.Value; + if (tdv.TypeParam.Value.Length == 2 && + tdv.TypeParam.Value[0].IsNone() && + tdv.TypeParam.Value[1].IsSome(indexesToSearch[0]!.index)) + return ((int)typeDef.Id.Value, SearchResult.Founded); + } + else + { + // We search a variant where all variants fields match the indexesToSearch array + foreach (var variant in tdv.TypeParam.Value) + { + var isIdentical = ConversionUtils.AreArraysIdentical(variant.VariantFields.Value.Select(x => (int)x.FieldTy.Value).ToArray(), indexesToSearch.Select(x => x.index).ToArray()); + + if (isIdentical) return ((int)typeDef.Id.Value, SearchResult.Founded); + } } } } - return null; + if (node.TypeDef == TypeDefEnum.Tuple) + { + var tuple = new TypeDefTuple(); + tuple.Fields = new BaseVec(indexesToSearch.Select(x => TType.From((uint)x.index)).ToArray()); + + return ((int)conversionBuilder.CreatePortableTypeFromNode(tuple).Id.Value, SearchResult.Created); + } + + throw new MetadataConversionException($"Unable to find or create {node.Adapted}"); } - - private static bool FoundAllChildren(List indexesToSearch, TypeDefTuple tdt) + + private static bool FoundAllChildren(List indexesToSearch, TypeDefTuple tdt) { - return indexesToSearch.Where(x => x != null).Select(x => x.Value).SequenceEqual(tdt.Fields.Value.Select(x => (int)x.Value)); + return indexesToSearch.Select(x => x).SequenceEqual(tdt.Fields.Value.Select(x => (int)x.Value)); } public static int? FindIndexByClass(string storageClass) @@ -178,7 +221,7 @@ private static bool FoundAllChildren(List indexesToSearch, TypeDefTuple td var storagePlainIndex = entry.StorageType.Value2 as TType ?? throw new InvalidOperationException(); var typeNode = MetadataV14.RuntimeMetadataData.Lookup.Value[storagePlainIndex.Value].Ty; - if(typeNode.Path.Value.Any() && typeNode.Path.Value[^1].Value == storageClass) + if (typeNode.Path.Value.Any() && typeNode.Path.Value[^1].Value == storageClass) { return storagePlainIndex.Value; } @@ -256,18 +299,18 @@ private static bool FoundAllChildren(List indexesToSearch, TypeDefTuple td foreach (var lookup in MetadataV14.RuntimeMetadataData.Lookup.Value) { - - if(lookup.Ty.TypeDef.Value2 is BaseEnum prim && prim.Value.ToString().Equals(splitted[0], StringComparison.InvariantCultureIgnoreCase)) + + if (lookup.Ty.TypeDef.Value2 is BaseEnum prim && prim.Value.ToString().Equals(splitted[0], StringComparison.InvariantCultureIgnoreCase)) { return (int)lookup.Id.Value; } var path = lookup.Ty.Path.Value; - if (path is not null && + if (path is not null && path.Any() && ConversionUtils.EndsWithArray(path.Select(x => x.Value).ToArray(), splitted)) { - return (int)lookup.Id.Value; + return (int)lookup.Id.Value; } } diff --git a/Substrate.NET.Metadata/V11/ModuleMetadataV11.cs b/Substrate.NET.Metadata/V11/ModuleMetadataV11.cs index d63bb0d..0d484f8 100644 --- a/Substrate.NET.Metadata/V11/ModuleMetadataV11.cs +++ b/Substrate.NET.Metadata/V11/ModuleMetadataV11.cs @@ -79,6 +79,8 @@ public ModuleMetadataV14 ToModuleMetadataV14(ConversionBuilder conversionBuilder result.Name = Name; result.Index = new U8((byte)index); + conversionBuilder.CurrentPallet = Name.Value; + // We do not do Calls conversion if (Events.OptionFlag) diff --git a/Substrate.NET.Metadata/V11/RuntimeMetadataV11.cs b/Substrate.NET.Metadata/V11/RuntimeMetadataV11.cs index 49ebea2..0ab83fa 100644 --- a/Substrate.NET.Metadata/V11/RuntimeMetadataV11.cs +++ b/Substrate.NET.Metadata/V11/RuntimeMetadataV11.cs @@ -34,6 +34,8 @@ public override byte[] Encode() public RuntimeMetadataV14 ToRuntimeMetadataV14() { var conversion = new ConversionBuilder(new List()); + + conversion.CreateUnknownNode(); conversion.ClearEventBlockchainRuntimeEvent(); var res = new RuntimeMetadataV14(); diff --git a/Substrate.NET.Metadata/V11/StorageEntryMetadataV11.cs b/Substrate.NET.Metadata/V11/StorageEntryMetadataV11.cs index 7861f6f..93ae3ac 100644 --- a/Substrate.NET.Metadata/V11/StorageEntryMetadataV11.cs +++ b/Substrate.NET.Metadata/V11/StorageEntryMetadataV11.cs @@ -58,7 +58,7 @@ public StorageEntryMetadataV14 ToStorageEntryMetadataV14(ConversionBuilder conve { var val = StorageType.Value2 as Str; //var idx = ConversionV14Helper.AddToLookup(lookup, val!.Value); - var index = conversionBuilder.BuildLookup(val!.Value); + var index = conversionBuilder.BuildPortableTypes(val!.Value); mapStorageType.Create(Metadata.StorageType.Type.Plain, TType.From(index.Value)); } @@ -67,7 +67,12 @@ public StorageEntryMetadataV14 ToStorageEntryMetadataV14(ConversionBuilder conve var map = (StorageEntryTypeMapV11)StorageType.Value2; mapStorageType.Create(Metadata.StorageType.Type.Map, map.ToStorageEntryTypeMapV14(conversionBuilder)); } - else + else if(StorageType.Value == Metadata.StorageType.TypeV9.DoubleMap) + { + var map = (StorageEntryTypeDoubleMapV11)StorageType.Value2; + mapStorageType.Create(Metadata.StorageType.Type.Map, map.ToStorageEntryTypeMapV14(conversionBuilder)); + + } else { // DoubleMap and NMap exists but should never happened throw new MetadataConversionException($"Error while converting StorageEntryMetadataV11. Received storage type {StorageType.Value} while should never happened"); diff --git a/Substrate.NET.Metadata/V9/PalletConstantMetadataV9.cs b/Substrate.NET.Metadata/V9/PalletConstantMetadataV9.cs index e7710fb..3ee94b5 100644 --- a/Substrate.NET.Metadata/V9/PalletConstantMetadataV9.cs +++ b/Substrate.NET.Metadata/V9/PalletConstantMetadataV9.cs @@ -50,7 +50,7 @@ public PalletConstantMetadataV14 ToPalletConstantMetadataV14(ConversionBuilder c result.Name = this.Name; result.ConstantValue = this.Value; - result.ConstantType = TType.From(conversionBuilder.BuildLookup(this.ConstantType.Value).Value); + result.ConstantType = TType.From(conversionBuilder.BuildPortableTypes(this.ConstantType.Value).Value); result.Documentation = this.Documentation; return result; diff --git a/Substrate.NET.Metadata/V9/PalletEventMetadataV9.cs b/Substrate.NET.Metadata/V9/PalletEventMetadataV9.cs index 2831ae8..1ce0aa8 100644 --- a/Substrate.NET.Metadata/V9/PalletEventMetadataV9.cs +++ b/Substrate.NET.Metadata/V9/PalletEventMetadataV9.cs @@ -44,7 +44,12 @@ public Variant ToVariant(ConversionBuilder conversionBuilder, int index) res.Docs = Docs; res.Index = new U8((byte)index); - var argsType = Args.Value.Select(x => new { Name = x, TypeId = conversionBuilder.BuildLookup(x.Value) }); + if(Args.Value is not null && Args.Value.Length == 1 && Args.Value[0].Value.Contains("PhantomData")) + { + Args = new BaseVec(new Str[0]); + } + + var argsType = Args.Value.Select(x => new { Name = x, TypeId = conversionBuilder.BuildPortableTypes(x.Value) }); res.VariantFields = new BaseVec( argsType.Select(x => new Field(new BaseOpt(x.Name), TType.From(x.TypeId.Value), new BaseOpt(), new BaseVec(new Str[0])) ).ToArray()); From 32b51453b7653fd7b03e6218bb03adfa391d063a Mon Sep 17 00:00:00 2001 From: Apolixit Date: Wed, 28 Aug 2024 22:40:06 +0200 Subject: [PATCH 05/15] Metadata v11 version 1 conversion ok --- .../Conversion/ConversionBuilderTest.cs | 5 ++- .../MetadataServiceV11Test.cs | 4 +-- Substrate.NET.Metadata/Base/BaseMetadata.cs | 4 +-- Substrate.NET.Metadata/Base/TypeDefs.cs | 2 +- .../Conversion/Internal/ConversionBuilder.cs | 31 +++++++++++++++++-- .../Conversion/Internal/SearchV14.cs | 14 ++++++++- .../V11/ExtrinsicMetadataV11.cs | 11 ++++++- Substrate.NET.Metadata/V11/MetadataV11.cs | 8 +++-- .../V11/ModuleMetadataV11.cs | 18 ++++++++--- .../V11/RuntimeMetadataV11.cs | 6 ++++ .../V14/PalletMetadataV14.cs | 2 +- 11 files changed, 87 insertions(+), 18 deletions(-) diff --git a/Substrate.NET.Metadata.Tests/Conversion/ConversionBuilderTest.cs b/Substrate.NET.Metadata.Tests/Conversion/ConversionBuilderTest.cs index 3b4bc06..f512f9b 100644 --- a/Substrate.NET.Metadata.Tests/Conversion/ConversionBuilderTest.cs +++ b/Substrate.NET.Metadata.Tests/Conversion/ConversionBuilderTest.cs @@ -41,7 +41,10 @@ public void GetNode_FromPrimitive_ShouldSucceed(string primitiveType) } [Test] - //[TestCase(">::Proposal", 46, 4, "ImOnline")] + [TestCase("&[u8]", 10, 2, "Claims")] + [TestCase("Vec>", 1000, 1)] + [TestCase("Vec>", 1000, 1)] + [TestCase("LeasePeriod", 4, 1)] [TestCase("LockIdentifier", 125, 2)] [TestCase("(T::BlockNumber, Hash)", 1000, 1)] [TestCase("(BalanceOf, Vec)", 1000, 1)] diff --git a/Substrate.NET.Metadata.Tests/MetadataServiceV11Test.cs b/Substrate.NET.Metadata.Tests/MetadataServiceV11Test.cs index 47adc8a..23b2230 100644 --- a/Substrate.NET.Metadata.Tests/MetadataServiceV11Test.cs +++ b/Substrate.NET.Metadata.Tests/MetadataServiceV11Test.cs @@ -145,9 +145,9 @@ public void MetadataV11_ConvertToV14_ShouldSucceed() var metadataV11 = new MetadataV11(readMetadataFromFile("V11\\MetadataV11_0")); Assert.That(metadataV11, Is.Not.Null); - var runtimeMetadataV14 = metadataV11.RuntimeMetadataData.ToRuntimeMetadataV14(); + var metadataV14 = metadataV11.ToMetadataV14(); - Assert.That(runtimeMetadataV14, Is.Not.Null); + Assert.That(metadataV14, Is.Not.Null); } } } diff --git a/Substrate.NET.Metadata/Base/BaseMetadata.cs b/Substrate.NET.Metadata/Base/BaseMetadata.cs index 3b4ebd7..26f4cfd 100644 --- a/Substrate.NET.Metadata/Base/BaseMetadata.cs +++ b/Substrate.NET.Metadata/Base/BaseMetadata.cs @@ -38,7 +38,7 @@ public override void Decode(byte[] byteArray, ref int p) TypeSize = p - start; } - public MetaDataInfo MetaDataInfo { get; private set; } = default!; - public T RuntimeMetadataData { get; private set; } = default!; + public MetaDataInfo MetaDataInfo { get; internal set; } = default!; + public T RuntimeMetadataData { get; internal set; } = default!; } } diff --git a/Substrate.NET.Metadata/Base/TypeDefs.cs b/Substrate.NET.Metadata/Base/TypeDefs.cs index dbf8a42..d5fe2ec 100644 --- a/Substrate.NET.Metadata/Base/TypeDefs.cs +++ b/Substrate.NET.Metadata/Base/TypeDefs.cs @@ -157,7 +157,7 @@ public override void Decode(byte[] byteArray, ref int p) TypeSize = p - start; } - public TType ElemType { get; private set; } + public TType ElemType { get; internal set; } } public class TypeDefArray : BaseType, IMetadataType diff --git a/Substrate.NET.Metadata/Conversion/Internal/ConversionBuilder.cs b/Substrate.NET.Metadata/Conversion/Internal/ConversionBuilder.cs index 8cb7bf0..f2d514d 100644 --- a/Substrate.NET.Metadata/Conversion/Internal/ConversionBuilder.cs +++ b/Substrate.NET.Metadata/Conversion/Internal/ConversionBuilder.cs @@ -85,7 +85,9 @@ public ConversionBuilder(List portableTypes) "sp_std::marker::PhantomData<(AccountId, Event)>", // V11 => TechnicalMembership => v1 => Events => Dummy "Vec", // V11 => Parachains => v1 => Storage => RelayDispatchQueue "IncludedBlocks", // V11 => Attestations => v1 => Storage => RecentParaBlocks - "BlockAttestations", // V11 => Attestations => v1 => Storage => ParaBlockAttestations + "BlockAttestations", // V11 => Attestations => v1 => Storage => ParaBlockAttestations + "WinningData", // V11 => Slots => v1 => Storage => Winning + "(LeasePeriodOf, IncomingParachain)", // V11 => Slots => v1 => Storage => Onboarding }; public U32 GetNewIndex() @@ -239,7 +241,7 @@ public static PortableType CreateNode(string className, U32 currentMaxIndex) public static string HarmonizeTypeName(string className) { - return className.Replace("T::", ""); + return className.Replace("T::", "").Replace("", ""); } public static List HarmonizeFullType(string className) @@ -660,10 +662,17 @@ public PortableType CreatePortableTypeFromNode(BaseType node) portableType.Ty.TypeDef.Create(TypeDefEnum.Composite, tdc); } + if (node is TypeDefSequence tds) + { + portableType.Ty.TypeDef = new TypeDefExt(); + portableType.Ty.TypeDef.Create(TypeDefEnum.Sequence, tds); + } + PortableTypes.Add(portableType); return portableType; } + public TypeDefTuple BuildTuple(List types) { var node = new TypeDefTuple(); @@ -672,6 +681,24 @@ public TypeDefTuple BuildTuple(List types) return node; } + + public void CreateRuntime(string blockchainName) + { + var portableType = new PortableType(); + + portableType.Id = GetNewIndex(); + portableType.Ty = new TypePortableForm(); + portableType.Ty.Docs = new BaseVec([new Str($"{blockchainName}_runtime"), new Str("runtime")]); + portableType.Ty.Path = new Base.Portable.Path(); + portableType.Ty.Path.Create(new Str[0]); + portableType.Ty.TypeParams = new BaseVec(new TypeParameter[0]); + + var emptyComposite = new TypeDefComposite(); + portableType.Ty.TypeDef = new TypeDefExt(); + portableType.Ty.TypeDef.Create(emptyComposite.Encode()); + + PortableTypes.Add(portableType); + } #endregion } } diff --git a/Substrate.NET.Metadata/Conversion/Internal/SearchV14.cs b/Substrate.NET.Metadata/Conversion/Internal/SearchV14.cs index fec7e82..be73dfd 100644 --- a/Substrate.NET.Metadata/Conversion/Internal/SearchV14.cs +++ b/Substrate.NET.Metadata/Conversion/Internal/SearchV14.cs @@ -74,6 +74,10 @@ public static string HardBinding(string type, string palletContext) "AuthIndex" => "U32", "LockIdentifier" => "[u8;8]", "ModuleId" => "frame_support::PalletId", + "LeasePeriod" => "LeasePeriodOf", + "SlotRange" => "U32", // Just a guess + "CollatorId" => "U32", + "&[u8]" when palletContext == "Claims" => "Vec", _ => type }; } @@ -187,7 +191,15 @@ public static (int index, SearchResult searchResult) SearchIndexByNode(NodeBuild return ((int)conversionBuilder.CreatePortableTypeFromNode(tuple).Id.Value, SearchResult.Created); } - throw new MetadataConversionException($"Unable to find or create {node.Adapted}"); + if(node.TypeDef == TypeDefEnum.Sequence) + { + var sequence = new TypeDefSequence(); + sequence.ElemType = TType.From((uint)indexesToSearch[0].index); + + return ((int)conversionBuilder.CreatePortableTypeFromNode(sequence).Id.Value, SearchResult.Created); + } + + throw new MetadataConversionException($"Unable to find or create {node.Raw}"); } diff --git a/Substrate.NET.Metadata/V11/ExtrinsicMetadataV11.cs b/Substrate.NET.Metadata/V11/ExtrinsicMetadataV11.cs index 017934d..8ed5708 100644 --- a/Substrate.NET.Metadata/V11/ExtrinsicMetadataV11.cs +++ b/Substrate.NET.Metadata/V11/ExtrinsicMetadataV11.cs @@ -1,4 +1,6 @@ -using Substrate.NetApi.Model.Types.Base; +using Substrate.NET.Metadata.Conversion.Internal; +using Substrate.NET.Metadata.V14; +using Substrate.NetApi.Model.Types.Base; using Substrate.NetApi.Model.Types.Primitive; namespace Substrate.NET.Metadata.V11 @@ -28,5 +30,12 @@ public override byte[] Encode() result.AddRange(SignedExtensions.Encode()); return result.ToArray(); } + + internal ExtrinsicMetadataV14 ToExtrinsicMetadataV14(ConversionBuilder conversion) + { + var res = new ExtrinsicMetadataV14(); + + return res; + } } } diff --git a/Substrate.NET.Metadata/V11/MetadataV11.cs b/Substrate.NET.Metadata/V11/MetadataV11.cs index cd97146..c00ec65 100644 --- a/Substrate.NET.Metadata/V11/MetadataV11.cs +++ b/Substrate.NET.Metadata/V11/MetadataV11.cs @@ -19,8 +19,12 @@ public MetadataV11(string hex) : base(hex) public MetadataV14 ToMetadataV14() { - //var res = new MetadataV14() - return null; + var res = new MetadataV14(); + + res.MetaDataInfo = MetaDataInfo; + res.RuntimeMetadataData = RuntimeMetadataData.ToRuntimeMetadataV14(); + + return res; } } } diff --git a/Substrate.NET.Metadata/V11/ModuleMetadataV11.cs b/Substrate.NET.Metadata/V11/ModuleMetadataV11.cs index 0d484f8..7b25d0e 100644 --- a/Substrate.NET.Metadata/V11/ModuleMetadataV11.cs +++ b/Substrate.NET.Metadata/V11/ModuleMetadataV11.cs @@ -82,24 +82,28 @@ public ModuleMetadataV14 ToModuleMetadataV14(ConversionBuilder conversionBuilder conversionBuilder.CurrentPallet = Name.Value; // We do not do Calls conversion + result.Calls = new BaseOpt(null!); if (Events.OptionFlag) { result.Events = ToPalletEventV14(conversionBuilder); var variantField = new Field( - name: new BaseOpt(), - fieldTy: result.Events.Value.ElemType, + name: new BaseOpt(), + fieldTy: result.Events.Value.ElemType, fieldTypeName: new BaseOpt(new Str($"{Name.Value}::Event(new Str[0])); var eventVariant = new Variant( - name: Name, - variantFields: new BaseVec(new Field[1] { variantField }), - index: new U8((byte)index), + name: Name, + variantFields: new BaseVec(new Field[1] { variantField }), + index: new U8((byte)index), docs: new BaseVec(new Str[0])); conversionBuilder.AddPalletEventBlockchainRuntimeEvent(eventVariant); + } else + { + result.Events = new BaseOpt(null!); } result.Errors = ToPalletErrorV14(conversionBuilder); @@ -111,6 +115,10 @@ public ModuleMetadataV14 ToModuleMetadataV14(ConversionBuilder conversionBuilder { result.Storage = new BaseOpt(this.Storage.Value.ToStorageMetadataV14(conversionBuilder)); } + else + { + result.Storage = new BaseOpt(null!); + } return result; } diff --git a/Substrate.NET.Metadata/V11/RuntimeMetadataV11.cs b/Substrate.NET.Metadata/V11/RuntimeMetadataV11.cs index 0ab83fa..7049924 100644 --- a/Substrate.NET.Metadata/V11/RuntimeMetadataV11.cs +++ b/Substrate.NET.Metadata/V11/RuntimeMetadataV11.cs @@ -44,6 +44,12 @@ public RuntimeMetadataV14 ToRuntimeMetadataV14() Modules.Value.Select((x, i) => x.ToModuleMetadataV14(conversion, i)) .ToArray()); + res.Extrinsic = Extrinsic.ToExtrinsicMetadataV14(conversion); + + conversion.CreateRuntime("polkadot"); + res.Lookup = new PortableRegistry(); + res.Lookup.Create(conversion.PortableTypes.ToArray()); + return res; } } diff --git a/Substrate.NET.Metadata/V14/PalletMetadataV14.cs b/Substrate.NET.Metadata/V14/PalletMetadataV14.cs index de0227f..ca4d80c 100644 --- a/Substrate.NET.Metadata/V14/PalletMetadataV14.cs +++ b/Substrate.NET.Metadata/V14/PalletMetadataV14.cs @@ -155,7 +155,7 @@ public override void Decode(byte[] byteArray, ref int p) TypeSize = p - start; } - public TType ElemType { get; private set; } = default!; + public TType ElemType { get; internal set; } = default!; public Str Name => new Str(ElemType.ToString()); } From f7cd14787aad919ba2b9f1fe8867e66b864222bc Mon Sep 17 00:00:00 2001 From: Apolixit Date: Tue, 3 Sep 2024 07:37:15 +0200 Subject: [PATCH 06/15] WIP --- .../ConvertV14Test.cs | 79 +++++++++++++++++++ .../GlobalUsings.cs | 1 + .../Substrate.NET.Metadata.Node.Tests.csproj | 24 ++++++ .../Conversion/ConversionBuilderTest.cs | 11 ++- Substrate.NET.Metadata.sln | 6 ++ .../Base/StorageEntryTypeDoubleMap.cs | 15 ++-- .../Base/StorageEntryTypeMap.cs | 2 +- Substrate.NET.Metadata/Base/TypeDefs.cs | 4 +- .../Conversion/IMetadataConversion.cs | 17 ---- .../Conversion/IMetadataToV14.cs | 21 +++++ .../Conversion/Internal/ConversionBuilder.cs | 60 +++++++++----- .../Internal/ConversionBuilderTree.cs | 35 ++++---- .../Conversion/Internal/NodeBuilderType.cs | 10 ++- .../Conversion/Internal/SearchV14.cs | 75 +++++++++++++----- .../StorageEntryMetadata.cs | 32 -------- Substrate.NET.Metadata/V10/MetadataV10.cs | 14 +++- .../V10/ModuleMetadataV10.cs | 71 +++++++++++++++++ .../V10/RuntimeMetadataV10.cs | 25 ++++++ .../V10/StorageEntryMetadataV10.cs | 53 +++++++++++-- .../V10/StorageMetadataV10.cs | 18 ++++- Substrate.NET.Metadata/V11/MetadataV11.cs | 3 +- .../V11/ModuleMetadataV11.cs | 4 +- .../V11/RuntimeMetadataV11.cs | 4 +- .../V11/StorageEntryMetadataV11.cs | 5 +- .../V11/StorageMetadataV11.cs | 2 +- Substrate.NET.Metadata/V12/MetadataV12.cs | 14 +++- .../V12/ModuleMetadataV12.cs | 74 +++++++++++++++++ .../V12/RuntimeMetadataV12.cs | 27 ++++++- Substrate.NET.Metadata/V13/MetadataV13.cs | 15 +++- .../V13/ModuleMetadataV13.cs | 74 +++++++++++++++++ .../V13/RuntimeMetadataV13.cs | 27 ++++++- .../V13/StorageEntryMetadataV13.cs | 52 ++++++++++-- .../V13/StorageMetadataV13.cs | 18 ++++- Substrate.NET.Metadata/V9/MetadataV9.cs | 14 +++- Substrate.NET.Metadata/V9/ModuleMetadataV9.cs | 79 +++++++++++++++---- .../V9/PalletCallMetadataV9.cs | 50 +----------- .../V9/PalletErrorMetadataV9.cs | 2 +- .../V9/PalletEventMetadataV9.cs | 2 +- .../V9/RuntimeMetadataV9.cs | 25 +++++- .../V9/StorageEntryMetadataV9.cs | 65 ++++++++++++--- .../V9/StorageMetadataV9.cs | 18 ++++- 41 files changed, 918 insertions(+), 229 deletions(-) create mode 100644 Substrate.NET.Metadata.Node.Tests/ConvertV14Test.cs create mode 100644 Substrate.NET.Metadata.Node.Tests/GlobalUsings.cs create mode 100644 Substrate.NET.Metadata.Node.Tests/Substrate.NET.Metadata.Node.Tests.csproj delete mode 100644 Substrate.NET.Metadata/Conversion/IMetadataConversion.cs create mode 100644 Substrate.NET.Metadata/Conversion/IMetadataToV14.cs delete mode 100644 Substrate.NET.Metadata/StorageEntryMetadata.cs diff --git a/Substrate.NET.Metadata.Node.Tests/ConvertV14Test.cs b/Substrate.NET.Metadata.Node.Tests/ConvertV14Test.cs new file mode 100644 index 0000000..85a3f90 --- /dev/null +++ b/Substrate.NET.Metadata.Node.Tests/ConvertV14Test.cs @@ -0,0 +1,79 @@ +using Substrate.NET.Metadata.Conversion; +using Substrate.NET.Metadata.V10; +using Substrate.NET.Metadata.V11; +using Substrate.NET.Metadata.V12; +using Substrate.NET.Metadata.V13; +using Substrate.NET.Metadata.V9; +using Substrate.NetApi; +using Substrate.NetApi.Model.Extrinsics; +using Substrate.NetApi.Model.Meta; + +namespace Substrate.NET.Metadata.Node.Tests +{ + public class Tests + { + private SubstrateClient _substrateClient; + + [OneTimeSetUp] + public async Task SetupAsync() + { + _substrateClient = new SubstrateClient(new Uri("wss://polkadot-rpc.dwellir.com"), ChargeTransactionPayment.Default()); + + await _substrateClient.ConnectAsync(); + Assert.That(_substrateClient.IsConnected, Is.True); + } + + [OneTimeTearDown] + public void Teardown() + { + _substrateClient.Dispose(); + } + + [Test] + [TestCase("0xa15bf122d7a9b2cd07956c3af8f7eda61298aff0a3bd1193018df413d982a4ef", 11)] + [TestCase("0x49a695416fcf55487adf9b9f5808619cee6618bd285a0119a78db60c5a7f3e13", 11)] + [TestCase("0xdab56553594fd489adc085d2f83f3dcb65f5de5b1878325d5547fcf72b6dd6b3", 11)] + [TestCase("0xaff11447ba47e853bcadb73920c0780013e581a0286831eadce0e48bf1db9942", 11)] + [TestCase("0x4eba9b7a60fb063fbd8b9ceb8028c1c7b5a3cc2ea7b0ad703885ce580dee327c\r\n", 11)] + [TestCase("0x773e8d8c1fdcbc94d79bb2cdcaf2f7fca5ff869d34c50171fe50ac1640f3e05c", 11)] + [TestCase("0x209d24943d81e5910bfb7a57c8a5c3037c4a434af7c486a536d4f96a2160c9f5", 11)] + [TestCase("0x3eef3df8dd7eedfe6baaed544dcef9c36ee7a142035bd6ae3fd7fd2969ad5933", 11)] + [TestCase("0x4f61e8e6017cce5a10e2de7340061a037895411c19e7bc27f607953d8a56a943", 11)] + [TestCase("0x7cf0e5e3671b02ca341ab439453e1a9ca6616c6e351bdfa8cbb6f5124a8224b8", 11)] + [TestCase("0x349399f6b6481070047626f184d0152699bd02cb71040ef045adefc4f8daec5b", 11)] + [TestCase("0xab6f40697e72d0a4ab0d105145b1ddc1bd8cead0bb1d6a13f4ac1a05508b1882", 11)] + [TestCase("0x78433cba37c0cbc777faad71f27e21094defe24451033dd4d9a0443a1dc291b2", 11)] + [TestCase("0x9a18fb9522d9688eadefb59bf7389fc0deaf219b080a462d6db5ee1d3ec79562", 11)] + [TestCase("0xe187cabcfb9d30b66fae7257f3820b947c89b65e6e20f6ead2af4fd78926825f", 11)] + [TestCase("0xd85988f4f7bc3594200fd5f8e738153260f2ba342b56d9bf4edabf9209c65ae0", 11)] + [TestCase("0x8a0f28f399d3a85643413435e5a001c4ade7b8195eaf7e91f399549f192a56c7", 11)] + [TestCase("0x0b40f111395a0871b1a59da4bd8587bcddf662e3e7b4ba06d8862a44dacf6256", 12)] + [TestCase("0x780cd3091ef9cdc3a94dbcdfa7908d6120f5e037a1e534b4f18249c37005a533", 12)] + [TestCase("0x26fa4c7e27aad01f5a8367aefece17f8c0940b75423628d52a8c07a203bd2458", 12)] + [TestCase("0xd00026d2bdca30cd20f7c361544e9651041107a1fd35ea447d8dfabb5001960f", 12)] + [TestCase("0x766a02e9abe37328ad0dee3a64aad557dd1bade9e9f27849a9cf5838c0e7e6bb", 12)] + [TestCase("0x8a8a7aa9ac863359b2cc609b836e3ebd7086d775c31f8c177f183ed9ffa71fa5", 12)] + [TestCase("0x89f4608b568a05a89737bc826a32f8677f2646a5773312d7dee3a667458e5a98", 13)] + [TestCase("0xddca674d4e6e4935b1e5e81ed697f7ce027c2a9602523424bcc8dee3184e4863", 13)] + [TestCase("0x4b34bd42835a084af0f441c5986d216b18a85abb4d03762096692e6f06365203", 13)] + [TestCase("0x8192df1609d4478d1c1fcf5d39975596a8162d42d745c141c22148b0931708f2", 13)] + public async Task ConvertMetadataToV14_ShouldSucceedAsync(string blockHash, int version) + { + var metadataHex = await _substrateClient.State.GetMetaDataAtAsync(Utils.HexToByteArray(blockHash), CancellationToken.None); + + IMetadataToV14 metadata = version switch + { + 9 => new MetadataV9(metadataHex), + 10 => new MetadataV10(metadataHex), + 11 => new MetadataV11(metadataHex), + 12 => new MetadataV12(metadataHex), + 13 => new MetadataV13(metadataHex), + _ => throw new Exception() + }; + + var v14 = metadata.ToMetadataV14(); + + Assert.That(v14, Is.Not.Null); + } + } +} \ No newline at end of file diff --git a/Substrate.NET.Metadata.Node.Tests/GlobalUsings.cs b/Substrate.NET.Metadata.Node.Tests/GlobalUsings.cs new file mode 100644 index 0000000..cefced4 --- /dev/null +++ b/Substrate.NET.Metadata.Node.Tests/GlobalUsings.cs @@ -0,0 +1 @@ +global using NUnit.Framework; \ No newline at end of file diff --git a/Substrate.NET.Metadata.Node.Tests/Substrate.NET.Metadata.Node.Tests.csproj b/Substrate.NET.Metadata.Node.Tests/Substrate.NET.Metadata.Node.Tests.csproj new file mode 100644 index 0000000..efc00f2 --- /dev/null +++ b/Substrate.NET.Metadata.Node.Tests/Substrate.NET.Metadata.Node.Tests.csproj @@ -0,0 +1,24 @@ + + + + net8.0 + enable + enable + + false + true + + + + + + + + + + + + + + + diff --git a/Substrate.NET.Metadata.Tests/Conversion/ConversionBuilderTest.cs b/Substrate.NET.Metadata.Tests/Conversion/ConversionBuilderTest.cs index f512f9b..ce2d3b6 100644 --- a/Substrate.NET.Metadata.Tests/Conversion/ConversionBuilderTest.cs +++ b/Substrate.NET.Metadata.Tests/Conversion/ConversionBuilderTest.cs @@ -41,6 +41,12 @@ public void GetNode_FromPrimitive_ShouldSucceed(string primitiveType) } [Test] + [TestCase("BalanceOf", 6, 1)] + [TestCase("ProxyState", 6, 1)] + [TestCase("SubmissionIndicesOf", 502, 5)] + [TestCase("[BalanceOf; 4]", 1000, 1)] + [TestCase("Approvals", 14, 2)] + [TestCase("(Vec>,\n BalanceOf)", 1000, 1)] [TestCase("&[u8]", 10, 2, "Claims")] [TestCase("Vec>", 1000, 1)] [TestCase("Vec>", 1000, 1)] @@ -75,7 +81,6 @@ public void GetNode_FromPrimitive_ShouldSucceed(string primitiveType) [TestCase("T::BlockNumber", 4, 1)] [TestCase("T::AccountId", 0, 3)] [TestCase("Vec", 55, 4)] - [TestCase("BalanceOf", 6, 1)] //[TestCase("Vec>", 22, 4)] public void GetIndex_FromComposite_ShouldSucceed(string rustType, int indexExpected, int lengthExpected, string palletContext = "") { @@ -85,8 +90,8 @@ public void GetIndex_FromComposite_ShouldSucceed(string rustType, int indexExpec Assert.That(res.Value, Is.EqualTo(indexExpected), "Index are not equals"); Assert.That(_builder.PortableTypes.Count, Is.EqualTo(lengthExpected), "Portable elements are not equals"); - var elementState = _builder.ElementsState.Single(x => x.ClassName.ToLower() == rustType.ToLower()); - Assert.That(elementState.IsSuccessfullyMapped, Is.True); + //var elementState = _builder.ElementsState.Single(x => x.ClassName.ToLower() == rustType.ToLower()); + //Assert.That(elementState.IsSuccessfullyMapped, Is.True); } [Test] diff --git a/Substrate.NET.Metadata.sln b/Substrate.NET.Metadata.sln index 56ed11c..5c83d51 100644 --- a/Substrate.NET.Metadata.sln +++ b/Substrate.NET.Metadata.sln @@ -11,6 +11,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Substrate.NET.Metadata.Conv EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Substrate.NET.Metadata.Conversion.Tests", "Substrate.NET.Metadata.Conversion.Tests\Substrate.NET.Metadata.Conversion.Tests.csproj", "{ACBF4C38-6691-4443-8F4C-BFF3AF0EE62C}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Substrate.NET.Metadata.Node.Tests", "Substrate.NET.Metadata.Node.Tests\Substrate.NET.Metadata.Node.Tests.csproj", "{07CC3754-3F83-494B-A2D2-49D1F93FA30B}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -33,6 +35,10 @@ Global {ACBF4C38-6691-4443-8F4C-BFF3AF0EE62C}.Debug|Any CPU.Build.0 = Debug|Any CPU {ACBF4C38-6691-4443-8F4C-BFF3AF0EE62C}.Release|Any CPU.ActiveCfg = Release|Any CPU {ACBF4C38-6691-4443-8F4C-BFF3AF0EE62C}.Release|Any CPU.Build.0 = Release|Any CPU + {07CC3754-3F83-494B-A2D2-49D1F93FA30B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {07CC3754-3F83-494B-A2D2-49D1F93FA30B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {07CC3754-3F83-494B-A2D2-49D1F93FA30B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {07CC3754-3F83-494B-A2D2-49D1F93FA30B}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/Substrate.NET.Metadata/Base/StorageEntryTypeDoubleMap.cs b/Substrate.NET.Metadata/Base/StorageEntryTypeDoubleMap.cs index 5f2cbe8..2a56929 100644 --- a/Substrate.NET.Metadata/Base/StorageEntryTypeDoubleMap.cs +++ b/Substrate.NET.Metadata/Base/StorageEntryTypeDoubleMap.cs @@ -1,4 +1,5 @@ -using Substrate.NET.Metadata.Conversion.Internal; +using Substrate.NET.Metadata.Conversion; +using Substrate.NET.Metadata.Conversion.Internal; using Substrate.NET.Metadata.V14; using Substrate.NetApi.Model.Types.Base; using Substrate.NetApi.Model.Types.Primitive; @@ -19,13 +20,13 @@ namespace Substrate.NET.Metadata.Base public class StorageEntryTypeDoubleMap : BaseType where THasher : Enum { - public BaseEnum Key1Hasher { get; private set; } - public BaseEnum Key2Hasher { get; private set; } + public BaseEnum Key1Hasher { get; private set; } = default!; + public BaseEnum Key2Hasher { get; private set; } = default!; - public Str Key1 { get; private set; } - public Str Key2 { get; private set; } + public Str Key1 { get; private set; } = default!; + public Str Key2 { get; private set; } = default!; - public Str Value { get; private set; } + public Str Value { get; private set; } = default!; public override byte[] Encode() { @@ -60,7 +61,7 @@ public override void Decode(byte[] byteArray, ref int p) TypeSize = p - num; } - public StorageEntryTypeMapV14 ToStorageEntryTypeMapV14(ConversionBuilder conversionBuilder) + internal StorageEntryTypeMapV14 ToStorageEntryTypeMapV14(ConversionBuilder conversionBuilder) { var result = new StorageEntryTypeMapV14(); diff --git a/Substrate.NET.Metadata/Base/StorageEntryTypeMap.cs b/Substrate.NET.Metadata/Base/StorageEntryTypeMap.cs index da7d208..9b014b0 100644 --- a/Substrate.NET.Metadata/Base/StorageEntryTypeMap.cs +++ b/Substrate.NET.Metadata/Base/StorageEntryTypeMap.cs @@ -51,7 +51,7 @@ public override void Decode(byte[] byteArray, ref int p) TypeSize = p - num; } - public StorageEntryTypeMapV14 ToStorageEntryTypeMapV14(ConversionBuilder conversionBuilder) + internal StorageEntryTypeMapV14 ToStorageEntryTypeMapV14(ConversionBuilder conversionBuilder) { var result = new StorageEntryTypeMapV14(); diff --git a/Substrate.NET.Metadata/Base/TypeDefs.cs b/Substrate.NET.Metadata/Base/TypeDefs.cs index d5fe2ec..e547af9 100644 --- a/Substrate.NET.Metadata/Base/TypeDefs.cs +++ b/Substrate.NET.Metadata/Base/TypeDefs.cs @@ -185,8 +185,8 @@ public override void Decode(byte[] byteArray, ref int p) TypeSize = p - start; } - public U32 Len { get; private set; } - public TType ElemType { get; private set; } + public U32 Len { get; internal set; } = default!; + public TType ElemType { get; internal set; } = default!; } public class TypeDefTuple : BaseType diff --git a/Substrate.NET.Metadata/Conversion/IMetadataConversion.cs b/Substrate.NET.Metadata/Conversion/IMetadataConversion.cs deleted file mode 100644 index 8811a38..0000000 --- a/Substrate.NET.Metadata/Conversion/IMetadataConversion.cs +++ /dev/null @@ -1,17 +0,0 @@ -using Substrate.NET.Metadata.Base.Portable; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Substrate.NET.Metadata.Conversion -{ - /// - /// Convert metadata < v14 to v14 format - /// - public interface IMetadataConversion - { - void AddToDictionnary(PortableRegistry lookup, string palletName); - } -} diff --git a/Substrate.NET.Metadata/Conversion/IMetadataToV14.cs b/Substrate.NET.Metadata/Conversion/IMetadataToV14.cs new file mode 100644 index 0000000..5c65fc2 --- /dev/null +++ b/Substrate.NET.Metadata/Conversion/IMetadataToV14.cs @@ -0,0 +1,21 @@ +using Substrate.NET.Metadata.Base; +using Substrate.NET.Metadata.Conversion.Internal; +using Substrate.NET.Metadata.V14; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Substrate.NET.Metadata.Conversion +{ + public interface IMetadataToV14 + { + /// + /// Convert the metadata to V14 metadata + /// This is use to keep the metadata in the same format and compatible with the Substrate.NET.Toolchain (https://github.com/SubstrateGaming/Substrate.NET.Toolchain) + /// + /// + MetadataV14 ToMetadataV14(); + } +} diff --git a/Substrate.NET.Metadata/Conversion/Internal/ConversionBuilder.cs b/Substrate.NET.Metadata/Conversion/Internal/ConversionBuilder.cs index f2d514d..b8b3a64 100644 --- a/Substrate.NET.Metadata/Conversion/Internal/ConversionBuilder.cs +++ b/Substrate.NET.Metadata/Conversion/Internal/ConversionBuilder.cs @@ -75,7 +75,9 @@ public ConversionBuilder(List portableTypes) /// public static List UnhandleConversion = new List() { - "Vec::Call, T::BlockNumber>>>", // Pallet scheduler => Storage => Agenda + "Vec::Call, T::BlockNumber>>>", // v11 => Scheduler => v1 => Storage => Agenda + "Vec::Call, T::BlockNumber, T::PalletsOrigin, T::AccountId>>>", // v12 => Scheduler => v25 => Storage => Agenda + "Vec::Call, T::BlockNumber, T::PalletsOrigin, T::AccountId>>>", // v12 => Scheduler => v27 => Storage => Agenda "ElectionResult>", // V11 => Staking => v1 => Storage => QueuedElected "PhragmenScore", // V11 => Staking => v1 => Storage => QueuedScore "ElectionStatus", // V11 => Staking => v1 => Storage => EraElectionStatus @@ -88,6 +90,12 @@ public ConversionBuilder(List portableTypes) "BlockAttestations", // V11 => Attestations => v1 => Storage => ParaBlockAttestations "WinningData", // V11 => Slots => v1 => Storage => Winning "(LeasePeriodOf, IncomingParachain)", // V11 => Slots => v1 => Storage => Onboarding + "ElectionScore", // V12 => Staking => v25 => Storage => QueuedScore + "(OpaqueCall, T::AccountId, BalanceOf)", // V12 => Multisig => v25 => Storage => Calls + ">::Proposal", // V12 => Council => v27 => Storage => ProposalOf + "ProxyState", // V11 => Democracy => v1 => Storage => Proxy + "NewBidder", // V11 => Slots => v1 => Events => WonDeploy + "Bidder", // V11 => Slots => v1 => Storage => ReservedAmounts }; public U32 GetNewIndex() @@ -98,6 +106,8 @@ public U32 GetNewIndex() public U32 BuildPortableTypes(string className) { + className = className.Replace("\r", string.Empty).Replace("\n", string.Empty); + if (UnhandleConversion.Contains(className)) return new U32(UnknowIndex!.Value); // Ok this is bad @@ -531,7 +541,7 @@ public static string CustomMapping(string className) "Vec" => "Vec>", "Vec" => "Vec", "Vec<(AccountId, Balance)>" => "Vec<(::AccountId, BalanceOf)>", - "sp_std::marker::PhantomData<(AccountId, Event)>" => "BaseVoid", // Pas sur de moi + //"sp_std::marker::PhantomData<(AccountId, Event)>" => "BaseVoid", // Pas sur de moi "Timepoint" => "Timepoint", "limits::BlockWeights" => "BlockWeights", "limits::BlockLength" => "BlockLength", @@ -541,6 +551,7 @@ public static string CustomMapping(string className) "Moment" => "u64", "ModuleId" => "PalletId", "LeasePeriod" => "LeasePeriodOf", + "weights::ExtrinsicsWeight" => "PerDispatchClass", _ => className }; } @@ -638,16 +649,31 @@ public PortableType CreateUnknownNode() return pt; } - public PortableType CreatePortableTypeFromNode(BaseType node) + + public PortableType CreatePortableTypeFromNode(BaseType node, List? path = null, List? docs = null) { var portableType = new PortableType(); portableType.Id = GetNewIndex(); portableType.Ty = new TypePortableForm(); - portableType.Ty.Docs = new BaseVec(new Str[0]); - portableType.Ty.Path = new Base.Portable.Path(); - portableType.Ty.Path.Create(new Str[0]); + + if(docs is not null) + portableType.Ty.Docs = new BaseVec(docs.Select(x => new Str(x)).ToArray()); + else + portableType.Ty.Docs = new BaseVec(new Str[0]); + + if(path is not null) + { + portableType.Ty.Path = new Base.Portable.Path(); + portableType.Ty.Path.Create(path.Select(x => new Str(x)).ToArray()); + } + else + { + portableType.Ty.Path = new Base.Portable.Path(); + portableType.Ty.Path.Create(new Str[0]); + } + portableType.Ty.TypeParams = new BaseVec(new TypeParameter[0]); if (node is TypeDefTuple tdt) @@ -668,6 +694,12 @@ public PortableType CreatePortableTypeFromNode(BaseType node) portableType.Ty.TypeDef.Create(TypeDefEnum.Sequence, tds); } + if (node is TypeDefArray tda) + { + portableType.Ty.TypeDef = new TypeDefExt(); + portableType.Ty.TypeDef.Create(TypeDefEnum.Array, tda); + } + PortableTypes.Add(portableType); return portableType; @@ -682,22 +714,12 @@ public TypeDefTuple BuildTuple(List types) return node; } - public void CreateRuntime(string blockchainName) + public void CreateRuntime() { - var portableType = new PortableType(); - - portableType.Id = GetNewIndex(); - portableType.Ty = new TypePortableForm(); - portableType.Ty.Docs = new BaseVec([new Str($"{blockchainName}_runtime"), new Str("runtime")]); - portableType.Ty.Path = new Base.Portable.Path(); - portableType.Ty.Path.Create(new Str[0]); - portableType.Ty.TypeParams = new BaseVec(new TypeParameter[0]); - var emptyComposite = new TypeDefComposite(); - portableType.Ty.TypeDef = new TypeDefExt(); - portableType.Ty.TypeDef.Create(emptyComposite.Encode()); + emptyComposite.Fields = new BaseVec(new Field[0]); - PortableTypes.Add(portableType); + CreatePortableTypeFromNode(node: emptyComposite, path: new List() { "conversion_runtime", "runtime" }); } #endregion } diff --git a/Substrate.NET.Metadata/Conversion/Internal/ConversionBuilderTree.cs b/Substrate.NET.Metadata/Conversion/Internal/ConversionBuilderTree.cs index 762da12..8d95998 100644 --- a/Substrate.NET.Metadata/Conversion/Internal/ConversionBuilderTree.cs +++ b/Substrate.NET.Metadata/Conversion/Internal/ConversionBuilderTree.cs @@ -237,7 +237,7 @@ public static NodeBuilderType Build(NodeBuilderType nodeBuilderType) if (match.Success) { - var nodeTuple = new NodeBuilderTypeTuple(node.Adapted, node.PalletContext); + var nodeTuple = new NodeBuilderTypeTuple(node.Adapted, node.Raw, node.PalletContext); if (ExtractParameters(match.Groups[1].Value) is List parameters) { @@ -311,7 +311,7 @@ public static (string key, string value)? ExtractMap(string className) object? res = null; if (Enum.TryParse(typeof(TypeDefPrimitive), node.Adapted, true, out res)) { - return new NodeBuilderTypePrimitive(node.Adapted, (TypeDefPrimitive)res, node.PalletContext); + return new NodeBuilderTypePrimitive(node.Adapted, node.Raw, (TypeDefPrimitive)res, node.PalletContext); } return null; @@ -336,31 +336,38 @@ public static (string key, string value)? ExtractMap(string className) NodeBuilderType result = typeDef switch { - TypeDefEnum.Sequence => new NodeBuilderTypeSequence(node.Adapted, node.PalletContext), + TypeDefEnum.Sequence => new NodeBuilderTypeSequence(node.Adapted, node.Raw, node.PalletContext), TypeDefEnum.Variant when match.Groups[1].Value == "Option" => new NodeBuilderTypeOption(node.Adapted, node.Raw, node.PalletContext), - TypeDefEnum.Variant => new NodeBuilderTypeVariant(node.Adapted, node.PalletContext), + TypeDefEnum.Variant => new NodeBuilderTypeVariant(node.Adapted, node.Raw, node.PalletContext), TypeDefEnum.Composite => new NodeBuilderTypeComposite( SearchV14.HardBinding(match.Groups[1].Value, node.PalletContext), node.Adapted, node.PalletContext), _ => throw new MetadataConversionException($"TypeDef {typeDef} is not handled") }; - if (!GenericValueToIgnore.Contains(genericParameters)) + if (result is NodeBuilderTypeComposite c && c.Raw != c.Adapted) { - if (ExtractParameters(genericParameters) is List parameters) + return Build(new NodeBuilderTypeUndefined(c.Adapted, c.Raw, c.PalletContext)); + } + else + { + if (!GenericValueToIgnore.Contains(genericParameters)) { - foreach (var param in parameters) + if (ExtractParameters(genericParameters) is List parameters) { - result.Children.Add(new NodeBuilderTypeUndefined(param, node.PalletContext)); + foreach (var param in parameters) + { + result.Children.Add(new NodeBuilderTypeUndefined(param, node.PalletContext)); + } + } + else + { + result.Children.Add(new NodeBuilderTypeUndefined(genericParameters, node.PalletContext)); } } - else - { - result.Children.Add(new NodeBuilderTypeUndefined(genericParameters, node.PalletContext)); - } - } - return result; + return result; + } } return null; diff --git a/Substrate.NET.Metadata/Conversion/Internal/NodeBuilderType.cs b/Substrate.NET.Metadata/Conversion/Internal/NodeBuilderType.cs index c2a0fa4..d46d3df 100644 --- a/Substrate.NET.Metadata/Conversion/Internal/NodeBuilderType.cs +++ b/Substrate.NET.Metadata/Conversion/Internal/NodeBuilderType.cs @@ -10,6 +10,8 @@ namespace Substrate.NET.Metadata.Conversion.Internal { public abstract class NodeBuilderType { + public int? Index { get; set; } = null; + public abstract TypeDefEnum TypeDef { get; } /// @@ -86,7 +88,7 @@ public class NodeBuilderTypePrimitive : NodeBuilderType { public TypeDefPrimitive Primitive { get; set; } - public NodeBuilderTypePrimitive(string content, TypeDefPrimitive primitive, string palletContext): base(content, content, palletContext) + public NodeBuilderTypePrimitive(string content, string raw, TypeDefPrimitive primitive, string palletContext): base(content, raw, palletContext) { Primitive = primitive; } @@ -105,7 +107,7 @@ public NodeBuilderTypeComposite(string content, string raw, string palletContext public class NodeBuilderTypeSequence : NodeBuilderType { - public NodeBuilderTypeSequence(string content, string palletContext) : base(content, content, palletContext) + public NodeBuilderTypeSequence(string content, string raw, string palletContext) : base(content, raw, palletContext) { } @@ -114,7 +116,7 @@ public NodeBuilderTypeSequence(string content, string palletContext) : base(cont public class NodeBuilderTypeTuple : NodeBuilderType { - public NodeBuilderTypeTuple(string content, string palletContext) : base(content, content, palletContext) + public NodeBuilderTypeTuple(string content, string raw, string palletContext) : base(content, raw, palletContext) { } @@ -144,7 +146,7 @@ public NodeBuilderTypeCompact(string content, string palletContext) : base(conte public class NodeBuilderTypeVariant : NodeBuilderType { - public NodeBuilderTypeVariant(string content, string palletContext) : base(content, content, palletContext) + public NodeBuilderTypeVariant(string content, string raw, string palletContext) : base(content, raw, palletContext) { PalletContext = palletContext; } diff --git a/Substrate.NET.Metadata/Conversion/Internal/SearchV14.cs b/Substrate.NET.Metadata/Conversion/Internal/SearchV14.cs index be73dfd..c3540f0 100644 --- a/Substrate.NET.Metadata/Conversion/Internal/SearchV14.cs +++ b/Substrate.NET.Metadata/Conversion/Internal/SearchV14.cs @@ -35,6 +35,10 @@ public static MetadataV14 MetadataV14 } public const int StorageEventIndex = 18; + + /// + /// The hard coded Polkadot event runtime index in the V14 Types dictionary + /// public const int PolkadotRuntimeEventIndex = 20; public static uint? HardIndexBinding(string type) { @@ -78,19 +82,30 @@ public static string HardBinding(string type, string palletContext) "SlotRange" => "U32", // Just a guess "CollatorId" => "U32", "&[u8]" when palletContext == "Claims" => "Vec", + "& 'static[u8]" when palletContext == "Claims" => "Vec", + "weights::ExtrinsicsWeight" => "PerDispatchClass", + "ConsumedWeight" => "PerDispatchClass", // Just a guess + "Approvals" => "[u8;4]", + "TransactionPriority" => "U64", + "SubmissionIndicesOf" => "Vec<([U128;3],U32)>", _ => type }; } public static PortableType FindTypeByIndex(int index) { - return MetadataV14.RuntimeMetadataData.Lookup.Value.Single(x => x.Id.Value == index); + var x = MetadataV14.RuntimeMetadataData.Lookup.Value.SingleOrDefault(x => x.Id.Value == index); + return x; } public static (int index, SearchResult searchResult) SearchIndexByNode(NodeBuilderType node, ConversionBuilder conversionBuilder) { var potentialIndex = FindIndexByClass(node.Adapted); - if (potentialIndex != null) return (potentialIndex.Value, SearchResult.Founded); + if (potentialIndex != null) + { + node.Index = potentialIndex.Value; + return (potentialIndex.Value, SearchResult.Founded); + } var typeDefs = MetadataV14.RuntimeMetadataData.Lookup.Value.Where(x => x.Ty.TypeDef.Value == node.TypeDef); @@ -108,14 +123,16 @@ public static (int index, SearchResult searchResult) SearchIndexByNode(NodeBuild { if (tds.ElemType.Value == indexesToSearch[0].index) { - return ((int)typeDef.Id.Value, SearchResult.Founded); + node.Index = (int)typeDef.Id.Value; + return (node.Index.Value, SearchResult.Founded); } } else if (typeDef.Ty.TypeDef.Value2 is TypeDefArray tda) { if (tda.ElemType.Value == indexesToSearch[0].index && tda.Len.Value == ((NodeBuilderTypeArray)node).Length) { - return ((int)typeDef.Id.Value, SearchResult.Founded); + node.Index = (int)typeDef.Id.Value; + return (node.Index.Value, SearchResult.Founded); } } else if (typeDef.Ty.TypeDef.Value2 is TypeDefBitSequence tdbs) @@ -125,7 +142,8 @@ public static (int index, SearchResult searchResult) SearchIndexByNode(NodeBuild if (tdbs.BitOrderType.Value == child1.index && tdbs.BitStoreType.Value == child2.index) { - return ((int)typeDef.Id.Value, SearchResult.Founded); + node.Index = (int)typeDef.Id.Value; + return (node.Index.Value, SearchResult.Founded); } } else if (typeDef.Ty.TypeDef.Value2 is TypeDefCompact tdc) @@ -134,20 +152,19 @@ public static (int index, SearchResult searchResult) SearchIndexByNode(NodeBuild if (tdc.ElemType.Value == childIndex.index) { - return ((int)typeDef.Id.Value, SearchResult.Founded); + node.Index = (int)typeDef.Id.Value; + return (node.Index.Value, SearchResult.Founded); } } else if (typeDef.Ty.TypeDef.Value2 is TypeDefComposite tdcomposite) { - if (indexesToSearch.Count == 1 && indexesToSearch[0].index == 0) + var sameName = typeDef.Ty.Path.Value.Any() && typeDef.Ty.Path.Value[^1].Value == node.Adapted; + var sameChildren = indexesToSearch.Select(x => x.index).SequenceEqual(tdcomposite.Fields.Value.Select(x => (int)x.ElemType.Value)); + if (sameName && sameChildren) { - return ((int)typeDef.Id.Value, SearchResult.Founded); + node.Index = (int)typeDef.Id.Value; + return (node.Index.Value, SearchResult.Founded); } - //var indexes = node.Children.Select(n => FindIndexByNode(n)!.Value); - //if(indexes.SequenceEqual(tdcomposite.Fields.Value.Select(x => (int)x.ElemType.Value))) - //{ - // return (int)typeDef.Id.Value; - //} } else if (typeDef.Ty.TypeDef.Value2 is BaseEnum tdp) { @@ -155,11 +172,13 @@ public static (int index, SearchResult searchResult) SearchIndexByNode(NodeBuild if (index == null) throw new MetadataConversionException($"Primitive {tdp} not found. Should never happened"); - return ((int)typeDef.Id.Value, SearchResult.Founded); + node.Index = (int)typeDef.Id.Value; + return (node.Index.Value, SearchResult.Founded); } else if (typeDef.Ty.TypeDef.Value2 is TypeDefTuple tdt && FoundAllChildren(indexesToSearch.Select(x => x.index).ToList(), tdt)) { - return ((int)typeDef.Id.Value, SearchResult.Founded); + node.Index = (int)typeDef.Id.Value; + return (node.Index.Value, SearchResult.Founded); } else if (typeDef.Ty.TypeDef.Value2 is TypeDefVariant tdv) { @@ -168,7 +187,10 @@ public static (int index, SearchResult searchResult) SearchIndexByNode(NodeBuild if (tdv.TypeParam.Value.Length == 2 && tdv.TypeParam.Value[0].IsNone() && tdv.TypeParam.Value[1].IsSome(indexesToSearch[0]!.index)) - return ((int)typeDef.Id.Value, SearchResult.Founded); + { + node.Index = (int)typeDef.Id.Value; + return (node.Index.Value, SearchResult.Founded); + } } else { @@ -177,7 +199,10 @@ public static (int index, SearchResult searchResult) SearchIndexByNode(NodeBuild { var isIdentical = ConversionUtils.AreArraysIdentical(variant.VariantFields.Value.Select(x => (int)x.FieldTy.Value).ToArray(), indexesToSearch.Select(x => x.index).ToArray()); - if (isIdentical) return ((int)typeDef.Id.Value, SearchResult.Founded); + if (isIdentical) { + node.Index = (int)typeDef.Id.Value; + return (node.Index.Value, SearchResult.Founded); + } } } } @@ -188,7 +213,8 @@ public static (int index, SearchResult searchResult) SearchIndexByNode(NodeBuild var tuple = new TypeDefTuple(); tuple.Fields = new BaseVec(indexesToSearch.Select(x => TType.From((uint)x.index)).ToArray()); - return ((int)conversionBuilder.CreatePortableTypeFromNode(tuple).Id.Value, SearchResult.Created); + node.Index = (int)conversionBuilder.CreatePortableTypeFromNode(tuple).Id.Value; + return (node.Index.Value, SearchResult.Created); } if(node.TypeDef == TypeDefEnum.Sequence) @@ -196,7 +222,18 @@ public static (int index, SearchResult searchResult) SearchIndexByNode(NodeBuild var sequence = new TypeDefSequence(); sequence.ElemType = TType.From((uint)indexesToSearch[0].index); - return ((int)conversionBuilder.CreatePortableTypeFromNode(sequence).Id.Value, SearchResult.Created); + node.Index = (int)conversionBuilder.CreatePortableTypeFromNode(sequence).Id.Value; + return (node.Index.Value, SearchResult.Created); + } + + if (node.TypeDef == TypeDefEnum.Array) + { + var array = new TypeDefArray(); + array.Len = new NetApi.Model.Types.Primitive.U32((uint)((NodeBuilderTypeArray)node).Length); + array.ElemType = TType.From((uint)indexesToSearch[0].index); + + node.Index = (int)conversionBuilder.CreatePortableTypeFromNode(array).Id.Value; + return (node.Index.Value, SearchResult.Created); } throw new MetadataConversionException($"Unable to find or create {node.Raw}"); diff --git a/Substrate.NET.Metadata/StorageEntryMetadata.cs b/Substrate.NET.Metadata/StorageEntryMetadata.cs deleted file mode 100644 index 91e06f3..0000000 --- a/Substrate.NET.Metadata/StorageEntryMetadata.cs +++ /dev/null @@ -1,32 +0,0 @@ -using Newtonsoft.Json.Converters; -using Newtonsoft.Json; -using Substrate.NetApi.Model.Meta; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Substrate.NET.Metadata -{ - /// - /// Based on - /// - public abstract class StorageEntryMetadata - { - public string Name { get; set; } - - [JsonConverter(typeof(StringEnumConverter))] - public Storage.Modifier Modifier { get; set; } - - [JsonConverter(typeof(StringEnumConverter))] - public Storage.Type StorageType { get; set; } - - public (uint, TypeMap) TypeMap { get; set; } - - public byte[] Default { get; set; } - - [JsonProperty(NullValueHandling = NullValueHandling.Ignore)] - public string[] Docs { get; set; } - } -} diff --git a/Substrate.NET.Metadata/V10/MetadataV10.cs b/Substrate.NET.Metadata/V10/MetadataV10.cs index a0444f1..28f15de 100644 --- a/Substrate.NET.Metadata/V10/MetadataV10.cs +++ b/Substrate.NET.Metadata/V10/MetadataV10.cs @@ -1,8 +1,10 @@ using Substrate.NET.Metadata.Base; +using Substrate.NET.Metadata.Conversion; +using Substrate.NET.Metadata.V14; namespace Substrate.NET.Metadata.V10 { - public class MetadataV10 : BaseMetadata + public class MetadataV10 : BaseMetadata, IMetadataToV14 { public MetadataV10() : base() { @@ -14,6 +16,16 @@ public MetadataV10(string hex) : base(hex) public override MetadataVersion Version => MetadataVersion.V10; + public MetadataV14 ToMetadataV14() + { + var res = new MetadataV14(); + + res.MetaDataInfo = MetaDataInfo; + res.RuntimeMetadataData = RuntimeMetadataData.ToRuntimeMetadataV14(); + + return res; + } + public override string TypeName() => nameof(MetadataV10); } } diff --git a/Substrate.NET.Metadata/V10/ModuleMetadataV10.cs b/Substrate.NET.Metadata/V10/ModuleMetadataV10.cs index ce23e56..8bb4175 100644 --- a/Substrate.NET.Metadata/V10/ModuleMetadataV10.cs +++ b/Substrate.NET.Metadata/V10/ModuleMetadataV10.cs @@ -8,6 +8,8 @@ using System.Linq; using System.Text; using System.Threading.Tasks; +using Substrate.NET.Metadata.Conversion.Internal; +using Substrate.NET.Metadata.V14; namespace Substrate.NET.Metadata.V10 { @@ -72,5 +74,74 @@ public MetadataDifferentialModulesV10 ToDifferentialModules(CompareStatus status Enumerable.Empty<(string, (CompareStatus, StorageEntryMetadataV10))>(), }; } + + internal ModuleMetadataV14 ToModuleMetadataV14(ConversionBuilder conversionBuilder, int index) + { + var result = new ModuleMetadataV14(); + result.Name = Name; + result.Index = new U8((byte)index); + + conversionBuilder.CurrentPallet = Name.Value; + + // We do not do Calls conversion + result.Calls = new BaseOpt(null!); + + if (Events.OptionFlag) + { + result.Events = ToPalletEventV14(conversionBuilder); + + var variantField = new Field( + name: new BaseOpt(), + fieldTy: result.Events.Value.ElemType, + fieldTypeName: new BaseOpt(new Str($"{Name.Value}::Event(new Str[0])); + + var eventVariant = new Variant( + name: Name, + variantFields: new BaseVec([variantField]), + index: new U8((byte)index), + docs: new BaseVec(new Str[0])); + + conversionBuilder.AddPalletEventBlockchainRuntimeEvent(eventVariant); + } + else + { + result.Events = new BaseOpt(null!); + } + + result.Errors = ToPalletErrorV14(conversionBuilder); + + result.Constants = new BaseVec(Constants.Value.Select(x => x.ToPalletConstantMetadataV14(conversionBuilder)).ToArray()); + + + if (Storage.OptionFlag) + { + result.Storage = new BaseOpt(this.Storage.Value.ToStorageMetadataV14(conversionBuilder)); + } + else + { + result.Storage = new BaseOpt(null!); + } + + return result; + } + + private BaseOpt ToPalletErrorV14(ConversionBuilder conversionBuilder) + { + var errorsVariants = Errors.Value.Select((x, i) => x.ToVariant(conversionBuilder, i)).ToArray(); + var palletError = new PalletErrorMetadataV14(); + palletError.ElemType = TType.From(conversionBuilder.AddErrorRuntimeLookup(Name.Value, errorsVariants).Value); + return new BaseOpt(palletError); + } + + private BaseOpt ToPalletEventV14(ConversionBuilder conversionBuilder) + { + var eventsVariants = Events.Value.Value.Select((x, i) => x.ToVariant(conversionBuilder, i)).ToArray(); + + var palletEvent = new PalletEventMetadataV14(); + palletEvent.ElemType = TType.From(conversionBuilder.AddEventRuntimeLookup(Name.Value, eventsVariants).Value); + + return new BaseOpt(palletEvent); + } } } diff --git a/Substrate.NET.Metadata/V10/RuntimeMetadataV10.cs b/Substrate.NET.Metadata/V10/RuntimeMetadataV10.cs index 92bd807..099f155 100644 --- a/Substrate.NET.Metadata/V10/RuntimeMetadataV10.cs +++ b/Substrate.NET.Metadata/V10/RuntimeMetadataV10.cs @@ -8,6 +8,10 @@ using System.Threading.Tasks; using static System.Runtime.InteropServices.JavaScript.JSType; using System.Xml.Linq; +using Substrate.NET.Metadata.Conversion.Internal; +using Substrate.NET.Metadata.V14; +using Substrate.NetApi.Model.Extrinsics; +using Substrate.NET.Metadata.Base.Portable; namespace Substrate.NET.Metadata.V10 { @@ -31,5 +35,26 @@ public override byte[] Encode() result.AddRange(Modules.Encode()); return result.ToArray(); } + + internal RuntimeMetadataV14 ToRuntimeMetadataV14() + { + var conversion = new ConversionBuilder(new List()); + + conversion.CreateUnknownNode(); + conversion.ClearEventBlockchainRuntimeEvent(); + + var res = new RuntimeMetadataV14(); + + res.Modules = new BaseVec( + Modules.Value.Select((x, i) => x.ToModuleMetadataV14(conversion, i)) + .ToArray()); + + conversion.CreateRuntime(); + + res.Lookup = new PortableRegistry(); + res.Lookup.Create(conversion.PortableTypes.ToArray()); + + return res; + } } } diff --git a/Substrate.NET.Metadata/V10/StorageEntryMetadataV10.cs b/Substrate.NET.Metadata/V10/StorageEntryMetadataV10.cs index b76339f..3761790 100644 --- a/Substrate.NET.Metadata/V10/StorageEntryMetadataV10.cs +++ b/Substrate.NET.Metadata/V10/StorageEntryMetadataV10.cs @@ -3,6 +3,10 @@ using Substrate.NET.Metadata.Base; using Substrate.NET.Metadata; using System.Reflection; +using Substrate.NET.Metadata.Conversion.Internal; +using Substrate.NET.Metadata.Conversion; +using Substrate.NET.Metadata.V11; +using Substrate.NET.Metadata.V14; namespace Substrate.NET.Metadata.V10 { @@ -41,10 +45,49 @@ public override void Decode(byte[] byteArray, ref int p) TypeSize = p - start; } - public Str Name { get; private set; } - public BaseEnum StorageModifier { get; private set; } - public BaseEnumExt StorageType { get; private set; } - public ByteGetter StorageDefault { get; private set; } - public BaseVec Documentation { get; private set; } + public Str Name { get; private set; } = default!; + public BaseEnum StorageModifier { get; private set; } = default!; + public BaseEnumExt StorageType { get; private set; } = default!; + public ByteGetter StorageDefault { get; private set; } = default!; + public BaseVec Documentation { get; private set; } = default!; + + internal StorageEntryMetadataV14 ToStorageEntryMetadataV14(ConversionBuilder conversionBuilder) + { + var mapStorageType = new BaseEnumExt(); + + if (StorageType.Value == Metadata.StorageType.TypeV9.Plain) + { + var val = StorageType.Value2 as Str; + var index = conversionBuilder.BuildPortableTypes(val!.Value); + + mapStorageType.Create(Metadata.StorageType.Type.Plain, TType.From(index.Value)); + } + else if (StorageType.Value == Metadata.StorageType.TypeV9.Map) + { + var map = (StorageEntryTypeMapV11)StorageType.Value2; + mapStorageType.Create(Metadata.StorageType.Type.Map, map.ToStorageEntryTypeMapV14(conversionBuilder)); + } + else if (StorageType.Value == Metadata.StorageType.TypeV9.DoubleMap) + { + var map = (StorageEntryTypeDoubleMapV11)StorageType.Value2; + mapStorageType.Create(Metadata.StorageType.Type.Map, map.ToStorageEntryTypeMapV14(conversionBuilder)); + + } + else + { + // NMap exists but should never happened + throw new MetadataConversionException($"Error while converting StorageEntryMetadataV11. Received storage type {StorageType.Value} while should never happened"); + } + + var storageEntry = new StorageEntryMetadataV14( + name: Name, + storageModifier: StorageModifier, + storageType: mapStorageType, + storageDefault: StorageDefault, + documentation: Documentation + ); + + return storageEntry; + } } } \ No newline at end of file diff --git a/Substrate.NET.Metadata/V10/StorageMetadataV10.cs b/Substrate.NET.Metadata/V10/StorageMetadataV10.cs index 2e9f9ee..6dcb7bc 100644 --- a/Substrate.NET.Metadata/V10/StorageMetadataV10.cs +++ b/Substrate.NET.Metadata/V10/StorageMetadataV10.cs @@ -1,4 +1,6 @@ -using Substrate.NET.Metadata.V9; +using Substrate.NET.Metadata.Conversion.Internal; +using Substrate.NET.Metadata.V14; +using Substrate.NET.Metadata.V9; using Substrate.NetApi.Model.Types.Base; using Substrate.NetApi.Model.Types.Primitive; using System.Xml.Linq; @@ -28,7 +30,17 @@ public override void Decode(byte[] byteArray, ref int p) TypeSize = p - start; } - public Str Prefix { get; private set; } - public BaseVec Entries { get; private set; } + public Str Prefix { get; private set; } = default!; + public BaseVec Entries { get; private set; } = default!; + + internal PalletStorageMetadataV14 ToStorageMetadataV14(ConversionBuilder conversionBuilder) + { + var storage = new PalletStorageMetadataV14( + prefix: Prefix.Value, + entries: Entries.Value.Select(x => x.ToStorageEntryMetadataV14(conversionBuilder)) + ); + + return storage; + } } } \ No newline at end of file diff --git a/Substrate.NET.Metadata/V11/MetadataV11.cs b/Substrate.NET.Metadata/V11/MetadataV11.cs index c00ec65..c609380 100644 --- a/Substrate.NET.Metadata/V11/MetadataV11.cs +++ b/Substrate.NET.Metadata/V11/MetadataV11.cs @@ -1,9 +1,10 @@ using Substrate.NET.Metadata.Base; +using Substrate.NET.Metadata.Conversion; using Substrate.NET.Metadata.V14; namespace Substrate.NET.Metadata.V11 { - public class MetadataV11 : BaseMetadata + public class MetadataV11 : BaseMetadata, IMetadataToV14 { public MetadataV11() : base() { diff --git a/Substrate.NET.Metadata/V11/ModuleMetadataV11.cs b/Substrate.NET.Metadata/V11/ModuleMetadataV11.cs index 7b25d0e..5bd728b 100644 --- a/Substrate.NET.Metadata/V11/ModuleMetadataV11.cs +++ b/Substrate.NET.Metadata/V11/ModuleMetadataV11.cs @@ -73,7 +73,7 @@ public MetadataDifferentialModulesV11 ToDifferentialModule(CompareStatus status) }; } - public ModuleMetadataV14 ToModuleMetadataV14(ConversionBuilder conversionBuilder, int index) + internal ModuleMetadataV14 ToModuleMetadataV14(ConversionBuilder conversionBuilder, int index) { var result = new ModuleMetadataV14(); result.Name = Name; @@ -96,7 +96,7 @@ public ModuleMetadataV14 ToModuleMetadataV14(ConversionBuilder conversionBuilder var eventVariant = new Variant( name: Name, - variantFields: new BaseVec(new Field[1] { variantField }), + variantFields: new BaseVec([variantField]), index: new U8((byte)index), docs: new BaseVec(new Str[0])); diff --git a/Substrate.NET.Metadata/V11/RuntimeMetadataV11.cs b/Substrate.NET.Metadata/V11/RuntimeMetadataV11.cs index 7049924..a80f2a5 100644 --- a/Substrate.NET.Metadata/V11/RuntimeMetadataV11.cs +++ b/Substrate.NET.Metadata/V11/RuntimeMetadataV11.cs @@ -31,7 +31,7 @@ public override byte[] Encode() return result.ToArray(); } - public RuntimeMetadataV14 ToRuntimeMetadataV14() + internal RuntimeMetadataV14 ToRuntimeMetadataV14() { var conversion = new ConversionBuilder(new List()); @@ -46,7 +46,7 @@ public RuntimeMetadataV14 ToRuntimeMetadataV14() res.Extrinsic = Extrinsic.ToExtrinsicMetadataV14(conversion); - conversion.CreateRuntime("polkadot"); + conversion.CreateRuntime(); res.Lookup = new PortableRegistry(); res.Lookup.Create(conversion.PortableTypes.ToArray()); diff --git a/Substrate.NET.Metadata/V11/StorageEntryMetadataV11.cs b/Substrate.NET.Metadata/V11/StorageEntryMetadataV11.cs index 93ae3ac..5db9bbf 100644 --- a/Substrate.NET.Metadata/V11/StorageEntryMetadataV11.cs +++ b/Substrate.NET.Metadata/V11/StorageEntryMetadataV11.cs @@ -50,14 +50,13 @@ public override void Decode(byte[] byteArray, ref int p) public ByteGetter StorageDefault { get; private set; } = default!; public BaseVec Documentation { get; private set; } = default!; - public StorageEntryMetadataV14 ToStorageEntryMetadataV14(ConversionBuilder conversionBuilder) + internal StorageEntryMetadataV14 ToStorageEntryMetadataV14(ConversionBuilder conversionBuilder) { var mapStorageType = new BaseEnumExt(); if (StorageType.Value == Metadata.StorageType.TypeV9.Plain) { var val = StorageType.Value2 as Str; - //var idx = ConversionV14Helper.AddToLookup(lookup, val!.Value); var index = conversionBuilder.BuildPortableTypes(val!.Value); mapStorageType.Create(Metadata.StorageType.Type.Plain, TType.From(index.Value)); @@ -74,7 +73,7 @@ public StorageEntryMetadataV14 ToStorageEntryMetadataV14(ConversionBuilder conve } else { - // DoubleMap and NMap exists but should never happened + // NMap exists but should never happened throw new MetadataConversionException($"Error while converting StorageEntryMetadataV11. Received storage type {StorageType.Value} while should never happened"); } diff --git a/Substrate.NET.Metadata/V11/StorageMetadataV11.cs b/Substrate.NET.Metadata/V11/StorageMetadataV11.cs index a01f487..b3a27ca 100644 --- a/Substrate.NET.Metadata/V11/StorageMetadataV11.cs +++ b/Substrate.NET.Metadata/V11/StorageMetadataV11.cs @@ -33,7 +33,7 @@ public override void Decode(byte[] byteArray, ref int p) public Str Prefix { get; private set; } = default!; public BaseVec Entries { get; private set; } = default!; - public PalletStorageMetadataV14 ToStorageMetadataV14(ConversionBuilder conversionBuilder) + internal PalletStorageMetadataV14 ToStorageMetadataV14(ConversionBuilder conversionBuilder) { var storage = new PalletStorageMetadataV14( prefix: Prefix.Value, diff --git a/Substrate.NET.Metadata/V12/MetadataV12.cs b/Substrate.NET.Metadata/V12/MetadataV12.cs index e9be426..2b07ebd 100644 --- a/Substrate.NET.Metadata/V12/MetadataV12.cs +++ b/Substrate.NET.Metadata/V12/MetadataV12.cs @@ -5,10 +5,12 @@ using System.Linq; using System.Text; using System.Threading.Tasks; +using Substrate.NET.Metadata.Conversion; +using Substrate.NET.Metadata.V14; namespace Substrate.NET.Metadata.V12 { - public class MetadataV12 : BaseMetadata + public class MetadataV12 : BaseMetadata, IMetadataToV14 { public MetadataV12() : base() { @@ -20,6 +22,16 @@ public MetadataV12(string hex) : base(hex) public override MetadataVersion Version => MetadataVersion.V12; + public MetadataV14 ToMetadataV14() + { + var res = new MetadataV14(); + + res.MetaDataInfo = MetaDataInfo; + res.RuntimeMetadataData = RuntimeMetadataData.ToRuntimeMetadataV14(); + + return res; + } + public override string TypeName() => nameof(MetadataV12); } } diff --git a/Substrate.NET.Metadata/V12/ModuleMetadataV12.cs b/Substrate.NET.Metadata/V12/ModuleMetadataV12.cs index 16c2c27..1fde628 100644 --- a/Substrate.NET.Metadata/V12/ModuleMetadataV12.cs +++ b/Substrate.NET.Metadata/V12/ModuleMetadataV12.cs @@ -5,6 +5,8 @@ using Substrate.NET.Metadata.V11; using Substrate.NetApi.Model.Types.Base; using Substrate.NetApi.Model.Types.Primitive; +using Substrate.NET.Metadata.Conversion.Internal; +using Substrate.NET.Metadata.V14; namespace Substrate.NET.Metadata.V12 { @@ -74,5 +76,77 @@ public MetadataDifferentialModulesV12 ToDifferentialModules(CompareStatus status Enumerable.Empty<(string, (CompareStatus, StorageEntryMetadataV11))>(), }; } + + internal ModuleMetadataV14 ToModuleMetadataV14(ConversionBuilder conversionBuilder, int index) + { + //if(Index.Value != index) throw new InvalidOperationException($"Incoherent module index. Expected: {Index.Value} but got: {index} for module: {Name.Value}"); + + var result = new ModuleMetadataV14(); + result.Index = Index; + result.Name = Name; + result.Index = new U8((byte)index); + + conversionBuilder.CurrentPallet = Name.Value; + + // We do not do Calls conversion + result.Calls = new BaseOpt(null!); + + if (Events.OptionFlag) + { + result.Events = ToPalletEventV14(conversionBuilder); + + var variantField = new Field( + name: new BaseOpt(), + fieldTy: result.Events.Value.ElemType, + fieldTypeName: new BaseOpt(new Str($"{Name.Value}::Event(new Str[0])); + + var eventVariant = new Variant( + name: Name, + variantFields: new BaseVec([variantField]), + index: new U8((byte)index), + docs: new BaseVec(new Str[0])); + + conversionBuilder.AddPalletEventBlockchainRuntimeEvent(eventVariant); + } + else + { + result.Events = new BaseOpt(null!); + } + + result.Errors = ToPalletErrorV14(conversionBuilder); + + result.Constants = new BaseVec(Constants.Value.Select(x => x.ToPalletConstantMetadataV14(conversionBuilder)).ToArray()); + + + if (Storage.OptionFlag) + { + result.Storage = new BaseOpt(this.Storage.Value.ToStorageMetadataV14(conversionBuilder)); + } + else + { + result.Storage = new BaseOpt(null!); + } + + return result; + } + + private BaseOpt ToPalletErrorV14(ConversionBuilder conversionBuilder) + { + var errorsVariants = Errors.Value.Select((x, i) => x.ToVariant(conversionBuilder, i)).ToArray(); + var palletError = new PalletErrorMetadataV14(); + palletError.ElemType = TType.From(conversionBuilder.AddErrorRuntimeLookup(Name.Value, errorsVariants).Value); + return new BaseOpt(palletError); + } + + private BaseOpt ToPalletEventV14(ConversionBuilder conversionBuilder) + { + var eventsVariants = Events.Value.Value.Select((x, i) => x.ToVariant(conversionBuilder, i)).ToArray(); + + var palletEvent = new PalletEventMetadataV14(); + palletEvent.ElemType = TType.From(conversionBuilder.AddEventRuntimeLookup(Name.Value, eventsVariants).Value); + + return new BaseOpt(palletEvent); + } } } \ No newline at end of file diff --git a/Substrate.NET.Metadata/V12/RuntimeMetadataV12.cs b/Substrate.NET.Metadata/V12/RuntimeMetadataV12.cs index b001aa6..e6c5106 100644 --- a/Substrate.NET.Metadata/V12/RuntimeMetadataV12.cs +++ b/Substrate.NET.Metadata/V12/RuntimeMetadataV12.cs @@ -1,4 +1,7 @@ -using Substrate.NET.Metadata.V11; +using Substrate.NET.Metadata.Base.Portable; +using Substrate.NET.Metadata.Conversion.Internal; +using Substrate.NET.Metadata.V11; +using Substrate.NET.Metadata.V14; using Substrate.NetApi.Model.Types.Base; using System; using System.Collections.Generic; @@ -33,5 +36,27 @@ public override byte[] Encode() result.AddRange(Extrinsic.Encode()); return result.ToArray(); } + + internal RuntimeMetadataV14 ToRuntimeMetadataV14() + { + var conversion = new ConversionBuilder(new List()); + + conversion.CreateUnknownNode(); + conversion.ClearEventBlockchainRuntimeEvent(); + + var res = new RuntimeMetadataV14(); + + res.Modules = new BaseVec( + Modules.Value.Select((x, i) => x.ToModuleMetadataV14(conversion, i)) + .ToArray()); + + res.Extrinsic = Extrinsic.ToExtrinsicMetadataV14(conversion); + + conversion.CreateRuntime(); + res.Lookup = new PortableRegistry(); + res.Lookup.Create(conversion.PortableTypes.ToArray()); + + return res; + } } } diff --git a/Substrate.NET.Metadata/V13/MetadataV13.cs b/Substrate.NET.Metadata/V13/MetadataV13.cs index a28cf64..31dee20 100644 --- a/Substrate.NET.Metadata/V13/MetadataV13.cs +++ b/Substrate.NET.Metadata/V13/MetadataV13.cs @@ -5,10 +5,12 @@ using System.Linq; using System.Text; using System.Threading.Tasks; +using Substrate.NET.Metadata.Conversion; +using Substrate.NET.Metadata.V14; namespace Substrate.NET.Metadata.V13 { - public class MetadataV13 : BaseMetadata + public class MetadataV13 : BaseMetadata, IMetadataToV14 { public MetadataV13() : base() { @@ -19,6 +21,17 @@ public MetadataV13(string hex) : base(hex) } public override MetadataVersion Version => MetadataVersion.V13; + + public MetadataV14 ToMetadataV14() + { + var res = new MetadataV14(); + + res.MetaDataInfo = MetaDataInfo; + res.RuntimeMetadataData = RuntimeMetadataData.ToRuntimeMetadataV14(); + + return res; + } + public override string TypeName() => nameof(MetadataV13); } } diff --git a/Substrate.NET.Metadata/V13/ModuleMetadataV13.cs b/Substrate.NET.Metadata/V13/ModuleMetadataV13.cs index 17e6d22..76e56e3 100644 --- a/Substrate.NET.Metadata/V13/ModuleMetadataV13.cs +++ b/Substrate.NET.Metadata/V13/ModuleMetadataV13.cs @@ -5,6 +5,8 @@ using Substrate.NET.Metadata.Compare; using Substrate.NetApi.Model.Types.Base; using Substrate.NetApi.Model.Types.Primitive; +using Substrate.NET.Metadata.Conversion.Internal; +using Substrate.NET.Metadata.V14; namespace Substrate.NET.Metadata.V13 { @@ -74,5 +76,77 @@ public MetadataDifferentialModulesV13 ToDifferentialModules(CompareStatus status Enumerable.Empty<(string, (CompareStatus, StorageEntryMetadataV13))>(), }; } + + internal ModuleMetadataV14 ToModuleMetadataV14(ConversionBuilder conversionBuilder, int index) + { + //if (Index.Value != index) throw new InvalidOperationException($"Incoherent module index. Expected: {Index.Value} but got: {index} for module: {Name.Value}"); + + var result = new ModuleMetadataV14(); + result.Index = new U8((byte)index); + result.Name = Name; + result.Index = new U8((byte)index); + + conversionBuilder.CurrentPallet = Name.Value; + + // We do not do Calls conversion + result.Calls = new BaseOpt(null!); + + if (Events.OptionFlag) + { + result.Events = ToPalletEventV14(conversionBuilder); + + var variantField = new Field( + name: new BaseOpt(), + fieldTy: result.Events.Value.ElemType, + fieldTypeName: new BaseOpt(new Str($"{Name.Value}::Event(new Str[0])); + + var eventVariant = new Variant( + name: Name, + variantFields: new BaseVec([variantField]), + index: new U8((byte)index), + docs: new BaseVec(new Str[0])); + + conversionBuilder.AddPalletEventBlockchainRuntimeEvent(eventVariant); + } + else + { + result.Events = new BaseOpt(null!); + } + + result.Errors = ToPalletErrorV14(conversionBuilder); + + result.Constants = new BaseVec(Constants.Value.Select(x => x.ToPalletConstantMetadataV14(conversionBuilder)).ToArray()); + + + if (Storage.OptionFlag) + { + result.Storage = new BaseOpt(this.Storage.Value.ToStorageMetadataV14(conversionBuilder)); + } + else + { + result.Storage = new BaseOpt(null!); + } + + return result; + } + + private BaseOpt ToPalletErrorV14(ConversionBuilder conversionBuilder) + { + var errorsVariants = Errors.Value.Select((x, i) => x.ToVariant(conversionBuilder, i)).ToArray(); + var palletError = new PalletErrorMetadataV14(); + palletError.ElemType = TType.From(conversionBuilder.AddErrorRuntimeLookup(Name.Value, errorsVariants).Value); + return new BaseOpt(palletError); + } + + private BaseOpt ToPalletEventV14(ConversionBuilder conversionBuilder) + { + var eventsVariants = Events.Value.Value.Select((x, i) => x.ToVariant(conversionBuilder, i)).ToArray(); + + var palletEvent = new PalletEventMetadataV14(); + palletEvent.ElemType = TType.From(conversionBuilder.AddEventRuntimeLookup(Name.Value, eventsVariants).Value); + + return new BaseOpt(palletEvent); + } } } \ No newline at end of file diff --git a/Substrate.NET.Metadata/V13/RuntimeMetadataV13.cs b/Substrate.NET.Metadata/V13/RuntimeMetadataV13.cs index 4cdcc0f..3af5036 100644 --- a/Substrate.NET.Metadata/V13/RuntimeMetadataV13.cs +++ b/Substrate.NET.Metadata/V13/RuntimeMetadataV13.cs @@ -1,5 +1,8 @@ -using Substrate.NET.Metadata.V11; +using Substrate.NET.Metadata.Base.Portable; +using Substrate.NET.Metadata.Conversion.Internal; +using Substrate.NET.Metadata.V11; using Substrate.NET.Metadata.V12; +using Substrate.NET.Metadata.V14; using Substrate.NetApi.Model.Types.Base; using System; using System.Collections.Generic; @@ -34,5 +37,27 @@ public override byte[] Encode() result.AddRange(Extrinsic.Encode()); return result.ToArray(); } + + internal RuntimeMetadataV14 ToRuntimeMetadataV14() + { + var conversion = new ConversionBuilder(new List()); + + conversion.CreateUnknownNode(); + conversion.ClearEventBlockchainRuntimeEvent(); + + var res = new RuntimeMetadataV14(); + + res.Modules = new BaseVec( + Modules.Value.Select((x, i) => x.ToModuleMetadataV14(conversion, i)) + .ToArray()); + + res.Extrinsic = Extrinsic.ToExtrinsicMetadataV14(conversion); + + conversion.CreateRuntime(); + res.Lookup = new PortableRegistry(); + res.Lookup.Create(conversion.PortableTypes.ToArray()); + + return res; + } } } diff --git a/Substrate.NET.Metadata/V13/StorageEntryMetadataV13.cs b/Substrate.NET.Metadata/V13/StorageEntryMetadataV13.cs index 0261b01..9c54687 100644 --- a/Substrate.NET.Metadata/V13/StorageEntryMetadataV13.cs +++ b/Substrate.NET.Metadata/V13/StorageEntryMetadataV13.cs @@ -1,6 +1,9 @@ using Substrate.NET.Metadata; using Substrate.NET.Metadata.Base; +using Substrate.NET.Metadata.Conversion.Internal; +using Substrate.NET.Metadata.Conversion; using Substrate.NET.Metadata.V11; +using Substrate.NET.Metadata.V14; using Substrate.NetApi.Model.Types.Base; using Substrate.NetApi.Model.Types.Primitive; @@ -41,10 +44,49 @@ public override void Decode(byte[] byteArray, ref int p) TypeSize = p - start; } - public Str Name { get; private set; } - public BaseEnum StorageModifier { get; private set; } - public BaseEnumExt StorageType { get; private set; } - public ByteGetter StorageDefault { get; private set; } - public BaseVec Documentation { get; private set; } + public Str Name { get; private set; } = default!; + public BaseEnum StorageModifier { get; private set; } = default!; + public BaseEnumExt StorageType { get; private set; } = default!; + public ByteGetter StorageDefault { get; private set; } = default!; + public BaseVec Documentation { get; private set; } = default!; + + internal StorageEntryMetadataV14 ToStorageEntryMetadataV14(ConversionBuilder conversionBuilder) + { + var mapStorageType = new BaseEnumExt(); + + if (StorageType.Value == Metadata.StorageType.Type.Plain) + { + var val = StorageType.Value2 as Str; + var index = conversionBuilder.BuildPortableTypes(val!.Value); + + mapStorageType.Create(Metadata.StorageType.Type.Plain, TType.From(index.Value)); + } + else if (StorageType.Value == Metadata.StorageType.Type.Map) + { + var map = (StorageEntryTypeMapV11)StorageType.Value2; + mapStorageType.Create(Metadata.StorageType.Type.Map, map.ToStorageEntryTypeMapV14(conversionBuilder)); + } + else if (StorageType.Value == Metadata.StorageType.Type.DoubleMap) + { + var map = (StorageEntryTypeDoubleMapV11)StorageType.Value2; + mapStorageType.Create(Metadata.StorageType.Type.Map, map.ToStorageEntryTypeMapV14(conversionBuilder)); + + } + else + { + // NMap exists but should never happened + throw new MetadataConversionException($"Error while converting StorageEntryMetadataV11. Received storage type {StorageType.Value} while should never happened"); + } + + var storageEntry = new StorageEntryMetadataV14( + name: Name, + storageModifier: StorageModifier, + storageType: mapStorageType, + storageDefault: StorageDefault, + documentation: Documentation + ); + + return storageEntry; + } } } \ No newline at end of file diff --git a/Substrate.NET.Metadata/V13/StorageMetadataV13.cs b/Substrate.NET.Metadata/V13/StorageMetadataV13.cs index 91d6349..5c1cd5e 100644 --- a/Substrate.NET.Metadata/V13/StorageMetadataV13.cs +++ b/Substrate.NET.Metadata/V13/StorageMetadataV13.cs @@ -1,4 +1,6 @@ -using Substrate.NET.Metadata.V11; +using Substrate.NET.Metadata.Conversion.Internal; +using Substrate.NET.Metadata.V11; +using Substrate.NET.Metadata.V14; using Substrate.NetApi.Model.Types.Base; using Substrate.NetApi.Model.Types.Primitive; @@ -27,7 +29,17 @@ public override void Decode(byte[] byteArray, ref int p) TypeSize = p - start; } - public Str Prefix { get; private set; } - public BaseVec Entries { get; private set; } + public Str Prefix { get; private set; } = default!; + public BaseVec Entries { get; private set; } = default!; + + internal PalletStorageMetadataV14 ToStorageMetadataV14(ConversionBuilder conversionBuilder) + { + var storage = new PalletStorageMetadataV14( + prefix: Prefix.Value, + entries: Entries.Value.Select(x => x.ToStorageEntryMetadataV14(conversionBuilder)) + ); + + return storage; + } } } \ No newline at end of file diff --git a/Substrate.NET.Metadata/V9/MetadataV9.cs b/Substrate.NET.Metadata/V9/MetadataV9.cs index 301e602..6e4f5c7 100644 --- a/Substrate.NET.Metadata/V9/MetadataV9.cs +++ b/Substrate.NET.Metadata/V9/MetadataV9.cs @@ -1,8 +1,10 @@ using Substrate.NET.Metadata.Base; +using Substrate.NET.Metadata.Conversion; +using Substrate.NET.Metadata.V14; namespace Substrate.NET.Metadata.V9 { - public class MetadataV9 : BaseMetadata + public class MetadataV9 : BaseMetadata, IMetadataToV14 { public MetadataV9() : base() { @@ -14,6 +16,16 @@ public MetadataV9(string hex) : base(hex) public override MetadataVersion Version => MetadataVersion.V9; + public MetadataV14 ToMetadataV14() + { + var res = new MetadataV14(); + + res.MetaDataInfo = MetaDataInfo; + res.RuntimeMetadataData = RuntimeMetadataData.ToRuntimeMetadataV14(); + + return res; + } + public override string TypeName() => nameof(MetadataV9); } } diff --git a/Substrate.NET.Metadata/V9/ModuleMetadataV9.cs b/Substrate.NET.Metadata/V9/ModuleMetadataV9.cs index f9fdcda..4f03277 100644 --- a/Substrate.NET.Metadata/V9/ModuleMetadataV9.cs +++ b/Substrate.NET.Metadata/V9/ModuleMetadataV9.cs @@ -3,12 +3,14 @@ using Substrate.NET.Metadata.Base.Portable; using Substrate.NET.Metadata.Compare; using Substrate.NET.Metadata.Conversion; +using Substrate.NET.Metadata.Conversion.Internal; +using Substrate.NET.Metadata.V14; using Substrate.NetApi.Model.Types.Base; using Substrate.NetApi.Model.Types.Primitive; namespace Substrate.NET.Metadata.V9 { - public class ModuleMetadataV9 : BaseType, IMetadataName, IMetadataConversion + public class ModuleMetadataV9 : BaseType, IMetadataName { public Str Name { get; private set; } public BaseOpt Storage { get; private set; } @@ -70,25 +72,74 @@ public MetadataDifferentialModulesV9 ToDifferentialModules(CompareStatus status) }; } - public void AddToDictionnary(PortableRegistry lookup, string palletName) + internal ModuleMetadataV14 ToModuleMetadataV14(ConversionBuilder conversionBuilder, int index) { - var newId = new U32(lookup.Value.Any() ? lookup.Value.Max(x => x.Id.Value) + 1 : 0); - var path = new Base.Portable.Path(); - path.Create(new List() { new Str($"pallet_{palletName.ToLower()}"), new Str($"Pallet"), new Str($"Call") }.ToArray()); + var result = new ModuleMetadataV14(); + result.Index = new U8((byte)index); + result.Name = Name; + result.Index = new U8((byte)index); - BaseVec Docs = new BaseVec(new List() { new Str("Contains one variant") }.ToArray()); - var typeDef = new BaseEnumExt, TypeDefCompact, TypeDefBitSequence, BaseVoid>(); + conversionBuilder.CurrentPallet = Name.Value; - BaseVec typeParam = new BaseVec(new List().ToArray()); - var typeDefVariant = new TypeDefVariant(); + // We do not do Calls conversion + result.Calls = new BaseOpt(null!); - //typeDefVariant.Create(); - //typeDef.Create(TypeDefEnum.Variant, ); + if (Events.OptionFlag) + { + result.Events = ToPalletEventV14(conversionBuilder); + + var variantField = new Field( + name: new BaseOpt(), + fieldTy: result.Events.Value.ElemType, + fieldTypeName: new BaseOpt(new Str($"{Name.Value}::Event(new Str[0])); + + var eventVariant = new Variant( + name: Name, + variantFields: new BaseVec([variantField]), + index: new U8((byte)index), + docs: new BaseVec(new Str[0])); + + conversionBuilder.AddPalletEventBlockchainRuntimeEvent(eventVariant); + } + else + { + result.Events = new BaseOpt(null!); + } + + result.Errors = ToPalletErrorV14(conversionBuilder); + + result.Constants = new BaseVec(Constants.Value.Select(x => x.ToPalletConstantMetadataV14(conversionBuilder)).ToArray()); + + + if (Storage.OptionFlag) + { + result.Storage = new BaseOpt(this.Storage.Value.ToStorageMetadataV14(conversionBuilder)); + } + else + { + result.Storage = new BaseOpt(null!); + } + + return result; + } + + private BaseOpt ToPalletErrorV14(ConversionBuilder conversionBuilder) + { + var errorsVariants = Errors.Value.Select((x, i) => x.ToVariant(conversionBuilder, i)).ToArray(); + var palletError = new PalletErrorMetadataV14(); + palletError.ElemType = TType.From(conversionBuilder.AddErrorRuntimeLookup(Name.Value, errorsVariants).Value); + return new BaseOpt(palletError); + } + + private BaseOpt ToPalletEventV14(ConversionBuilder conversionBuilder) + { + var eventsVariants = Events.Value.Value.Select((x, i) => x.ToVariant(conversionBuilder, i)).ToArray(); - var typePortableForm = new TypePortableForm(path, new BaseVec(), null, Docs); + var palletEvent = new PalletEventMetadataV14(); + palletEvent.ElemType = TType.From(conversionBuilder.AddEventRuntimeLookup(Name.Value, eventsVariants).Value); - var portableType = new PortableType(newId, typePortableForm); - lookup.Value.ToList().Add(portableType); + return new BaseOpt(palletEvent); } } } diff --git a/Substrate.NET.Metadata/V9/PalletCallMetadataV9.cs b/Substrate.NET.Metadata/V9/PalletCallMetadataV9.cs index c92673e..4d4de47 100644 --- a/Substrate.NET.Metadata/V9/PalletCallMetadataV9.cs +++ b/Substrate.NET.Metadata/V9/PalletCallMetadataV9.cs @@ -7,7 +7,7 @@ namespace Substrate.NET.Metadata.V9 { - public class PalletCallMetadataV9 : BaseType, IMetadataName, IMetadataConversion + public class PalletCallMetadataV9 : BaseType, IMetadataName { public override byte[] Encode() { @@ -34,50 +34,8 @@ public override void Decode(byte[] byteArray, ref int p) TypeSize = p - start; } - public Str Name { get; set; } - public BaseVec Args { get; set; } - public BaseVec Docs { get; set; } - - public void AddToDictionnary(PortableRegistry lookup, string palletName) - { - var variant = new Variant( - name: Name, - index: new U8(0), // todo change - docs: Docs, - variantFields: new BaseVec( - new List() { - new Field( - name: new BaseOpt(Name), - fieldTy: new TType(), - fieldTypeName: new BaseOpt(), - docs: new BaseVec() - ) - }.ToArray() - ) - ); - - - //var newId = new U32(lookup.Value.Any() ? lookup.Value.Max(x => x.Id.Value) + 1 : 0); - //var path = new Base.Portable.Path(); - //path.Create(new List() { new Str($"pallet_{palletName.ToLower()}"), new Str($"Pallet"), new Str($"Call") }.ToArray()); - - //var typePortableForm = new TypePortableForm(path, new BaseVec(), null, Docs); - - //var portableType = new PortableType(newId, typePortableForm); - //lookup.Value.ToList().Add(portableType); - } - } - - public class PalletCallMetadataV9Comparer : IEqualityComparer - { - public bool Equals(PalletCallMetadataV9? x, PalletCallMetadataV9? y) - { - return x?.Name == y?.Name; - } - - public int GetHashCode([DisallowNull] PalletCallMetadataV9 obj) - { - return obj.Name.GetHashCode(); - } + public Str Name { get; set; } = default!; + public BaseVec Args { get; set; } = default!; + public BaseVec Docs { get; set; } = default!; } } diff --git a/Substrate.NET.Metadata/V9/PalletErrorMetadataV9.cs b/Substrate.NET.Metadata/V9/PalletErrorMetadataV9.cs index 959df54..d3f9f64 100644 --- a/Substrate.NET.Metadata/V9/PalletErrorMetadataV9.cs +++ b/Substrate.NET.Metadata/V9/PalletErrorMetadataV9.cs @@ -36,7 +36,7 @@ public override void Decode(byte[] byteArray, ref int p) TypeSize = p - num; } - public Variant ToVariant(ConversionBuilder conversionBuilder, int index) + internal Variant ToVariant(ConversionBuilder conversionBuilder, int index) { var res = new Variant(); diff --git a/Substrate.NET.Metadata/V9/PalletEventMetadataV9.cs b/Substrate.NET.Metadata/V9/PalletEventMetadataV9.cs index 1ce0aa8..5d478ff 100644 --- a/Substrate.NET.Metadata/V9/PalletEventMetadataV9.cs +++ b/Substrate.NET.Metadata/V9/PalletEventMetadataV9.cs @@ -36,7 +36,7 @@ public override void Decode(byte[] byteArray, ref int p) public BaseVec Args { get; set; } public BaseVec Docs { get; set; } - public Variant ToVariant(ConversionBuilder conversionBuilder, int index) + internal Variant ToVariant(ConversionBuilder conversionBuilder, int index) { var res = new Variant(); diff --git a/Substrate.NET.Metadata/V9/RuntimeMetadataV9.cs b/Substrate.NET.Metadata/V9/RuntimeMetadataV9.cs index b2088c8..f9b98f4 100644 --- a/Substrate.NET.Metadata/V9/RuntimeMetadataV9.cs +++ b/Substrate.NET.Metadata/V9/RuntimeMetadataV9.cs @@ -1,14 +1,16 @@ using Substrate.NET.Metadata.Base.Portable; using Substrate.NET.Metadata.Conversion; +using Substrate.NET.Metadata.Conversion.Internal; +using Substrate.NET.Metadata.V14; using Substrate.NetApi.Model.Extrinsics; using Substrate.NetApi.Model.Types.Base; using Substrate.NetApi.Model.Types.Primitive; namespace Substrate.NET.Metadata.V9 { - public class RuntimeMetadataV9 : BaseType, IMetadataConversion + public class RuntimeMetadataV9 : BaseType { - public BaseVec Modules { get; private set; } + public BaseVec Modules { get; private set; } = default!; public override void Decode(byte[] byteArray, ref int p) { @@ -27,9 +29,24 @@ public override byte[] Encode() return result.ToArray(); } - public void AddToDictionnary(PortableRegistry lookup, string palletName) + internal RuntimeMetadataV14 ToRuntimeMetadataV14() { - + var conversion = new ConversionBuilder(new List()); + + conversion.CreateUnknownNode(); + conversion.ClearEventBlockchainRuntimeEvent(); + + var res = new RuntimeMetadataV14(); + + res.Modules = new BaseVec( + Modules.Value.Select((x, i) => x.ToModuleMetadataV14(conversion, i)) + .ToArray()); + + conversion.CreateRuntime(); + res.Lookup = new PortableRegistry(); + res.Lookup.Create(conversion.PortableTypes.ToArray()); + + return res; } } } diff --git a/Substrate.NET.Metadata/V9/StorageEntryMetadataV9.cs b/Substrate.NET.Metadata/V9/StorageEntryMetadataV9.cs index e51346e..3798478 100644 --- a/Substrate.NET.Metadata/V9/StorageEntryMetadataV9.cs +++ b/Substrate.NET.Metadata/V9/StorageEntryMetadataV9.cs @@ -1,5 +1,9 @@ using Substrate.NET.Metadata; using Substrate.NET.Metadata.Base; +using Substrate.NET.Metadata.Conversion.Internal; +using Substrate.NET.Metadata.Conversion; +using Substrate.NET.Metadata.V11; +using Substrate.NET.Metadata.V14; using Substrate.NetApi.Model.Types.Base; using Substrate.NetApi.Model.Types.Primitive; @@ -11,9 +15,9 @@ public override byte[] Encode() { var result = new List(); result.AddRange(Name.Encode()); - result.AddRange(Modifier.Encode()); + result.AddRange(StorageModifier.Encode()); result.AddRange(StorageType.Encode()); - result.AddRange(Default.Encode()); + result.AddRange(StorageDefault.Encode()); result.AddRange(Documentation.Encode()); return result.ToArray(); } @@ -25,14 +29,14 @@ public override void Decode(byte[] byteArray, ref int p) Name = new Str(); Name.Decode(byteArray, ref p); - Modifier = new BaseEnum(); - Modifier.Decode(byteArray, ref p); + StorageModifier = new BaseEnum(); + StorageModifier.Decode(byteArray, ref p); StorageType = new BaseEnumExt(); StorageType.Decode(byteArray, ref p); - Default = new ByteGetter(); - Default.Decode(byteArray, ref p); + StorageDefault = new ByteGetter(); + StorageDefault.Decode(byteArray, ref p); Documentation = new BaseVec(); Documentation.Decode(byteArray, ref p); @@ -40,10 +44,49 @@ public override void Decode(byte[] byteArray, ref int p) TypeSize = p - start; } - public Str Name { get; private set; } - public BaseEnum Modifier { get; private set; } - public BaseEnumExt StorageType { get; private set; } - public ByteGetter Default { get; private set; } - public BaseVec Documentation { get; private set; } + public Str Name { get; private set; } = default!; + public BaseEnum StorageModifier { get; private set; } = default!; + public BaseEnumExt StorageType { get; private set; } = default!; + public ByteGetter StorageDefault { get; private set; } = default!; + public BaseVec Documentation { get; private set; } = default!; + + internal StorageEntryMetadataV14 ToStorageEntryMetadataV14(ConversionBuilder conversionBuilder) + { + var mapStorageType = new BaseEnumExt(); + + if (StorageType.Value == Metadata.StorageType.TypeV9.Plain) + { + var val = StorageType.Value2 as Str; + var index = conversionBuilder.BuildPortableTypes(val!.Value); + + mapStorageType.Create(Metadata.StorageType.Type.Plain, TType.From(index.Value)); + } + else if (StorageType.Value == Metadata.StorageType.TypeV9.Map) + { + var map = (StorageEntryTypeMapV11)StorageType.Value2; + mapStorageType.Create(Metadata.StorageType.Type.Map, map.ToStorageEntryTypeMapV14(conversionBuilder)); + } + else if (StorageType.Value == Metadata.StorageType.TypeV9.DoubleMap) + { + var map = (StorageEntryTypeDoubleMapV11)StorageType.Value2; + mapStorageType.Create(Metadata.StorageType.Type.Map, map.ToStorageEntryTypeMapV14(conversionBuilder)); + + } + else + { + // NMap exists but should never happened + throw new MetadataConversionException($"Error while converting StorageEntryMetadataV11. Received storage type {StorageType.Value} while should never happened"); + } + + var storageEntry = new StorageEntryMetadataV14( + name: Name, + storageModifier: StorageModifier, + storageType: mapStorageType, + storageDefault: StorageDefault, + documentation: Documentation + ); + + return storageEntry; + } } } diff --git a/Substrate.NET.Metadata/V9/StorageMetadataV9.cs b/Substrate.NET.Metadata/V9/StorageMetadataV9.cs index 02358a2..d12d483 100644 --- a/Substrate.NET.Metadata/V9/StorageMetadataV9.cs +++ b/Substrate.NET.Metadata/V9/StorageMetadataV9.cs @@ -1,4 +1,6 @@ -using Substrate.NetApi.Model.Types.Base; +using Substrate.NET.Metadata.Conversion.Internal; +using Substrate.NET.Metadata.V14; +using Substrate.NetApi.Model.Types.Base; using Substrate.NetApi.Model.Types.Primitive; using System; using System.Collections.Generic; @@ -31,7 +33,17 @@ public override void Decode(byte[] byteArray, ref int p) TypeSize = p - start; } - public Str Prefix { get; private set; } - public BaseVec Entries { get; private set; } + public Str Prefix { get; private set; } = default!; + public BaseVec Entries { get; private set; } = default!; + + internal PalletStorageMetadataV14 ToStorageMetadataV14(ConversionBuilder conversionBuilder) + { + var storage = new PalletStorageMetadataV14( + prefix: Prefix.Value, + entries: Entries.Value.Select(x => x.ToStorageEntryMetadataV14(conversionBuilder)) + ); + + return storage; + } } } From d10c86ba46f36d540771ea2d02e6a1717483c56c Mon Sep 17 00:00:00 2001 From: Apolixit Date: Wed, 4 Sep 2024 06:50:33 +0200 Subject: [PATCH 07/15] The 27 versions < v14 conversion ok --- .../ConvertV14Test.cs | 6 ++--- .../Conversion/ConversionBuilderTest.cs | 1 + .../Conversion/Internal/ConversionBuilder.cs | 27 ++++++++++++++----- .../Conversion/Internal/SearchV14.cs | 1 + .../V10/RuntimeMetadataV10.cs | 2 +- .../V11/RuntimeMetadataV11.cs | 2 +- .../V12/RuntimeMetadataV12.cs | 2 +- .../V13/RuntimeMetadataV13.cs | 2 +- .../V9/RuntimeMetadataV9.cs | 2 +- 9 files changed, 30 insertions(+), 15 deletions(-) diff --git a/Substrate.NET.Metadata.Node.Tests/ConvertV14Test.cs b/Substrate.NET.Metadata.Node.Tests/ConvertV14Test.cs index 85a3f90..e5fcba3 100644 --- a/Substrate.NET.Metadata.Node.Tests/ConvertV14Test.cs +++ b/Substrate.NET.Metadata.Node.Tests/ConvertV14Test.cs @@ -14,7 +14,7 @@ public class Tests { private SubstrateClient _substrateClient; - [OneTimeSetUp] + [SetUp] public async Task SetupAsync() { _substrateClient = new SubstrateClient(new Uri("wss://polkadot-rpc.dwellir.com"), ChargeTransactionPayment.Default()); @@ -23,7 +23,7 @@ public async Task SetupAsync() Assert.That(_substrateClient.IsConnected, Is.True); } - [OneTimeTearDown] + [TearDown] public void Teardown() { _substrateClient.Dispose(); @@ -34,7 +34,7 @@ public void Teardown() [TestCase("0x49a695416fcf55487adf9b9f5808619cee6618bd285a0119a78db60c5a7f3e13", 11)] [TestCase("0xdab56553594fd489adc085d2f83f3dcb65f5de5b1878325d5547fcf72b6dd6b3", 11)] [TestCase("0xaff11447ba47e853bcadb73920c0780013e581a0286831eadce0e48bf1db9942", 11)] - [TestCase("0x4eba9b7a60fb063fbd8b9ceb8028c1c7b5a3cc2ea7b0ad703885ce580dee327c\r\n", 11)] + [TestCase("0x4eba9b7a60fb063fbd8b9ceb8028c1c7b5a3cc2ea7b0ad703885ce580dee327c", 11)] [TestCase("0x773e8d8c1fdcbc94d79bb2cdcaf2f7fca5ff869d34c50171fe50ac1640f3e05c", 11)] [TestCase("0x209d24943d81e5910bfb7a57c8a5c3037c4a434af7c486a536d4f96a2160c9f5", 11)] [TestCase("0x3eef3df8dd7eedfe6baaed544dcef9c36ee7a142035bd6ae3fd7fd2969ad5933", 11)] diff --git a/Substrate.NET.Metadata.Tests/Conversion/ConversionBuilderTest.cs b/Substrate.NET.Metadata.Tests/Conversion/ConversionBuilderTest.cs index ce2d3b6..b6a8f74 100644 --- a/Substrate.NET.Metadata.Tests/Conversion/ConversionBuilderTest.cs +++ b/Substrate.NET.Metadata.Tests/Conversion/ConversionBuilderTest.cs @@ -41,6 +41,7 @@ public void GetNode_FromPrimitive_ShouldSucceed(string primitiveType) } [Test] + [TestCase("SignedSubmissionOf", 504, 61)] [TestCase("BalanceOf", 6, 1)] [TestCase("ProxyState", 6, 1)] [TestCase("SubmissionIndicesOf", 502, 5)] diff --git a/Substrate.NET.Metadata/Conversion/Internal/ConversionBuilder.cs b/Substrate.NET.Metadata/Conversion/Internal/ConversionBuilder.cs index b8b3a64..1c8f423 100644 --- a/Substrate.NET.Metadata/Conversion/Internal/ConversionBuilder.cs +++ b/Substrate.NET.Metadata/Conversion/Internal/ConversionBuilder.cs @@ -62,6 +62,8 @@ public class ConversionBuilder public List ElementsState { get; init; } public string CurrentPallet { get; set; } = string.Empty; public uint? UnknowIndex { get; set; } = null; + public uint? PolkadotRuntimeEventIndex { get; private set; } = null; + public const int START_INDEX = 1_000; public ConversionBuilder(List portableTypes) @@ -96,6 +98,9 @@ public ConversionBuilder(List portableTypes) "ProxyState", // V11 => Democracy => v1 => Storage => Proxy "NewBidder", // V11 => Slots => v1 => Events => WonDeploy "Bidder", // V11 => Slots => v1 => Storage => ReservedAmounts + "Vec>", // V11 => Parachains => v14 => Storage => DownwardMessageQueue + "AccountValidity", // V11 => Purchase => v16 => Event => ValidityUpdated // https://docs.rs/crate/polkadot-runtime-common/latest/source/src/purchase.rs + "AccountStatus>", // V11 => Purchase => v16 => Storage => Accounts // https://docs.rs/crate/polkadot-runtime-common/latest/source/src/purchase.rs }; public U32 GetNewIndex() @@ -613,17 +618,19 @@ public PalletEventMetadataV14 ConvertToEventV14(string eventName, string eventTy return res; } - public uint GetStorageEventIndex() => SearchV14.HardIndexBinding("Vec>").Value; - - public void ClearEventBlockchainRuntimeEvent() + public void CreateEventBlockchainRuntimeEvent() { - var portableType = LoopFromV14(SearchV14.PolkadotRuntimeEventIndex); - var tdv = portableType.Ty.TypeDef.Value2 as TypeDefVariant; - tdv.TypeParam = new BaseVec(new Variant[0]); + //var portableType = SearchV14.FindTypeByIndex(SearchV14.PolkadotRuntimeEventIndex); + var node = new TypeDefVariant(); + node.TypeParam = new BaseVec(new Variant[0]); + + var eventsPortableType = CreatePortableTypeFromNode(node, ["polkadot_runtime", "Event"], null); + + PolkadotRuntimeEventIndex = eventsPortableType.Id.Value; } public void AddPalletEventBlockchainRuntimeEvent(Variant variant) { - var portableType = LoopFromV14(SearchV14.PolkadotRuntimeEventIndex); + var portableType = LoopFromV14((int)PolkadotRuntimeEventIndex!); var tdv = portableType.Ty.TypeDef.Value2 as TypeDefVariant; @@ -700,6 +707,12 @@ public PortableType CreatePortableTypeFromNode(BaseType node, List? path portableType.Ty.TypeDef.Create(TypeDefEnum.Array, tda); } + if (node is TypeDefVariant tdv) + { + portableType.Ty.TypeDef = new TypeDefExt(); + portableType.Ty.TypeDef.Create(TypeDefEnum.Variant, tdv); + } + PortableTypes.Add(portableType); return portableType; diff --git a/Substrate.NET.Metadata/Conversion/Internal/SearchV14.cs b/Substrate.NET.Metadata/Conversion/Internal/SearchV14.cs index c3540f0..7495676 100644 --- a/Substrate.NET.Metadata/Conversion/Internal/SearchV14.cs +++ b/Substrate.NET.Metadata/Conversion/Internal/SearchV14.cs @@ -88,6 +88,7 @@ public static string HardBinding(string type, string palletContext) "Approvals" => "[u8;4]", "TransactionPriority" => "U64", "SubmissionIndicesOf" => "Vec<([U128;3],U32)>", + "SignedSubmissionOf" => "SignedSubmission", _ => type }; } diff --git a/Substrate.NET.Metadata/V10/RuntimeMetadataV10.cs b/Substrate.NET.Metadata/V10/RuntimeMetadataV10.cs index 099f155..96605d2 100644 --- a/Substrate.NET.Metadata/V10/RuntimeMetadataV10.cs +++ b/Substrate.NET.Metadata/V10/RuntimeMetadataV10.cs @@ -41,7 +41,7 @@ internal RuntimeMetadataV14 ToRuntimeMetadataV14() var conversion = new ConversionBuilder(new List()); conversion.CreateUnknownNode(); - conversion.ClearEventBlockchainRuntimeEvent(); + conversion.CreateEventBlockchainRuntimeEvent(); var res = new RuntimeMetadataV14(); diff --git a/Substrate.NET.Metadata/V11/RuntimeMetadataV11.cs b/Substrate.NET.Metadata/V11/RuntimeMetadataV11.cs index a80f2a5..2a97231 100644 --- a/Substrate.NET.Metadata/V11/RuntimeMetadataV11.cs +++ b/Substrate.NET.Metadata/V11/RuntimeMetadataV11.cs @@ -36,7 +36,7 @@ internal RuntimeMetadataV14 ToRuntimeMetadataV14() var conversion = new ConversionBuilder(new List()); conversion.CreateUnknownNode(); - conversion.ClearEventBlockchainRuntimeEvent(); + conversion.CreateEventBlockchainRuntimeEvent(); var res = new RuntimeMetadataV14(); diff --git a/Substrate.NET.Metadata/V12/RuntimeMetadataV12.cs b/Substrate.NET.Metadata/V12/RuntimeMetadataV12.cs index e6c5106..5490fad 100644 --- a/Substrate.NET.Metadata/V12/RuntimeMetadataV12.cs +++ b/Substrate.NET.Metadata/V12/RuntimeMetadataV12.cs @@ -42,7 +42,7 @@ internal RuntimeMetadataV14 ToRuntimeMetadataV14() var conversion = new ConversionBuilder(new List()); conversion.CreateUnknownNode(); - conversion.ClearEventBlockchainRuntimeEvent(); + conversion.CreateEventBlockchainRuntimeEvent(); var res = new RuntimeMetadataV14(); diff --git a/Substrate.NET.Metadata/V13/RuntimeMetadataV13.cs b/Substrate.NET.Metadata/V13/RuntimeMetadataV13.cs index 3af5036..3df3307 100644 --- a/Substrate.NET.Metadata/V13/RuntimeMetadataV13.cs +++ b/Substrate.NET.Metadata/V13/RuntimeMetadataV13.cs @@ -43,7 +43,7 @@ internal RuntimeMetadataV14 ToRuntimeMetadataV14() var conversion = new ConversionBuilder(new List()); conversion.CreateUnknownNode(); - conversion.ClearEventBlockchainRuntimeEvent(); + conversion.CreateEventBlockchainRuntimeEvent(); var res = new RuntimeMetadataV14(); diff --git a/Substrate.NET.Metadata/V9/RuntimeMetadataV9.cs b/Substrate.NET.Metadata/V9/RuntimeMetadataV9.cs index f9b98f4..9ff0ae7 100644 --- a/Substrate.NET.Metadata/V9/RuntimeMetadataV9.cs +++ b/Substrate.NET.Metadata/V9/RuntimeMetadataV9.cs @@ -34,7 +34,7 @@ internal RuntimeMetadataV14 ToRuntimeMetadataV14() var conversion = new ConversionBuilder(new List()); conversion.CreateUnknownNode(); - conversion.ClearEventBlockchainRuntimeEvent(); + conversion.CreateEventBlockchainRuntimeEvent(); var res = new RuntimeMetadataV14(); From 180acb7294ebe633bbf6cbb8adb4dcf896142da6 Mon Sep 17 00:00:00 2001 From: Apolixit Date: Wed, 4 Sep 2024 21:58:44 +0200 Subject: [PATCH 08/15] Some refacto --- ...{ConvertV14Test.cs => ConvertToV14Test.cs} | 2 +- .../Conversion/ConversionBuilderTest.cs | 106 ++--- .../Conversion/ConversionBuilderTreeTest.cs | 28 -- .../Conversion/ConversionV14HelperTests.cs | 25 - Substrate.NET.Metadata.sln | 12 - .../Conversion/ConversionV14Helper.cs | 125 ----- .../Conversion/Internal/ConversionBuilder.cs | 432 +++--------------- .../Internal/ConversionBuilderTree.cs | 171 ++----- .../Conversion/Internal/ConversionUtils.cs | 26 ++ .../Conversion/Internal/MetadataTree.cs | 194 -------- .../Internal/MetadataVersionCompact.cs | 65 --- .../Conversion/Internal/NodeBuilderType.cs | 20 +- .../Conversion/Internal/SearchV14.cs | 19 +- .../V9/PalletConstantMetadataV9.cs | 2 +- 14 files changed, 155 insertions(+), 1072 deletions(-) rename Substrate.NET.Metadata.Node.Tests/{ConvertV14Test.cs => ConvertToV14Test.cs} (99%) delete mode 100644 Substrate.NET.Metadata.Tests/Conversion/ConversionBuilderTreeTest.cs delete mode 100644 Substrate.NET.Metadata.Tests/Conversion/ConversionV14HelperTests.cs delete mode 100644 Substrate.NET.Metadata/Conversion/ConversionV14Helper.cs delete mode 100644 Substrate.NET.Metadata/Conversion/Internal/MetadataTree.cs delete mode 100644 Substrate.NET.Metadata/Conversion/Internal/MetadataVersionCompact.cs diff --git a/Substrate.NET.Metadata.Node.Tests/ConvertV14Test.cs b/Substrate.NET.Metadata.Node.Tests/ConvertToV14Test.cs similarity index 99% rename from Substrate.NET.Metadata.Node.Tests/ConvertV14Test.cs rename to Substrate.NET.Metadata.Node.Tests/ConvertToV14Test.cs index e5fcba3..0c60b9d 100644 --- a/Substrate.NET.Metadata.Node.Tests/ConvertV14Test.cs +++ b/Substrate.NET.Metadata.Node.Tests/ConvertToV14Test.cs @@ -10,7 +10,7 @@ namespace Substrate.NET.Metadata.Node.Tests { - public class Tests + public class ConvertToV14Test { private SubstrateClient _substrateClient; diff --git a/Substrate.NET.Metadata.Tests/Conversion/ConversionBuilderTest.cs b/Substrate.NET.Metadata.Tests/Conversion/ConversionBuilderTest.cs index b6a8f74..ccfcb28 100644 --- a/Substrate.NET.Metadata.Tests/Conversion/ConversionBuilderTest.cs +++ b/Substrate.NET.Metadata.Tests/Conversion/ConversionBuilderTest.cs @@ -41,9 +41,9 @@ public void GetNode_FromPrimitive_ShouldSucceed(string primitiveType) } [Test] + [TestCase("TaskAddress", 29, 2)] [TestCase("SignedSubmissionOf", 504, 61)] [TestCase("BalanceOf", 6, 1)] - [TestCase("ProxyState", 6, 1)] [TestCase("SubmissionIndicesOf", 502, 5)] [TestCase("[BalanceOf; 4]", 1000, 1)] [TestCase("Approvals", 14, 2)] @@ -71,7 +71,6 @@ public void GetNode_FromPrimitive_ShouldSucceed(string primitiveType) [TestCase("AccountInfo", 3, 4)] [TestCase("schnorrkel::Randomness", 1, 2)] [TestCase("[u8;32]", 1, 2)] - [TestCase("TaskAddress", 29, 2)] [TestCase("Option>", 30, 3)] [TestCase("Vec<(T::BlockNumber, EventIndex)>", 105, 3)] [TestCase("Vec<(EraIndex, SessionIndex)>", 105, 3)] @@ -90,26 +89,6 @@ public void GetIndex_FromComposite_ShouldSucceed(string rustType, int indexExpec Assert.That(res.Value, Is.EqualTo(indexExpected), "Index are not equals"); Assert.That(_builder.PortableTypes.Count, Is.EqualTo(lengthExpected), "Portable elements are not equals"); - - //var elementState = _builder.ElementsState.Single(x => x.ClassName.ToLower() == rustType.ToLower()); - //Assert.That(elementState.IsSuccessfullyMapped, Is.True); - } - - [Test] - [TestCase("Vec>")] - public void BuildNode_ShouldSucceed(string rustType) - { - Assert.Fail(); - } - - [Test] - [TestCase("u32")] - public void GetIndex_FromPrimitive_ShouldSucceed(string primitiveType) - { - var res = _builder.BuildPortableTypes(primitiveType); - - Assert.That(res.Value, Is.EqualTo(0)); - Assert.That(_builder.PortableTypes.Count, Is.EqualTo(1)); } [Test] @@ -126,79 +105,54 @@ public void Build_FromSequence_ShouldSucceed(string sequenceClass) Assert.That(res.TypeDef == TypeDefEnum.Sequence); } - [Test] - [TestCase("Option>")] - public void BuildTypeDictionnary_FromComplexePrimitive_ShouldSucceed(string primitiveType) + [TestCase("AccountId, Balance", new string[] { "AccountId", "Balance" })] + [TestCase("Toto, Titi", new string[] { "Toto", "Titi" })] + [TestCase("Titi, Toto", new string[] { "Titi", "Toto" })] + [TestCase("Titi, B>, Titi, L>", new string[] { "Titi, B>", "Titi, L>" })] + public void ExtractParameters_ShouldSucceed(string input, string[] expected) { + var res = ConversionBuilderTree.ExtractParameters(input); + Assert.That(res, Is.Not.Null); + Assert.That(res.Count, Is.EqualTo(expected.Length)); + + for (int i = 0; i < res.Count; i++) + { + Assert.That(res[i], Is.EqualTo(expected[i])); + } } [Test] - [TestCase("Option>")] - public void BuildTypeDictionnary_FromTuple_ShouldSucceed(string primitiveType) + [TestCase("[u8; 4]", "u8", 4)] + public void ExtractArray_ShouldSucceed(string input, string typeExpected, int lengthExpected) { + var res = ConversionBuilderTree.ExtractArray(new NodeBuilderTypeUndefined(input, "")); + Assert.That(res, Is.Not.Null); + Assert.That(res.Children[0].Adapted, Is.EqualTo(typeExpected)); + Assert.That(res.Length, Is.EqualTo(lengthExpected)); } [Test] - [TestCase("Vec<(::AccountId, BalanceOf)>", new string[] { "AccountId", "BalanceOf" })] - [TestCase("[Hasher = BlakeTwo128Concat / Key = AccountId / Value = AccountInfo]", new string[] { "AccountId", "AccountInfo", "Index", "AccountData" })] - [TestCase("Vec<(AccountId, Balance)>", new string[] { "AccountId", "Balance" })] - [TestCase("DigestOf", new string[] { "DigestOf" })] - [TestCase("Vec>", new string[] { "EventRecord", "Event", "Hash" })] - [TestCase("TaskAddress", new string[] { "TaskAddress", "BlockNumber" })] - [TestCase("MaybeRandomness", new string[] { "MaybeRandomness" })] - [TestCase("Vec>>", new string[] { "WeightToFeeCoefficient", "BalanceOf" })] - [TestCase("Option>", new string[] { "Option", "u8" })] - [TestCase("Vec", new string[] { "AccountId" })] - [TestCase("[Hasher = BlakeTwo128Concat / Key = AccountId / Value = StakingLedger>]", new string[] { "AccountId", "StakingLedger", "BalanceOf" })] - [TestCase("[Hasher = Twox64Concat / Key = (AccountId, slashing::SpanIndex) / Value = slashing::SpanRecord>]", new string[] { "AccountId", "slashing::SpanIndex", "slashing::SpanRecord", "BalanceOf" })] - [TestCase("Option>", new string[] { "Option", "u8" })] - [TestCase("ElectionStatus", new string[] { "ElectionStatus", "BlockNumber" })] - [TestCase("ElectionStatus", new string[] { "ElectionStatus", "BlockNumber" })] - [TestCase("Vec>", new string[] { "ParaId", "CollatorId" })] - [TestCase("Vec<(ParaId, Option<(CollatorId, Retriable)>)>", new string[] { "ParaId", "Option", "CollatorId", "Retriable" })] - [TestCase("Vec>", new string[] { "DeferredOffenceOf" })] - [TestCase("[Hasher = Identity / Key = Hash / Value = (BlockNumber, Vec)]", new string[] { "Hash", "BlockNumber", "AccountId" })] - [TestCase("OpenTip, BlockNumber, Hash>", new string[] { "OpenTip", "AccountId", "BalanceOf", "BlockNumber", "Hash" })] - [TestCase("[Key1 = BlockNumber / Key1Hasher = Twox64Concat / Key2 = Hash / Key2Hasher = Identity / Value = BlockAttestations]", new string[] { "BlockNumber", "Hash", "BlockAttestations" })] - [TestCase("[Hasher = Identity / Key = EthereumAddress / Value = (BalanceOf, BalanceOf, BlockNumber)]", new string[] { "EthereumAddress", "BalanceOf", "BlockNumber" })] - [TestCase("[Hasher = Identity / Key = EthereumAddress / Value = (BalanceOf, BalanceOf, BlockNumber)]", new string[] { "EthereumAddress", "BalanceOf", "BlockNumber" })] - [TestCase("[Hasher = Identity / Key = [u8; 32] / Value = (Vec, AccountId, BalanceOf)]", new string[] { "u8", "AccountId", "BalanceOf" })] - //[TestCase("Hey, (Titi, B>, Titi, L>)", new string[] { "Hey", "Titi", "A", "XX", "YY", "B", "TT", "L" })] - public void HarmonizeFullType_WithMap_ShouldSucceed(string original, string[] mapped) + public void ExtractPrimitive_ShouldSucceed() { - // Todo Romain : gérer les tableaux du genre [u8; 32] - var res = ConversionBuilder.HarmonizeFullType(original).Distinct().ToList(); - - Assert.That(res.Count, Is.EqualTo(mapped.Length)); + var res = ConversionBuilderTree.ExtractPrimitive(new NodeBuilderTypeUndefined("u32", "")); - for (int i = 0; i < res.Count; i++) - { - Assert.That(res[i], Is.EqualTo(mapped[i])); - } + Assert.That(res, Is.Not.Null); + Assert.That(res.Primitive, Is.EqualTo(TypeDefPrimitive.U32)); } - - - [Test] - [TestCase("AccountId, Balance", new string[] { "AccountId", "Balance" })] - [TestCase("Toto, Titi", new string[] { "Toto", "Titi" })] - [TestCase("Titi, Toto", new string[] { "Titi", "Toto" })] - [TestCase("Titi, B>, Titi, L>", new string[] { "Titi, B>", "Titi, L>" })] - public void ExtractParameters_ShouldSucceed(string input, string[] expected) + [TestCase("Vec", typeof(NodeBuilderTypeSequence))] + [TestCase("Option", typeof(NodeBuilderTypeOption))] + [TestCase("AccountData", typeof(NodeBuilderTypeComposite))] + public void ExtractGeneric_ShouldSucceed(string input, Type typeDefExpected) { - var res = ConversionBuilder.ExtractParameters(input); + var res = ConversionBuilderTree.ExtractGeneric(new NodeBuilderTypeUndefined(input, "")); Assert.That(res, Is.Not.Null); - Assert.That(res.Count, Is.EqualTo(expected.Length)); - - for (int i = 0; i < res.Count; i++) - { - Assert.That(res[i], Is.EqualTo(expected[i])); - } + Assert.That(res.GetType(), Is.EqualTo(typeDefExpected)); } } } diff --git a/Substrate.NET.Metadata.Tests/Conversion/ConversionBuilderTreeTest.cs b/Substrate.NET.Metadata.Tests/Conversion/ConversionBuilderTreeTest.cs deleted file mode 100644 index 2fb13d1..0000000 --- a/Substrate.NET.Metadata.Tests/Conversion/ConversionBuilderTreeTest.cs +++ /dev/null @@ -1,28 +0,0 @@ -using Substrate.NET.Metadata.Base.Portable; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Substrate.NET.Metadata.Tests.Conversion -{ - internal class ConversionBuilderTreeTest - { - private static PortableType[] InitPortableRegistry() - { - var portableRegistry = new PortableRegistry(); - portableRegistry.Create(new List().ToArray()); - var pt = portableRegistry.Value; - Assert.That(pt.Length, Is.EqualTo(0)); - return pt; - } - - [Test] - public void Build_FromPrimitive_ShouldSucceed() - { - PortableType[] pt = InitPortableRegistry(); - - } - } -} diff --git a/Substrate.NET.Metadata.Tests/Conversion/ConversionV14HelperTests.cs b/Substrate.NET.Metadata.Tests/Conversion/ConversionV14HelperTests.cs deleted file mode 100644 index 6b6545a..0000000 --- a/Substrate.NET.Metadata.Tests/Conversion/ConversionV14HelperTests.cs +++ /dev/null @@ -1,25 +0,0 @@ -using Substrate.NET.Metadata.Conversion; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Substrate.NET.Metadata.Tests.Conversion -{ - internal class ConversionV14HelperTests - { - [Test] - public void ConvertNameToLookup_WithValidName_ShouldReturnLookup() - { - // Arrange - var name = "Vec"; - - // Act - //ConversionV14Helper.TryConvertNameToGeneric(name); - - // Assert - //Assert.IsNotNull(result); - } - } -} diff --git a/Substrate.NET.Metadata.sln b/Substrate.NET.Metadata.sln index 5c83d51..ef72fde 100644 --- a/Substrate.NET.Metadata.sln +++ b/Substrate.NET.Metadata.sln @@ -7,10 +7,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Substrate.NET.Metadata", "S EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Substrate.NET.Metadata.Tests", "Substrate.NET.Metadata.Tests\Substrate.NET.Metadata.Tests.csproj", "{4698095E-1C43-40BA-925B-B9333599E0E4}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Substrate.NET.Metadata.Conversion", "Substrate.NET.Metadata.Conversion\Substrate.NET.Metadata.Conversion.csproj", "{85881994-3850-4C6C-B8B3-BC9EAE1AC200}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Substrate.NET.Metadata.Conversion.Tests", "Substrate.NET.Metadata.Conversion.Tests\Substrate.NET.Metadata.Conversion.Tests.csproj", "{ACBF4C38-6691-4443-8F4C-BFF3AF0EE62C}" -EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Substrate.NET.Metadata.Node.Tests", "Substrate.NET.Metadata.Node.Tests\Substrate.NET.Metadata.Node.Tests.csproj", "{07CC3754-3F83-494B-A2D2-49D1F93FA30B}" EndProject Global @@ -27,14 +23,6 @@ Global {4698095E-1C43-40BA-925B-B9333599E0E4}.Debug|Any CPU.Build.0 = Debug|Any CPU {4698095E-1C43-40BA-925B-B9333599E0E4}.Release|Any CPU.ActiveCfg = Release|Any CPU {4698095E-1C43-40BA-925B-B9333599E0E4}.Release|Any CPU.Build.0 = Release|Any CPU - {85881994-3850-4C6C-B8B3-BC9EAE1AC200}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {85881994-3850-4C6C-B8B3-BC9EAE1AC200}.Debug|Any CPU.Build.0 = Debug|Any CPU - {85881994-3850-4C6C-B8B3-BC9EAE1AC200}.Release|Any CPU.ActiveCfg = Release|Any CPU - {85881994-3850-4C6C-B8B3-BC9EAE1AC200}.Release|Any CPU.Build.0 = Release|Any CPU - {ACBF4C38-6691-4443-8F4C-BFF3AF0EE62C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {ACBF4C38-6691-4443-8F4C-BFF3AF0EE62C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {ACBF4C38-6691-4443-8F4C-BFF3AF0EE62C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {ACBF4C38-6691-4443-8F4C-BFF3AF0EE62C}.Release|Any CPU.Build.0 = Release|Any CPU {07CC3754-3F83-494B-A2D2-49D1F93FA30B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {07CC3754-3F83-494B-A2D2-49D1F93FA30B}.Debug|Any CPU.Build.0 = Debug|Any CPU {07CC3754-3F83-494B-A2D2-49D1F93FA30B}.Release|Any CPU.ActiveCfg = Release|Any CPU diff --git a/Substrate.NET.Metadata/Conversion/ConversionV14Helper.cs b/Substrate.NET.Metadata/Conversion/ConversionV14Helper.cs deleted file mode 100644 index e3ac0ab..0000000 --- a/Substrate.NET.Metadata/Conversion/ConversionV14Helper.cs +++ /dev/null @@ -1,125 +0,0 @@ -using Ardalis.GuardClauses; -using Substrate.NET.Metadata.Base; -using Substrate.NET.Metadata.Base.Portable; -using Substrate.NET.Metadata.V14; -using Substrate.NetApi.Model.Types.Base; -using Substrate.NetApi.Model.Types.Primitive; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Text.RegularExpressions; -using System.Threading.Tasks; - -namespace Substrate.NET.Metadata.Conversion -{ - public static class ConversionV14Helper - { - #region V14 metadata - public const string metadataV14_9110 = "0x6d6574610e1109000c1c73705f636f72651863727970746f2c4163636f756e7449643332000004000401205b75383b2033325d0000040000032000000008000800000503000c08306672616d655f73797374656d2c4163636f756e74496e666f0814496e64657801102c4163636f756e74446174610114001401146e6f6e6365100114496e646578000124636f6e73756d657273100120526566436f756e7400012470726f766964657273100120526566436f756e7400012c73756666696369656e7473100120526566436f756e740001106461746114012c4163636f756e7444617461000010000005050014083c70616c6c65745f62616c616e6365732c4163636f756e7444617461041c42616c616e63650118001001106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500012c6d6973635f66726f7a656e18011c42616c616e63650001286665655f66726f7a656e18011c42616c616e636500001800000507001c0c346672616d655f737570706f72741c77656967687473405065724469737061746368436c6173730404540120000c01186e6f726d616c2001045400012c6f7065726174696f6e616c200104540001246d616e6461746f727920010454000020000005060024083c7072696d69746976655f74797065731048323536000004000401205b75383b2033325d00002800000208002c102873705f72756e74696d651c67656e6572696318646967657374184469676573740410486173680124000401106c6f67733001545665633c4469676573744974656d3c486173683e3e000030000002340034102873705f72756e74696d651c67656e6572696318646967657374284469676573744974656d0410486173680124011c3c4368616e67657354726965526f6f740400240110486173680002002850726552756e74696d650800380144436f6e73656e737573456e67696e654964000028011c5665633c75383e00060024436f6e73656e7375730800380144436f6e73656e737573456e67696e654964000028011c5665633c75383e000400105365616c0800380144436f6e73656e737573456e67696e654964000028011c5665633c75383e000500444368616e676573547269655369676e616c04003c01444368616e676573547269655369676e616c000700144f74686572040028011c5665633c75383e0000006452756e74696d65456e7669726f6e6d656e745570646174656400080000380000030400000008003c102873705f72756e74696d651c67656e6572696318646967657374444368616e676573547269655369676e616c000104404e6577436f6e66696775726174696f6e04004001804f7074696f6e3c4368616e67657354726965436f6e66696775726174696f6e3e000000004004184f7074696f6e04045401440108104e6f6e6500000010536f6d650400440000010000440c1c73705f636f7265306368616e6765735f74726965604368616e67657354726965436f6e66696775726174696f6e000008013c6469676573745f696e74657276616c10010c7533320001346469676573745f6c6576656c7310010c7533320000480000024c004c08306672616d655f73797374656d2c4576656e745265636f7264080445015004540124000c011470686173659d01011450686173650001146576656e7450010445000118746f70696373a10101185665633c543e0000500840706f6c6b61646f745f72756e74696d65144576656e740001801853797374656d04005401706672616d655f73797374656d3a3a4576656e743c52756e74696d653e000000245363686564756c6572040070018070616c6c65745f7363686564756c65723a3a4576656e743c52756e74696d653e0001001c496e6469636573040084017870616c6c65745f696e64696365733a3a4576656e743c52756e74696d653e0004002042616c616e636573040088017c70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d653e0005001c5374616b696e67040090017870616c6c65745f7374616b696e673a3a4576656e743c52756e74696d653e000700204f6666656e636573040094015870616c6c65745f6f6666656e6365733a3a4576656e740008001c53657373696f6e04009c015470616c6c65745f73657373696f6e3a3a4576656e740009001c4772616e6470610400a0015470616c6c65745f6772616e6470613a3a4576656e74000b0020496d4f6e6c696e650400b4018070616c6c65745f696d5f6f6e6c696e653a3a4576656e743c52756e74696d653e000c002444656d6f63726163790400d8018070616c6c65745f64656d6f63726163793a3a4576656e743c52756e74696d653e000e001c436f756e63696c0400e401fc70616c6c65745f636f6c6c6563746976653a3a4576656e743c52756e74696d652c2070616c6c65745f636f6c6c6563746976653a3a496e7374616e6365313e000f0048546563686e6963616c436f6d6d69747465650400ec01fc70616c6c65745f636f6c6c6563746976653a3a4576656e743c52756e74696d652c2070616c6c65745f636f6c6c6563746976653a3a496e7374616e6365323e0010004050687261676d656e456c656374696f6e0400f001a470616c6c65745f656c656374696f6e735f70687261676d656e3a3a4576656e743c52756e74696d653e0011004c546563686e6963616c4d656d626572736869700400fc01fc70616c6c65745f6d656d626572736869703a3a4576656e743c52756e74696d652c2070616c6c65745f6d656d626572736869703a3a496e7374616e6365313e00120020547265617375727904000101017c70616c6c65745f74726561737572793a3a4576656e743c52756e74696d653e00130018436c61696d73040005010158636c61696d733a3a4576656e743c52756e74696d653e0018001c56657374696e6704001101017870616c6c65745f76657374696e673a3a4576656e743c52756e74696d653e0019001c5574696c69747904001501015470616c6c65745f7574696c6974793a3a4576656e74001a00204964656e7469747904001901017c70616c6c65745f6964656e746974793a3a4576656e743c52756e74696d653e001c001450726f787904001d01017070616c6c65745f70726f78793a3a4576656e743c52756e74696d653e001d00204d756c746973696704002901017c70616c6c65745f6d756c74697369673a3a4576656e743c52756e74696d653e001e0020426f756e7469657304003101017c70616c6c65745f626f756e746965733a3a4576656e743c52756e74696d653e002200105469707304003501016c70616c6c65745f746970733a3a4576656e743c52756e74696d653e00230068456c656374696f6e50726f76696465724d756c746950686173650400390101d070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173653a3a4576656e743c52756e74696d653e0024003450617261496e636c7573696f6e04004501019070617261636861696e735f696e636c7573696f6e3a3a4576656e743c52756e74696d653e00350014506172617304007501015c70617261636861696e735f70617261733a3a4576656e740038000c556d7004007901015470617261636861696e735f756d703a3a4576656e74003b001048726d7004008501017c70617261636861696e735f68726d703a3a4576656e743c52756e74696d653e003c002452656769737472617204008d01017c70617261735f7265676973747261723a3a4576656e743c52756e74696d653e00460014536c6f7473040091010154736c6f74733a3a4576656e743c52756e74696d653e0047002041756374696f6e7304009501016061756374696f6e733a3a4576656e743c52756e74696d653e0048002443726f77646c6f616e04009901016463726f77646c6f616e3a3a4576656e743c52756e74696d653e00490000540c306672616d655f73797374656d1870616c6c6574144576656e740404540001184045787472696e7369635375636365737304005801304469737061746368496e666f000004b4416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e205c5b696e666f5c5d3c45787472696e7369634661696c6564080064013444697370617463684572726f7200005801304469737061746368496e666f00010490416e2065787472696e736963206661696c65642e205c5b6572726f722c20696e666f5c5d2c436f64655570646174656400020450603a636f6465602077617320757064617465642e284e65774163636f756e740400000130543a3a4163636f756e7449640003047841206e6577205c5b6163636f756e745c5d2077617320637265617465642e344b696c6c65644163636f756e740400000130543a3a4163636f756e74496400040468416e205c5b6163636f756e745c5d20776173207265617065642e2052656d61726b65640800000130543a3a4163636f756e744964000024011c543a3a48617368000504d04f6e206f6e2d636861696e2072656d61726b2068617070656e65642e205c5b6f726967696e2c2072656d61726b5f686173685c5d04704576656e7420666f72207468652053797374656d2070616c6c65742e580c346672616d655f737570706f72741c77656967687473304469737061746368496e666f00000c0118776569676874200118576569676874000114636c6173735c01344469737061746368436c617373000120706179735f6665656001105061797300005c0c346672616d655f737570706f72741c77656967687473344469737061746368436c61737300010c184e6f726d616c0000002c4f7065726174696f6e616c000100244d616e6461746f727900020000600c346672616d655f737570706f72741c7765696768747310506179730001080c596573000000084e6f0001000064082873705f72756e74696d653444697370617463684572726f72000120144f746865720000003043616e6e6f744c6f6f6b7570000100244261644f726967696e000200184d6f64756c65080114696e64657808010875380001146572726f72080108753800030044436f6e73756d657252656d61696e696e670004002c4e6f50726f76696465727300050014546f6b656e0400680128546f6b656e4572726f720006002841726974686d6574696304006c013c41726974686d657469634572726f720007000068082873705f72756e74696d6528546f6b656e4572726f7200011c1c4e6f46756e647300000020576f756c644469650001003042656c6f774d696e696d756d0002003043616e6e6f7443726561746500030030556e6b6e6f776e41737365740004001846726f7a656e0005002c556e737570706f72746564000600006c082873705f72756e74696d653c41726974686d657469634572726f7200010c24556e646572666c6f77000000204f766572666c6f77000100384469766973696f6e42795a65726f00020000700c4070616c6c65745f7363686564756c65721870616c6c6574144576656e7404045400010c245363686564756c65640800100138543a3a426c6f636b4e756d626572000010010c753332000004905363686564756c656420736f6d65207461736b2e205c5b7768656e2c20696e6465785c5d2043616e63656c65640800100138543a3a426c6f636b4e756d626572000010010c7533320001048c43616e63656c656420736f6d65207461736b2e205c5b7768656e2c20696e6465785c5d28446973706174636865640c0074016c5461736b416464726573733c543a3a426c6f636b4e756d6265723e000078013c4f7074696f6e3c5665633c75383e3e00007c01384469737061746368526573756c74000204a84469737061746368656420736f6d65207461736b2e205c5b7461736b2c2069642c20726573756c745c5d04304576656e747320747970652e74000004081010007804184f7074696f6e04045401280108104e6f6e6500000010536f6d6504002800000100007c0418526573756c740804540180044501640108084f6b040080000000000c4572720400640000010000800000040000840c3870616c6c65745f696e64696365731870616c6c6574144576656e7404045400010c34496e64657841737369676e65640800000130543a3a4163636f756e744964000010013c543a3a4163636f756e74496e646578000004b041206163636f756e7420696e646578207761732061737369676e65642e205c5b696e6465782c2077686f5c5d28496e6465784672656564040010013c543a3a4163636f756e74496e646578000104e441206163636f756e7420696e64657820686173206265656e2066726565642075702028756e61737369676e6564292e205c5b696e6465785c5d2c496e64657846726f7a656e080010013c543a3a4163636f756e74496e6465780000000130543a3a4163636f756e744964000204250141206163636f756e7420696e64657820686173206265656e2066726f7a656e20746f206974732063757272656e74206163636f756e742049442e205c5b696e6465782c2077686f5c5d04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a090909880c3c70616c6c65745f62616c616e6365731870616c6c6574144576656e740804540004490001201c456e646f7765640800000130543a3a4163636f756e7449640000180128543a3a42616c616e63650000042101416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e205c5b6163636f756e742c20667265655f62616c616e63655c5d20447573744c6f73740800000130543a3a4163636f756e7449640000180128543a3a42616c616e63650001083d01416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742ccc726573756c74696e6720696e20616e206f75747269676874206c6f73732e205c5b6163636f756e742c2062616c616e63655c5d205472616e736665720c00000130543a3a4163636f756e7449640000000130543a3a4163636f756e7449640000180128543a3a42616c616e63650002049c5472616e73666572207375636365656465642e205c5b66726f6d2c20746f2c2076616c75655c5d2842616c616e63655365740c00000130543a3a4163636f756e7449640000180128543a3a42616c616e63650000180128543a3a42616c616e6365000304c8412062616c616e6365207761732073657420627920726f6f742e205c5b77686f2c20667265652c2072657365727665645c5d1c4465706f7369740800000130543a3a4163636f756e7449640000180128543a3a42616c616e63650004041d01536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e205c5b77686f2c206465706f7369745c5d2052657365727665640800000130543a3a4163636f756e7449640000180128543a3a42616c616e63650005041d01536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e205c5b77686f2c2076616c75655c5d28556e72657365727665640800000130543a3a4163636f756e7449640000180128543a3a42616c616e63650006042501536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e205c5b77686f2c2076616c75655c5d485265736572766552657061747269617465641000000130543a3a4163636f756e7449640000000130543a3a4163636f756e7449640000180128543a3a42616c616e636500008c011853746174757300070c4d01536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742ed846696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652ea45c5b66726f6d2c20746f2c2062616c616e63652c2064657374696e6174696f6e5f7374617475735c5d04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a0909098c14346672616d655f737570706f72741874726169747318746f6b656e73106d6973633442616c616e636553746174757300010810467265650000002052657365727665640001000090103870616c6c65745f7374616b696e671870616c6c65741870616c6c6574144576656e740404540001301c457261506169640c00100120457261496e646578000018013042616c616e63654f663c543e000018013042616c616e63654f663c543e00000c550154686520657261207061796f757420686173206265656e207365743b207468652066697273742062616c616e6365206973207468652076616c696461746f722d7061796f75743b20746865207365636f6e64206973c07468652072656d61696e6465722066726f6d20746865206d6178696d756d20616d6f756e74206f66207265776172642ea85c5b6572615f696e6465782c2076616c696461746f725f7061796f75742c2072656d61696e6465725c5d2052657761726465640800000130543a3a4163636f756e744964000018013042616c616e63654f663c543e0001040501546865206e6f6d696e61746f7220686173206265656e207265776172646564206279207468697320616d6f756e742e205c5b73746173682c20616d6f756e745c5d1c536c61736865640800000130543a3a4163636f756e744964000018013042616c616e63654f663c543e00020821014f6e652076616c696461746f722028616e6420697473206e6f6d696e61746f72732920686173206265656e20736c61736865642062792074686520676976656e20616d6f756e742e545c5b76616c696461746f722c20616d6f756e745c5d684f6c64536c617368696e675265706f7274446973636172646564040010013053657373696f6e496e6465780003081901416e206f6c6420736c617368696e67207265706f72742066726f6d2061207072696f72206572612077617320646973636172646564206265636175736520697420636f756c648c6e6f742062652070726f6365737365642e205c5b73657373696f6e5f696e6465785c5d385374616b657273456c65637465640004048441206e657720736574206f66207374616b6572732077617320656c65637465642e18426f6e6465640800000130543a3a4163636f756e744964000018013042616c616e63654f663c543e000510d0416e206163636f756e742068617320626f6e646564207468697320616d6f756e742e205c5b73746173682c20616d6f756e745c5d004d014e4f54453a2054686973206576656e74206973206f6e6c7920656d6974746564207768656e2066756e64732061726520626f6e64656420766961206120646973706174636861626c652e204e6f7461626c792c210169742077696c6c206e6f7420626520656d697474656420666f72207374616b696e672072657761726473207768656e20746865792061726520616464656420746f207374616b652e20556e626f6e6465640800000130543a3a4163636f756e744964000018013042616c616e63654f663c543e000604d8416e206163636f756e742068617320756e626f6e646564207468697320616d6f756e742e205c5b73746173682c20616d6f756e745c5d2457697468647261776e0800000130543a3a4163636f756e744964000018013042616c616e63654f663c543e0007085901416e206163636f756e74206861732063616c6c6564206077697468647261775f756e626f6e6465646020616e642072656d6f76656420756e626f6e64696e67206368756e6b7320776f727468206042616c616e636560ac66726f6d2074686520756e6c6f636b696e672071756575652e205c5b73746173682c20616d6f756e745c5d184b69636b65640800000130543a3a4163636f756e7449640000000130543a3a4163636f756e744964000804090141206e6f6d696e61746f7220686173206265656e206b69636b65642066726f6d20612076616c696461746f722e205c5b6e6f6d696e61746f722c2073746173685c5d545374616b696e67456c656374696f6e4661696c6564000904ac54686520656c656374696f6e206661696c65642e204e6f206e65772065726120697320706c616e6e65642e1c4368696c6c65640400000130543a3a4163636f756e744964000a082101416e206163636f756e74206861732073746f707065642070617274696369706174696e672061732065697468657220612076616c696461746f72206f72206e6f6d696e61746f722e245c5b73746173685c5d345061796f7574537461727465640800100120457261496e6465780000000130543a3a4163636f756e744964000b041501546865207374616b657273272072657761726473206172652067657474696e6720706169642e205c5b6572615f696e6465782c2076616c696461746f725f73746173685c5d04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a090909940c3c70616c6c65745f6f6666656e6365731870616c6c6574144576656e740001041c4f6666656e636508009801104b696e6400002801384f706171756554696d65536c6f7400000c5101546865726520697320616e206f6666656e6365207265706f72746564206f662074686520676976656e20606b696e64602068617070656e656420617420746865206073657373696f6e5f696e6465786020616e643501286b696e642d7370656369666963292074696d6520736c6f742e2054686973206576656e74206973206e6f74206465706f736974656420666f72206475706c696361746520736c61736865732e4c5c5b6b696e642c2074696d65736c6f745c5d2e04304576656e747320747970652e980000031000000008009c0c3870616c6c65745f73657373696f6e1870616c6c6574144576656e74000104284e657753657373696f6e040010013053657373696f6e496e64657800000849014e65772073657373696f6e206861732068617070656e65642e204e6f746520746861742074686520617267756d656e7420697320746865205c5b73657373696f6e5f696e6465785c5d2c206e6f74207468659c626c6f636b206e756d626572206173207468652074797065206d6967687420737567676573742e04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a090909a00c3870616c6c65745f6772616e6470611870616c6c6574144576656e7400010c384e6577417574686f7269746965730400a40134417574686f726974794c697374000004d44e657720617574686f726974792073657420686173206265656e206170706c6965642e205c5b617574686f726974795f7365745c5d185061757365640001049843757272656e7420617574686f726974792073657420686173206265656e207061757365642e1c526573756d65640002049c43757272656e7420617574686f726974792073657420686173206265656e20726573756d65642e04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a090909a4000002a800a800000408ac2000ac0c4c73705f66696e616c6974795f6772616e6470610c617070185075626c696300000400b0013c656432353531393a3a5075626c69630000b00c1c73705f636f72651c65643235353139185075626c6963000004000401205b75383b2033325d0000b40c4070616c6c65745f696d5f6f6e6c696e651870616c6c6574144576656e7404045400010c4448656172746265617452656365697665640400b80138543a3a417574686f726974794964000004010141206e657720686561727462656174207761732072656365697665642066726f6d2060417574686f72697479496460205c5b617574686f726974795f69645c5d1c416c6c476f6f64000104d041742074686520656e64206f66207468652073657373696f6e2c206e6f206f6666656e63652077617320636f6d6d69747465642e2c536f6d654f66666c696e650400c0016c5665633c4964656e74696669636174696f6e5475706c653c543e3e000204390141742074686520656e64206f66207468652073657373696f6e2c206174206c65617374206f6e652076616c696461746f722077617320666f756e6420746f206265205c5b6f66666c696e655c5d2e04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a090909b8104070616c6c65745f696d5f6f6e6c696e651c737232353531392c6170705f73723235353139185075626c696300000400bc013c737232353531393a3a5075626c69630000bc0c1c73705f636f72651c73723235353139185075626c6963000004000401205b75383b2033325d0000c0000002c400c40000040800c800c8083870616c6c65745f7374616b696e67204578706f7375726508244163636f756e74496401001c42616c616e63650118000c0114746f74616ccc011c42616c616e636500010c6f776ecc011c42616c616e63650001186f7468657273d001ac5665633c496e646976696475616c4578706f737572653c4163636f756e7449642c2042616c616e63653e3e0000cc0000061800d0000002d400d4083870616c6c65745f7374616b696e6748496e646976696475616c4578706f7375726508244163636f756e74496401001c42616c616e636501180008010c77686f0001244163636f756e74496400011476616c7565cc011c42616c616e63650000d80c4070616c6c65745f64656d6f63726163791870616c6c6574144576656e740404540001442050726f706f736564080010012450726f70496e646578000018013042616c616e63654f663c543e0000042d0141206d6f74696f6e20686173206265656e2070726f706f7365642062792061207075626c6963206163636f756e742e205c5b70726f706f73616c5f696e6465782c206465706f7369745c5d185461626c65640c0010012450726f70496e646578000018013042616c616e63654f663c543e0000dc01445665633c543a3a4163636f756e7449643e000108450141207075626c69632070726f706f73616c20686173206265656e207461626c656420666f72207265666572656e64756d20766f74652e205c5b70726f706f73616c5f696e6465782c206465706f7369742c306465706f7369746f72735c5d3845787465726e616c5461626c656400020494416e2065787465726e616c2070726f706f73616c20686173206265656e207461626c65642e1c53746172746564080010013c5265666572656e64756d496e6465780000e00134566f74655468726573686f6c64000304c041207265666572656e64756d2068617320626567756e2e205c5b7265665f696e6465782c207468726573686f6c645c5d18506173736564040010013c5265666572656e64756d496e646578000404e4412070726f706f73616c20686173206265656e20617070726f766564206279207265666572656e64756d2e205c5b7265665f696e6465785c5d244e6f74506173736564040010013c5265666572656e64756d496e646578000504e4412070726f706f73616c20686173206265656e2072656a6563746564206279207265666572656e64756d2e205c5b7265665f696e6465785c5d2443616e63656c6c6564040010013c5265666572656e64756d496e646578000604b841207265666572656e64756d20686173206265656e2063616e63656c6c65642e205c5b7265665f696e6465785c5d204578656375746564080010013c5265666572656e64756d496e64657800007c01384469737061746368526573756c74000704c8412070726f706f73616c20686173206265656e20656e61637465642e205c5b7265665f696e6465782c20726573756c745c5d2444656c6567617465640800000130543a3a4163636f756e7449640000000130543a3a4163636f756e7449640008041d01416e206163636f756e74206861732064656c65676174656420746865697220766f746520746f20616e6f74686572206163636f756e742e205c5b77686f2c207461726765745c5d2c556e64656c6567617465640400000130543a3a4163636f756e744964000904f4416e205c5b6163636f756e745c5d206861732063616e63656c6c656420612070726576696f75732064656c65676174696f6e206f7065726174696f6e2e185665746f65640c00000130543a3a4163636f756e744964000024011c543a3a486173680000100138543a3a426c6f636b4e756d626572000a040d01416e2065787465726e616c2070726f706f73616c20686173206265656e207665746f65642e205c5b77686f2c2070726f706f73616c5f686173682c20756e74696c5c5d34507265696d6167654e6f7465640c0024011c543a3a486173680000000130543a3a4163636f756e744964000018013042616c616e63654f663c543e000b045d01412070726f706f73616c277320707265696d61676520776173206e6f7465642c20616e6420746865206465706f7369742074616b656e2e205c5b70726f706f73616c5f686173682c2077686f2c206465706f7369745c5d30507265696d616765557365640c0024011c543a3a486173680000000130543a3a4163636f756e744964000018013042616c616e63654f663c543e000c081101412070726f706f73616c20707265696d616765207761732072656d6f76656420616e6420757365642028746865206465706f736974207761732072657475726e6564292e905c5b70726f706f73616c5f686173682c2070726f76696465722c206465706f7369745c5d3c507265696d616765496e76616c6964080024011c543a3a48617368000010013c5265666572656e64756d496e646578000d080901412070726f706f73616c20636f756c64206e6f7420626520657865637574656420626563617573652069747320707265696d6167652077617320696e76616c69642e705c5b70726f706f73616c5f686173682c207265665f696e6465785c5d3c507265696d6167654d697373696e67080024011c543a3a48617368000010013c5265666572656e64756d496e646578000e080901412070726f706f73616c20636f756c64206e6f7420626520657865637574656420626563617573652069747320707265696d61676520776173206d697373696e672e705c5b70726f706f73616c5f686173682c207265665f696e6465785c5d38507265696d616765526561706564100024011c543a3a486173680000000130543a3a4163636f756e744964000018013042616c616e63654f663c543e0000000130543a3a4163636f756e744964000f08290141207265676973746572656420707265696d616765207761732072656d6f76656420616e6420746865206465706f73697420636f6c6c656374656420627920746865207265617065722eb05c5b70726f706f73616c5f686173682c2070726f76696465722c206465706f7369742c207265617065725c5d2c426c61636b6c6973746564040024011c543a3a48617368001004d4412070726f706f73616c205c5b686173685c5d20686173206265656e20626c61636b6c6973746564207065726d616e656e746c792e04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a090909dc0000020000e00c4070616c6c65745f64656d6f637261637938766f74655f7468726573686f6c6434566f74655468726573686f6c6400010c5053757065724d616a6f72697479417070726f76650000005053757065724d616a6f72697479416761696e73740001003853696d706c654d616a6f7269747900020000e40c4470616c6c65745f636f6c6c6563746976651870616c6c6574144576656e7408045400044900011c2050726f706f7365641000000130543a3a4163636f756e744964000010013450726f706f73616c496e646578000024011c543a3a48617368000010012c4d656d626572436f756e7400000c490141206d6f74696f6e2028676976656e20686173682920686173206265656e2070726f706f7365642028627920676976656e206163636f756e742920776974682061207468726573686f6c642028676976656e3c604d656d626572436f756e7460292ed45c5b6163636f756e742c2070726f706f73616c5f696e6465782c2070726f706f73616c5f686173682c207468726573686f6c645c5d14566f7465641400000130543a3a4163636f756e744964000024011c543a3a486173680000e80110626f6f6c000010012c4d656d626572436f756e74000010012c4d656d626572436f756e7400010c050141206d6f74696f6e2028676976656e20686173682920686173206265656e20766f746564206f6e20627920676976656e206163636f756e742c206c656176696e671501612074616c6c79202879657320766f74657320616e64206e6f20766f74657320676976656e20726573706563746976656c7920617320604d656d626572436f756e7460292ea85c5b6163636f756e742c2070726f706f73616c5f686173682c20766f7465642c207965732c206e6f5c5d20417070726f766564040024011c543a3a48617368000208c041206d6f74696f6e2077617320617070726f76656420627920746865207265717569726564207468726573686f6c642e445c5b70726f706f73616c5f686173685c5d2c446973617070726f766564040024011c543a3a48617368000308d041206d6f74696f6e20776173206e6f7420617070726f76656420627920746865207265717569726564207468726573686f6c642e445c5b70726f706f73616c5f686173685c5d204578656375746564080024011c543a3a4861736800007c01384469737061746368526573756c74000408210141206d6f74696f6e207761732065786563757465643b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e645c5b70726f706f73616c5f686173682c20726573756c745c5d384d656d6265724578656375746564080024011c543a3a4861736800007c01384469737061746368526573756c740005084901412073696e676c65206d656d6265722064696420736f6d6520616374696f6e3b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e645c5b70726f706f73616c5f686173682c20726573756c745c5d18436c6f7365640c0024011c543a3a48617368000010012c4d656d626572436f756e74000010012c4d656d626572436f756e740006085501412070726f706f73616c2077617320636c6f736564206265636175736520697473207468726573686f6c64207761732072656163686564206f7220616674657220697473206475726174696f6e207761732075702e685c5b70726f706f73616c5f686173682c207965732c206e6f5c5d04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a090909e80000050000ec0c4470616c6c65745f636f6c6c6563746976651870616c6c6574144576656e7408045400044900011c2050726f706f7365641000000130543a3a4163636f756e744964000010013450726f706f73616c496e646578000024011c543a3a48617368000010012c4d656d626572436f756e7400000c490141206d6f74696f6e2028676976656e20686173682920686173206265656e2070726f706f7365642028627920676976656e206163636f756e742920776974682061207468726573686f6c642028676976656e3c604d656d626572436f756e7460292ed45c5b6163636f756e742c2070726f706f73616c5f696e6465782c2070726f706f73616c5f686173682c207468726573686f6c645c5d14566f7465641400000130543a3a4163636f756e744964000024011c543a3a486173680000e80110626f6f6c000010012c4d656d626572436f756e74000010012c4d656d626572436f756e7400010c050141206d6f74696f6e2028676976656e20686173682920686173206265656e20766f746564206f6e20627920676976656e206163636f756e742c206c656176696e671501612074616c6c79202879657320766f74657320616e64206e6f20766f74657320676976656e20726573706563746976656c7920617320604d656d626572436f756e7460292ea85c5b6163636f756e742c2070726f706f73616c5f686173682c20766f7465642c207965732c206e6f5c5d20417070726f766564040024011c543a3a48617368000208c041206d6f74696f6e2077617320617070726f76656420627920746865207265717569726564207468726573686f6c642e445c5b70726f706f73616c5f686173685c5d2c446973617070726f766564040024011c543a3a48617368000308d041206d6f74696f6e20776173206e6f7420617070726f76656420627920746865207265717569726564207468726573686f6c642e445c5b70726f706f73616c5f686173685c5d204578656375746564080024011c543a3a4861736800007c01384469737061746368526573756c74000408210141206d6f74696f6e207761732065786563757465643b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e645c5b70726f706f73616c5f686173682c20726573756c745c5d384d656d6265724578656375746564080024011c543a3a4861736800007c01384469737061746368526573756c740005084901412073696e676c65206d656d6265722064696420736f6d6520616374696f6e3b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e645c5b70726f706f73616c5f686173682c20726573756c745c5d18436c6f7365640c0024011c543a3a48617368000010012c4d656d626572436f756e74000010012c4d656d626572436f756e740006085501412070726f706f73616c2077617320636c6f736564206265636175736520697473207468726573686f6c64207761732072656163686564206f7220616674657220697473206475726174696f6e207761732075702e685c5b70726f706f73616c5f686173682c207965732c206e6f5c5d04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a090909f00c6470616c6c65745f656c656374696f6e735f70687261676d656e1870616c6c6574144576656e7404045400011c1c4e65775465726d0400f401ec5665633c283c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e7449642c2042616c616e63654f663c543e293e000014550141206e6577207465726d2077697468205c5b6e65775f6d656d626572735c5d2e205468697320696e64696361746573207468617420656e6f7567682063616e64696461746573206578697374656420746f2072756e550174686520656c656374696f6e2c206e6f74207468617420656e6f756768206861766520686173206265656e20656c65637465642e2054686520696e6e65722076616c7565206d757374206265206578616d696e65644501666f72207468697320707572706f73652e204120604e65775465726d285c5b5c5d296020696e64696361746573207468617420736f6d652063616e6469646174657320676f7420746865697220626f6e645501736c617368656420616e64206e6f6e65207765726520656c65637465642c207768696c73742060456d7074795465726d60206d65616e732074686174206e6f2063616e64696461746573206578697374656420746f2c626567696e20776974682e24456d7074795465726d00010831014e6f20286f72206e6f7420656e6f756768292063616e64696461746573206578697374656420666f72207468697320726f756e642e205468697320697320646966666572656e742066726f6dc8604e65775465726d285c5b5c5d29602e2053656520746865206465736372697074696f6e206f6620604e65775465726d602e34456c656374696f6e4572726f72000204e4496e7465726e616c206572726f722068617070656e6564207768696c6520747279696e6720746f20706572666f726d20656c656374696f6e2e304d656d6265724b69636b656404000001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e744964000308510141205c5b6d656d6265725c5d20686173206265656e2072656d6f7665642e20546869732073686f756c6420616c7761797320626520666f6c6c6f7765642062792065697468657220604e65775465726d60206f723060456d7074795465726d602e2452656e6f756e63656404000001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e74496400040498536f6d656f6e65206861732072656e6f756e6365642074686569722063616e6469646163792e4043616e646964617465536c617368656408000001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e744964000018013042616c616e63654f663c543e000510590141205c5b63616e6469646174655c5d2077617320736c6173686564206279205c5b616d6f756e745c5d2064756520746f206661696c696e6720746f206f627461696e20612073656174206173206d656d626572206f722872756e6e65722d75702e00e44e6f74652074686174206f6c64206d656d6265727320616e642072756e6e6572732d75702061726520616c736f2063616e646964617465732e4453656174486f6c646572536c617368656408000001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e744964000018013042616c616e63654f663c543e000604550141205c5b7365617420686f6c6465725c5d2077617320736c6173686564206279205c5b616d6f756e745c5d206279206265696e6720666f72636566756c6c792072656d6f7665642066726f6d20746865207365742e04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a090909f4000002f800f800000408001800fc0c4470616c6c65745f6d656d626572736869701870616c6c6574144576656e740804540004490001182c4d656d6265724164646564000004e054686520676976656e206d656d626572207761732061646465643b2073656520746865207472616e73616374696f6e20666f722077686f2e344d656d62657252656d6f766564000104e854686520676976656e206d656d626572207761732072656d6f7665643b2073656520746865207472616e73616374696f6e20666f722077686f2e384d656d6265727353776170706564000204d854776f206d656d62657273207765726520737761707065643b2073656520746865207472616e73616374696f6e20666f722077686f2e304d656d6265727352657365740003041501546865206d656d62657273686970207761732072657365743b2073656520746865207472616e73616374696f6e20666f722077686f20746865206e6577207365742069732e284b65794368616e676564000404844f6e65206f6620746865206d656d6265727327206b657973206368616e6765642e1444756d6d790005046c5068616e746f6d206d656d6265722c206e6576657220757365642e04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a09090901010c3c70616c6c65745f74726561737572791870616c6c6574144576656e7408045400044900011c2050726f706f736564040010013450726f706f73616c496e646578000004804e65772070726f706f73616c2e205c5b70726f706f73616c5f696e6465785c5d205370656e64696e67040018013c42616c616e63654f663c542c20493e00010439015765206861766520656e6465642061207370656e6420706572696f6420616e642077696c6c206e6f7720616c6c6f636174652066756e64732e205c5b6275646765745f72656d61696e696e675c5d1c417761726465640c0010013450726f706f73616c496e646578000018013c42616c616e63654f663c542c20493e0000000130543a3a4163636f756e7449640002041901536f6d652066756e64732068617665206265656e20616c6c6f63617465642e205c5b70726f706f73616c5f696e6465782c2061776172642c2062656e65666963696172795c5d2052656a6563746564080010013450726f706f73616c496e646578000018013c42616c616e63654f663c542c20493e0003042101412070726f706f73616c207761732072656a65637465643b2066756e6473207765726520736c61736865642e205c5b70726f706f73616c5f696e6465782c20736c61736865645c5d144275726e74040018013c42616c616e63654f663c542c20493e000404ac536f6d65206f66206f75722066756e64732068617665206265656e206275726e742e205c5b6275726e5c5d20526f6c6c6f766572040018013c42616c616e63654f663c542c20493e0005082d015370656e64696e67206861732066696e69736865643b20746869732069732074686520616d6f756e74207468617420726f6c6c73206f76657220756e74696c206e657874207370656e642e505c5b6275646765745f72656d61696e696e675c5d1c4465706f736974040018013c42616c616e63654f663c542c20493e000604ac536f6d652066756e64732068617665206265656e206465706f73697465642e205c5b6465706f7369745c5d04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a0909090501105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e18636c61696d731870616c6c6574144576656e740404540001041c436c61696d65640c00000130543a3a4163636f756e74496400000901013c457468657265756d41646472657373000018013042616c616e63654f663c543e000004f0536f6d656f6e6520636c61696d656420736f6d6520444f54732e20605b77686f2c20657468657265756d5f616464726573732c20616d6f756e745d6004a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a09090909010c5c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e18636c61696d733c457468657265756d41646472657373000004000d0101205b75383b2032305d00000d0100000314000000080011010c3870616c6c65745f76657374696e671870616c6c6574144576656e740404540001083856657374696e67557064617465640800000130543a3a4163636f756e744964000018013042616c616e63654f663c543e00000c510154686520616d6f756e742076657374656420686173206265656e20757064617465642e205468697320636f756c6420696e6469636174652061206368616e676520696e2066756e647320617661696c61626c652e25015468652062616c616e636520676976656e2069732074686520616d6f756e74207768696368206973206c65667420756e7665737465642028616e642074687573206c6f636b6564292e545c5b6163636f756e742c20756e7665737465645c5d4056657374696e67436f6d706c657465640400000130543a3a4163636f756e7449640001049c416e205c5b6163636f756e745c5d20686173206265636f6d652066756c6c79207665737465642e04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a09090915010c3870616c6c65745f7574696c6974791870616c6c6574144576656e7400010c404261746368496e746572727570746564080010010c753332000064013444697370617463684572726f7200000855014261746368206f66206469737061746368657320646964206e6f7420636f6d706c6574652066756c6c792e20496e646578206f66206669727374206661696c696e6720646973706174636820676976656e2c2061738c77656c6c20617320746865206572726f722e205c5b696e6465782c206572726f725c5d384261746368436f6d706c65746564000104c84261746368206f66206469737061746368657320636f6d706c657465642066756c6c792077697468206e6f206572726f722e344974656d436f6d706c657465640002041d01412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206e6f206572726f722e04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a09090919010c3c70616c6c65745f6964656e746974791870616c6c6574144576656e740404540001282c4964656e746974795365740400000130543a3a4163636f756e7449640000040d0141206e616d652077617320736574206f72207265736574202877686963682077696c6c2072656d6f766520616c6c206a756467656d656e7473292e205c5b77686f5c5d3c4964656e74697479436c65617265640800000130543a3a4163636f756e744964000018013042616c616e63654f663c543e000104110141206e616d652077617320636c65617265642c20616e642074686520676976656e2062616c616e63652072657475726e65642e205c5b77686f2c206465706f7369745c5d384964656e746974794b696c6c65640800000130543a3a4163636f756e744964000018013042616c616e63654f663c543e000204090141206e616d65207761732072656d6f76656420616e642074686520676976656e2062616c616e636520736c61736865642e205c5b77686f2c206465706f7369745c5d484a756467656d656e745265717565737465640800000130543a3a4163636f756e7449640000100138526567697374726172496e646578000304010141206a756467656d656e74207761732061736b65642066726f6d2061207265676973747261722e205c5b77686f2c207265676973747261725f696e6465785c5d504a756467656d656e74556e7265717565737465640800000130543a3a4163636f756e7449640000100138526567697374726172496e646578000404ec41206a756467656d656e74207265717565737420776173207265747261637465642e205c5b77686f2c207265676973747261725f696e6465785c5d384a756467656d656e74476976656e0800000130543a3a4163636f756e7449640000100138526567697374726172496e646578000504050141206a756467656d656e742077617320676976656e2062792061207265676973747261722e205c5b7461726765742c207265676973747261725f696e6465785c5d3852656769737472617241646465640400100138526567697374726172496e646578000604a84120726567697374726172207761732061646465642e205c5b7265676973747261725f696e6465785c5d405375624964656e7469747941646465640c00000130543a3a4163636f756e7449640000000130543a3a4163636f756e744964000018013042616c616e63654f663c543e000704510141207375622d6964656e746974792077617320616464656420746f20616e206964656e7469747920616e6420746865206465706f73697420706169642e205c5b7375622c206d61696e2c206465706f7369745c5d485375624964656e7469747952656d6f7665640c00000130543a3a4163636f756e7449640000000130543a3a4163636f756e744964000018013042616c616e63654f663c543e000808090141207375622d6964656e74697479207761732072656d6f7665642066726f6d20616e206964656e7469747920616e6420746865206465706f7369742066726565642e585c5b7375622c206d61696e2c206465706f7369745c5d485375624964656e746974795265766f6b65640c00000130543a3a4163636f756e7449640000000130543a3a4163636f756e744964000018013042616c616e63654f663c543e000908190141207375622d6964656e746974792077617320636c65617265642c20616e642074686520676976656e206465706f7369742072657061747269617465642066726f6d2074686525016d61696e206964656e74697479206163636f756e7420746f20746865207375622d6964656e74697479206163636f756e742e205c5b7375622c206d61696e2c206465706f7369745c5d04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a0909091d010c3070616c6c65745f70726f78791870616c6c6574144576656e740404540001103450726f7879457865637574656404007c01384469737061746368526573756c74000004e8412070726f78792077617320657865637574656420636f72726563746c792c20776974682074686520676976656e205c5b726573756c745c5d2e40416e6f6e796d6f7573437265617465641000000130543a3a4163636f756e7449640000000130543a3a4163636f756e744964000021010130543a3a50726f78795479706500002501010c75313600010ce8416e6f6e796d6f7573206163636f756e7420686173206265656e2063726561746564206279206e65772070726f7879207769746820676976656e0901646973616d626967756174696f6e20696e64657820616e642070726f787920747970652e205c5b616e6f6e796d6f75732c2077686f2c2070726f78795f747970652c58646973616d626967756174696f6e5f696e6465785c5d24416e6e6f756e6365640c00000130543a3a4163636f756e7449640000000130543a3a4163636f756e744964000024013443616c6c486173684f663c543e0002044d01416e20616e6e6f756e63656d656e742077617320706c6163656420746f206d616b6520612063616c6c20696e20746865206675747572652e205c5b7265616c2c2070726f78792c2063616c6c5f686173685c5d2850726f787941646465641000000130543a3a4163636f756e7449640000000130543a3a4163636f756e744964000021010130543a3a50726f7879547970650000100138543a3a426c6f636b4e756d626572000304f8412070726f7879207761732061646465642e205c5b64656c656761746f722c2064656c6567617465652c2070726f78795f747970652c2064656c61795c5d04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a09090921010840706f6c6b61646f745f72756e74696d652450726f78795479706500011c0c416e790000002c4e6f6e5472616e7366657200010028476f7665726e616e63650002001c5374616b696e67000300444964656e746974794a756467656d656e740005002c43616e63656c50726f78790006001c41756374696f6e000700002501000005040029010c3c70616c6c65745f6d756c74697369671870616c6c6574144576656e740404540001102c4e65774d756c74697369670c00000130543a3a4163636f756e7449640000000130543a3a4163636f756e744964000004012043616c6c48617368000004190141206e6577206d756c7469736967206f7065726174696f6e2068617320626567756e2e205c5b617070726f76696e672c206d756c74697369672c2063616c6c5f686173685c5d404d756c7469736967417070726f76616c1000000130543a3a4163636f756e74496400002d01016454696d65706f696e743c543a3a426c6f636b4e756d6265723e0000000130543a3a4163636f756e744964000004012043616c6c48617368000108c841206d756c7469736967206f7065726174696f6e20686173206265656e20617070726f76656420627920736f6d656f6e652eb45c5b617070726f76696e672c2074696d65706f696e742c206d756c74697369672c2063616c6c5f686173685c5d404d756c746973696745786563757465641400000130543a3a4163636f756e74496400002d01016454696d65706f696e743c543a3a426c6f636b4e756d6265723e0000000130543a3a4163636f756e744964000004012043616c6c4861736800007c01384469737061746368526573756c74000204550141206d756c7469736967206f7065726174696f6e20686173206265656e2065786563757465642e205c5b617070726f76696e672c2074696d65706f696e742c206d756c74697369672c2063616c6c5f686173685c5d444d756c746973696743616e63656c6c65641000000130543a3a4163636f756e74496400002d01016454696d65706f696e743c543a3a426c6f636b4e756d6265723e0000000130543a3a4163636f756e744964000004012043616c6c486173680003045d0141206d756c7469736967206f7065726174696f6e20686173206265656e2063616e63656c6c65642e205c5b63616e63656c6c696e672c2074696d65706f696e742c206d756c74697369672c2063616c6c5f686173685c5d04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a0909092d01083c70616c6c65745f6d756c74697369672454696d65706f696e74042c426c6f636b4e756d62657201100008011868656967687410012c426c6f636b4e756d626572000114696e64657810010c753332000031010c3c70616c6c65745f626f756e746965731870616c6c6574144576656e7404045400011c38426f756e747950726f706f736564040010012c426f756e7479496e646578000004784e657720626f756e74792070726f706f73616c2e205c5b696e6465785c5d38426f756e747952656a6563746564080010012c426f756e7479496e646578000018013042616c616e63654f663c543e0001040d014120626f756e74792070726f706f73616c207761732072656a65637465643b2066756e6473207765726520736c61736865642e205c5b696e6465782c20626f6e645c5d48426f756e7479426563616d65416374697665040010012c426f756e7479496e646578000204e04120626f756e74792070726f706f73616c2069732066756e64656420616e6420626563616d65206163746976652e205c5b696e6465785c5d34426f756e747941776172646564080010012c426f756e7479496e6465780000000130543a3a4163636f756e744964000304f04120626f756e7479206973206177617264656420746f20612062656e65666963696172792e205c5b696e6465782c2062656e65666963696172795c5d34426f756e7479436c61696d65640c0010012c426f756e7479496e646578000018013042616c616e63654f663c543e0000000130543a3a4163636f756e74496400040409014120626f756e747920697320636c61696d65642062792062656e65666963696172792e205c5b696e6465782c207061796f75742c2062656e65666963696172795c5d38426f756e747943616e63656c6564040010012c426f756e7479496e646578000504804120626f756e74792069732063616e63656c6c65642e205c5b696e6465785c5d38426f756e7479457874656e646564040010012c426f756e7479496e646578000604984120626f756e74792065787069727920697320657874656e6465642e205c5b696e6465785c5d04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a09090935010c2c70616c6c65745f746970731870616c6c6574144576656e74040454000114184e6577546970040024011c543a3a48617368000004c841206e6577207469702073756767657374696f6e20686173206265656e206f70656e65642e205c5b7469705f686173685c5d28546970436c6f73696e67040024011c543a3a486173680001040d0141207469702073756767657374696f6e206861732072656163686564207468726573686f6c6420616e6420697320636c6f73696e672e205c5b7469705f686173685c5d24546970436c6f7365640c0024011c543a3a486173680000000130543a3a4163636f756e744964000018013042616c616e63654f663c543e000204ec41207469702073756767657374696f6e20686173206265656e20636c6f7365642e205c5b7469705f686173682c2077686f2c207061796f75745c5d30546970526574726163746564040024011c543a3a48617368000304c441207469702073756767657374696f6e20686173206265656e207265747261637465642e205c5b7469705f686173685c5d28546970536c61736865640c0024011c543a3a486173680000000130543a3a4163636f756e744964000018013042616c616e63654f663c543e000404010141207469702073756767657374696f6e20686173206265656e20736c61736865642e205c5b7469705f686173682c2066696e6465722c206465706f7369745c5d04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a09090939010c9070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173651870616c6c6574144576656e7404045400011838536f6c7574696f6e53746f72656408003d01013c456c656374696f6e436f6d707574650000e80110626f6f6c000018b44120736f6c7574696f6e207761732073746f72656420776974682074686520676976656e20636f6d707574652e003d0149662074686520736f6c7574696f6e206973207369676e65642c2074686973206d65616e732074686174206974206861736e277420796574206265656e2070726f6365737365642e204966207468650501736f6c7574696f6e20697320756e7369676e65642c2074686973206d65616e7320746861742069742068617320616c736f206265656e2070726f6365737365642e0051015468652060626f6f6c6020697320607472756560207768656e20612070726576696f757320736f6c7574696f6e2077617320656a656374656420746f206d616b6520726f6f6d20666f722074686973206f6e652e44456c656374696f6e46696e616c697a656404004101015c4f7074696f6e3c456c656374696f6e436f6d707574653e000108550154686520656c656374696f6e20686173206265656e2066696e616c697a65642c20776974682060536f6d6560206f662074686520676976656e20636f6d7075746174696f6e2c206f7220656c73652069662074686560656c656374696f6e206661696c65642c20604e6f6e65602e20526577617264656408000001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e744964000018013042616c616e63654f663c543e0002042501416e206163636f756e7420686173206265656e20726577617264656420666f72207468656972207369676e6564207375626d697373696f6e206265696e672066696e616c697a65642e1c536c617368656408000001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e744964000018013042616c616e63654f663c543e0003042101416e206163636f756e7420686173206265656e20736c617368656420666f72207375626d697474696e6720616e20696e76616c6964207369676e6564207375626d697373696f6e2e485369676e6564506861736553746172746564040010010c753332000404c0546865207369676e6564207068617365206f662074686520676976656e20726f756e642068617320737461727465642e50556e7369676e6564506861736553746172746564040010010c753332000504c854686520756e7369676e6564207068617365206f662074686520676976656e20726f756e642068617320737461727465642e04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a0909093d01089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173653c456c656374696f6e436f6d707574650001141c4f6e436861696e000000185369676e656400010020556e7369676e65640002002046616c6c6261636b00030024456d657267656e637900040000410104184f7074696f6e040454013d010108104e6f6e6500000010536f6d6504003d0100000100004501106c706f6c6b61646f745f72756e74696d655f70617261636861696e7324696e636c7573696f6e1870616c6c6574144576656e7404045400010c3c43616e6469646174654261636b656410004901016443616e646964617465526563656970743c543a3a486173683e000069010120486561644461746100006d010124436f7265496e64657800007101012847726f7570496e646578000004c0412063616e64696461746520776173206261636b65642e20605b63616e6469646174652c20686561645f646174615d604443616e646964617465496e636c7564656410004901016443616e646964617465526563656970743c543a3a486173683e000069010120486561644461746100006d010124436f7265496e64657800007101012847726f7570496e646578000104c8412063616e6469646174652077617320696e636c756465642e20605b63616e6469646174652c20686561645f646174615d604443616e64696461746554696d65644f75740c004901016443616e646964617465526563656970743c543a3a486173683e000069010120486561644461746100006d010124436f7265496e646578000204bc412063616e6469646174652074696d6564206f75742e20605b63616e6469646174652c20686561645f646174615d6004a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a09090949010c4c706f6c6b61646f745f7072696d6974697665730876314043616e6469646174655265636569707404044801240008012864657363726970746f724d01015843616e64696461746544657363726970746f723c483e000140636f6d6d69746d656e74735f686173682401104861736800004d010c4c706f6c6b61646f745f7072696d6974697665730876314c43616e64696461746544657363726970746f7204044801240024011c706172615f696451010108496400013072656c61795f706172656e7424010448000120636f6c6c61746f7255010128436f6c6c61746f7249640001787065727369737465645f76616c69646174696f6e5f646174615f6861736824011048617368000120706f765f6861736824011048617368000130657261737572655f726f6f74240110486173680001247369676e617475726559010144436f6c6c61746f725369676e6174757265000124706172615f686561642401104861736800015076616c69646174696f6e5f636f64655f686173686501014856616c69646174696f6e436f646548617368000051010c48706f6c6b61646f745f70617261636861696e287072696d6974697665730849640000040010010c75333200005501104c706f6c6b61646f745f7072696d69746976657308763030636f6c6c61746f725f617070185075626c696300000400bc013c737232353531393a3a5075626c696300005901104c706f6c6b61646f745f7072696d69746976657308763030636f6c6c61746f725f617070245369676e6174757265000004005d010148737232353531393a3a5369676e617475726500005d010c1c73705f636f72651c73723235353139245369676e617475726500000400610101205b75383b2036345d0000610100000340000000080065010c48706f6c6b61646f745f70617261636861696e287072696d6974697665734856616c69646174696f6e436f6465486173680000040024011048617368000069010c48706f6c6b61646f745f70617261636861696e287072696d6974697665732048656164446174610000040028011c5665633c75383e00006d010c4c706f6c6b61646f745f7072696d69746976657308763124436f7265496e6465780000040010010c753332000071010c4c706f6c6b61646f745f7072696d6974697665730876312847726f7570496e6465780000040010010c75333200007501106c706f6c6b61646f745f72756e74696d655f70617261636861696e731470617261731870616c6c6574144576656e740001144843757272656e74436f646555706461746564040051010118506172614964000004cc43757272656e7420636f646520686173206265656e207570646174656420666f72206120506172612e2060706172615f6964604843757272656e744865616455706461746564040051010118506172614964000104cc43757272656e74206865616420686173206265656e207570646174656420666f72206120506172612e2060706172615f69646050436f6465557067726164655363686564756c6564040051010118506172614964000204dc4120636f6465207570677261646520686173206265656e207363686564756c656420666f72206120506172612e2060706172615f696460304e6577486561644e6f746564040051010118506172614964000304bc41206e6577206865616420686173206265656e206e6f74656420666f72206120506172612e2060706172615f69646030416374696f6e517565756564080051010118506172614964000010013053657373696f6e496e646578000404f041207061726120686173206265656e2071756575656420746f20657865637574652070656e64696e6720616374696f6e732e2060706172615f69646004a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a0909097901106c706f6c6b61646f745f72756e74696d655f70617261636861696e730c756d701870616c6c6574144576656e7400011c34496e76616c6964466f726d617404000401244d657373616765496400000878557077617264206d65737361676520697320696e76616c69642058434d2e205c5b206964205c5d48556e737570706f7274656456657273696f6e04000401244d6573736167654964000108b4557077617264206d65737361676520697320756e737570706f727465642076657273696f6e206f662058434d2e205c5b206964205c5d38457865637574656455707761726408000401244d657373616765496400007d01011c4f7574636f6d65000208bc557077617264206d65737361676520657865637574656420776974682074686520676976656e206f7574636f6d652e445c5b2069642c206f7574636f6d65205c5d3c5765696768744578686175737465640c000401244d657373616765496400002001185765696768740000200118576569676874000308f054686520776569676874206c696d697420666f722068616e646c696e6720646f776e77617264206d657373616765732077617320726561636865642e745c5b2069642c2072656d61696e696e672c207265717569726564205c5d585570776172644d6573736167657352656365697665640c0051010118506172614964000010010c753332000010010c7533320004080101536f6d6520646f776e77617264206d657373616765732068617665206265656e20726563656976656420616e642077696c6c2062652070726f6365737365642e5c5c5b20706172612c20636f756e742c2073697a65205c5d484f766572776569676874456e71756575656410005101011850617261496400000401244d6573736167654964000020013c4f766572776569676874496e6465780000200118576569676874000518090154686520776569676874206275646765742077617320657863656564656420666f7220616e20696e646976696475616c20646f776e77617264206d6573736167652e00550154686973206d6573736167652063616e206265206c617465722064697370617463686564206d616e75616c6c79207573696e672060736572766963655f6f7665727765696768746020646973706174636861626c65987573696e67207468652061737369676e656420606f7665727765696768745f696e646578602e00a85c5b20706172612c2069642c206f7665727765696768745f696e6465782c207265717569726564205c5d484f7665727765696768745365727669636564080020013c4f766572776569676874496e64657800002001185765696768740006105101446f776e77617264206d6573736167652066726f6d20746865206f7665727765696768742071756575652077617320657865637574656420776974682074686520676976656e2061637475616c2077656967687414757365642e00705c5b206f7665727765696768745f696e6465782c2075736564205c5d04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a0909097d01100c78636d087632187472616974731c4f7574636f6d6500010c20436f6d706c657465040020011857656967687400000028496e636f6d706c65746508002001185765696768740000810101144572726f72000100144572726f720400810101144572726f72000200008101100c78636d08763218747261697473144572726f72000168204f766572666c6f7700000034556e696d706c656d656e74656400010060556e74727573746564526573657276654c6f636174696f6e00020064556e7472757374656454656c65706f72744c6f636174696f6e000300444d756c74694c6f636174696f6e46756c6c000400684d756c74694c6f636174696f6e4e6f74496e7665727469626c65000500244261644f726967696e0006003c496e76616c69644c6f636174696f6e0007003441737365744e6f74466f756e64000800544661696c6564546f5472616e7361637441737365740009003c4e6f74576974686472617761626c65000a00484c6f636174696f6e43616e6e6f74486f6c64000b0054457863656564734d61784d65737361676553697a65000c005844657374696e6174696f6e556e737570706f72746564000d00245472616e73706f7274000e0028556e726f757461626c65000f0030556e6b6e6f776e436c61696d001000384661696c6564546f4465636f646500110054546f6f4d7563685765696768745265717569726564001200384e6f74486f6c64696e674665657300130030546f6f457870656e736976650014001054726170040020010c7536340015004c556e68616e646c656458636d56657273696f6e001600485765696768744c696d69745265616368656404002001185765696768740017001c426172726965720018004c5765696768744e6f74436f6d70757461626c65001900008501106c706f6c6b61646f745f72756e74696d655f70617261636861696e731068726d701870616c6c6574144576656e74040454000110504f70656e4368616e6e656c526571756573746564100051010118506172614964000051010118506172614964000010010c753332000010010c753332000008704f70656e2048524d50206368616e6e656c207265717565737465642e1d01605b73656e6465722c20726563697069656e742c2070726f706f7365645f6d61785f63617061636974792c2070726f706f7365645f6d61785f6d6573736167655f73697a655d604c4f70656e4368616e6e656c43616e63656c656408005101011850617261496400008901013448726d704368616e6e656c49640001082901416e2048524d50206368616e6e656c20726571756573742073656e7420627920746865207265636569766572207761732063616e63656c6564206279206569746865722070617274792e70605b62795f70617261636861696e2c206368616e6e656c5f69645d604c4f70656e4368616e6e656c4163636570746564080051010118506172614964000051010118506172614964000204c44f70656e2048524d50206368616e6e656c2061636365707465642e20605b73656e6465722c20726563697069656e745d60344368616e6e656c436c6f73656408005101011850617261496400008901013448726d704368616e6e656c4964000304c448524d50206368616e6e656c20636c6f7365642e20605b62795f70617261636861696e2c206368616e6e656c5f69645d6004a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a09090989010c48706f6c6b61646f745f70617261636861696e287072696d6974697665733448726d704368616e6e656c4964000008011873656e646572510101084964000124726563697069656e7451010108496400008d01105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e3c70617261735f7265676973747261721870616c6c6574144576656e7404045400010c28526567697374657265640800510101185061726149640000000130543a3a4163636f756e744964000000304465726567697374657265640400510101185061726149640001002052657365727665640800510101185061726149640000000130543a3a4163636f756e74496400020004a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a0909099101105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e14736c6f74731870616c6c6574144576656e74040454000108384e65774c65617365506572696f6404001001404c65617365506572696f644f663c543e0000049041206e657720605b6c656173655f706572696f645d6020697320626567696e6e696e672e184c65617365641800510101185061726149640000000130543a3a4163636f756e74496400001001404c65617365506572696f644f663c543e00001001404c65617365506572696f644f663c543e000018013042616c616e63654f663c543e000018013042616c616e63654f663c543e00011035014120706172612068617320776f6e2074686520726967687420746f206120636f6e74696e756f757320736574206f66206c6561736520706572696f647320617320612070617261636861696e2e450146697273742062616c616e636520697320616e7920657874726120616d6f756e74207265736572766564206f6e20746f70206f662074686520706172612773206578697374696e67206465706f7369742eb05365636f6e642062616c616e63652069732074686520746f74616c20616d6f756e742072657365727665642e4901605b70617261636861696e5f69642c206c65617365722c20706572696f645f626567696e2c20706572696f645f636f756e742c2065787472615f72657365727665642c20746f74616c5f616d6f756e745d6004a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a0909099501105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e2061756374696f6e731870616c6c6574144576656e7404045400011c3841756374696f6e537461727465640c0010013041756374696f6e496e64657800001001404c65617365506572696f644f663c543e0000100138543a3a426c6f636b4e756d62657200000c4901416e2061756374696f6e20737461727465642e2050726f76696465732069747320696e64657820616e642074686520626c6f636b206e756d6265722077686572652069742077696c6c20626567696e20746f1501636c6f736520616e6420746865206669727374206c6561736520706572696f64206f662074686520717561647275706c657420746861742069732061756374696f6e65642e9c605b61756374696f6e5f696e6465782c206c656173655f706572696f642c20656e64696e675d603441756374696f6e436c6f736564040010013041756374696f6e496e6465780001040101416e2061756374696f6e20656e6465642e20416c6c2066756e6473206265636f6d6520756e72657365727665642e20605b61756374696f6e5f696e6465785d602052657365727665640c00000130543a3a4163636f756e744964000018013042616c616e63654f663c543e000018013042616c616e63654f663c543e000208490146756e6473207765726520726573657276656420666f7220612077696e6e696e67206269642e2046697273742062616c616e63652069732074686520657874726120616d6f756e742072657365727665642ef45365636f6e642069732074686520746f74616c2e20605b6269646465722c2065787472615f72657365727665642c20746f74616c5f616d6f756e745d6028556e72657365727665640800000130543a3a4163636f756e744964000018013042616c616e63654f663c543e000304290146756e6473207765726520756e72657365727665642073696e636520626964646572206973206e6f206c6f6e676572206163746976652e20605b6269646465722c20616d6f756e745d604852657365727665436f6e66697363617465640c00510101185061726149640000000130543a3a4163636f756e744964000018013042616c616e63654f663c543e00040c7501536f6d656f6e6520617474656d7074656420746f206c65617365207468652073616d6520736c6f7420747769636520666f7220612070617261636861696e2e2054686520616d6f756e742069732068656c6420696e207265736572766598627574206e6f2070617261636861696e20736c6f7420686173206265656e206c65617365642e80605b70617261636861696e5f69642c206c65617365722c20616d6f756e745d602c42696441636365707465641400000130543a3a4163636f756e744964000051010118506172614964000018013042616c616e63654f663c543e00001001404c65617365506572696f644f663c543e00001001404c65617365506572696f644f663c543e000508c841206e65772062696420686173206265656e206163636570746564206173207468652063757272656e742077696e6e65722ebc605b77686f2c20706172615f69642c20616d6f756e742c2066697273745f736c6f742c206c6173745f736c6f745d603457696e6e696e674f6666736574080010013041756374696f6e496e6465780000100138543a3a426c6f636b4e756d6265720006086d015468652077696e6e696e67206f6666736574207761732063686f73656e20666f7220616e2061756374696f6e2e20546869732077696c6c206d617020696e746f20746865206057696e6e696e67602073746f72616765206d61702e7c605b61756374696f6e5f696e6465782c20626c6f636b5f6e756d6265725d6004a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a0909099901105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e2463726f77646c6f616e1870616c6c6574144576656e740404540001281c43726561746564040051010118506172614964000004c84372656174652061206e65772063726f77646c6f616e696e672063616d706169676e2e20605b66756e645f696e6465785d602c436f6e74726962757465640c00000130543a3a4163636f756e744964000051010118506172614964000018013042616c616e63654f663c543e000104e0436f6e747269627574656420746f20612063726f77642073616c652e20605b77686f2c2066756e645f696e6465782c20616d6f756e745d602057697468647265770c00000130543a3a4163636f756e744964000051010118506172614964000018013042616c616e63654f663c543e0002040d0157697468647265772066756c6c2062616c616e6365206f66206120636f6e7472696275746f722e20605b77686f2c2066756e645f696e6465782c20616d6f756e745d60445061727469616c6c79526566756e6465640400510101185061726149640003082d01546865206c6f616e7320696e20612066756e642068617665206265656e207061727469616c6c7920646973736f6c7665642c20692e652e2074686572652061726520736f6d65206c656674f06f766572206368696c64206b6579732074686174207374696c6c206e65656420746f206265206b696c6c65642e20605b66756e645f696e6465785d602c416c6c526566756e646564040051010118506172614964000404d8416c6c206c6f616e7320696e20612066756e642068617665206265656e20726566756e6465642e20605b66756e645f696e6465785d6024446973736f6c7665640400510101185061726149640005048446756e6420697320646973736f6c7665642e20605b66756e645f696e6465785d603c48616e646c65426964526573756c7408005101011850617261496400007c01384469737061746368526573756c74000604f454686520726573756c74206f6620747279696e6720746f207375626d69742061206e65772062696420746f2074686520536c6f74732070616c6c65742e18456469746564040051010118506172614964000704010154686520636f6e66696775726174696f6e20746f20612063726f77646c6f616e20686173206265656e206564697465642e20605b66756e645f696e6465785d602c4d656d6f557064617465640c00000130543a3a4163636f756e744964000051010118506172614964000028011c5665633c75383e000804c841206d656d6f20686173206265656e20757064617465642e20605b77686f2c2066756e645f696e6465782c206d656d6f5d603c4164646564546f4e65775261697365040051010118506172614964000904a0412070617261636861696e20686173206265656e206d6f76656420746f20604e657752616973656004a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a0909099d0108306672616d655f73797374656d14506861736500010c384170706c7945787472696e736963040010010c7533320000003046696e616c697a6174696f6e00010038496e697469616c697a6174696f6e00020000a1010000022400a5010000027400a90108306672616d655f73797374656d584c61737452756e74696d6555706772616465496e666f0000080130737065635f76657273696f6ead01014c636f6465633a3a436f6d706163743c7533323e000124737065635f6e616d65b101016473705f72756e74696d653a3a52756e74696d65537472696e670000ad010000061000b1010000050200b5010c306672616d655f73797374656d1870616c6c65741043616c6c0404540001282866696c6c5f626c6f636b040114726174696fb901011c50657262696c6c00000405014120646973706174636820746861742077696c6c2066696c6c2074686520626c6f636b2077656967687420757020746f2074686520676976656e20726174696f2e1872656d61726b04011872656d61726b28011c5665633c75383e000114684d616b6520736f6d65206f6e2d636861696e2072656d61726b2e002823203c7765696768743e202d20604f283129602c23203c2f7765696768743e387365745f686561705f7061676573040114706167657320010c753634000224f853657420746865206e756d626572206f6620706167657320696e2074686520576562417373656d626c7920656e7669726f6e6d656e74277320686561702e002823203c7765696768743e202d20604f28312960482d20312073746f726167652077726974652e602d2042617365205765696768743a20312e34303520c2b5735c2d203120777269746520746f20484541505f50414745533c2d203120646967657374206974656d2c23203c2f7765696768743e207365745f636f6465040110636f646528011c5665633c75383e0003306453657420746865206e65772072756e74696d6520636f64652e002823203c7765696768743e31012d20604f2843202b2053296020776865726520604360206c656e677468206f662060636f64656020616e642060536020636f6d706c6578697479206f66206063616e5f7365745f636f64656045012d20312063616c6c20746f206063616e5f7365745f636f6465603a20604f28532960202863616c6c73206073705f696f3a3a6d6973633a3a72756e74696d655f76657273696f6e60207768696368206973342020657870656e73697665292e842d20312073746f726167652077726974652028636f64656320604f28432960292e402d203120646967657374206974656d2e282d2031206576656e742e4d0154686520776569676874206f6620746869732066756e6374696f6e20697320646570656e64656e74206f6e207468652072756e74696d652c206275742067656e6572616c6c7920746869732069732076657279b8657870656e736976652e2057652077696c6c207472656174207468697320617320612066756c6c20626c6f636b2e2c23203c2f7765696768743e5c7365745f636f64655f776974686f75745f636865636b73040110636f646528011c5665633c75383e000424190153657420746865206e65772072756e74696d6520636f646520776974686f757420646f696e6720616e7920636865636b73206f662074686520676976656e2060636f6465602e002823203c7765696768743e8c2d20604f2843296020776865726520604360206c656e677468206f662060636f646560842d20312073746f726167652077726974652028636f64656320604f28432960292e402d203120646967657374206974656d2e282d2031206576656e742e550154686520776569676874206f6620746869732066756e6374696f6e20697320646570656e64656e74206f6e207468652072756e74696d652e2057652077696c6c207472656174207468697320617320612066756c6c48626c6f636b2e2023203c2f7765696768743e5c7365745f6368616e6765735f747269655f636f6e66696704014c6368616e6765735f747269655f636f6e6669674001804f7074696f6e3c4368616e67657354726965436f6e66696775726174696f6e3e0005289c53657420746865206e6577206368616e676573207472696520636f6e66696775726174696f6e2e002823203c7765696768743e202d20604f28312960ac2d20312073746f72616765207772697465206f722064656c6574652028636f64656320604f28312960292ed42d20312063616c6c20746f20606465706f7369745f6c6f67603a20557365732060617070656e6460204150492c20736f204f283129602d2042617365205765696768743a20372e32313820c2b573302d204442205765696768743aa4202020202d205772697465733a204368616e67657320547269652c2053797374656d204469676573742c23203c2f7765696768743e2c7365745f73746f726167650401146974656d73bd0101345665633c4b657956616c75653e0006206853657420736f6d65206974656d73206f662073746f726167652e002823203c7765696768743e902d20604f2849296020776865726520604960206c656e677468206f6620606974656d7360782d206049602073746f72616765207772697465732028604f28312960292e702d2042617365205765696768743a20302e353638202a206920c2b573642d205772697465733a204e756d626572206f66206974656d732c23203c2f7765696768743e306b696c6c5f73746f726167650401106b657973c50101205665633c4b65793e000720744b696c6c20736f6d65206974656d732066726f6d2073746f726167652e002823203c7765696768743ef82d20604f28494b296020776865726520604960206c656e677468206f6620606b6579736020616e6420604b60206c656e677468206f66206f6e65206b6579602d206049602073746f726167652064656c6574696f6e732e6c2d2042617365205765696768743a202e333738202a206920c2b573642d205772697465733a204e756d626572206f66206974656d732c23203c2f7765696768743e2c6b696c6c5f70726566697808011870726566697828010c4b657900011c7375626b65797310010c75333200082c11014b696c6c20616c6c2073746f72616765206974656d7320776974682061206b657920746861742073746172747320776974682074686520676976656e207072656669782e0039012a2a4e4f54453a2a2a2057652072656c79206f6e2074686520526f6f74206f726967696e20746f2070726f7669646520757320746865206e756d626572206f66207375626b65797320756e6465723d0174686520707265666978207765206172652072656d6f76696e6720746f2061636375726174656c792063616c63756c6174652074686520776569676874206f6620746869732066756e6374696f6e2e002823203c7765696768743ed82d20604f285029602077686572652060506020616d6f756e74206f66206b657973207769746820707265666978206070726566697860602d206050602073746f726167652064656c6574696f6e732e702d2042617365205765696768743a20302e383334202a205020c2b5737c2d205772697465733a204e756d626572206f66207375626b657973202b20312c23203c2f7765696768743e4472656d61726b5f776974685f6576656e7404011872656d61726b28011c5665633c75383e000918a44d616b6520736f6d65206f6e2d636861696e2072656d61726b20616e6420656d6974206576656e742e002823203c7765696768743eb42d20604f28622960207768657265206220697320746865206c656e677468206f66207468652072656d61726b2e282d2031206576656e742e2c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632eb9010c3473705f61726974686d65746963287065725f7468696e67731c50657262696c6c0000040010010c7533320000bd01000002c10100c10100000408282800c5010000022800c9010c306672616d655f73797374656d186c696d69747330426c6f636b5765696768747300000c0128626173655f626c6f636b2001185765696768740001246d61785f626c6f636b2001185765696768740001247065725f636c617373cd0101845065724469737061746368436c6173733c57656967687473506572436c6173733e0000cd010c346672616d655f737570706f72741c77656967687473405065724469737061746368436c61737304045401d101000c01186e6f726d616cd10101045400012c6f7065726174696f6e616cd1010104540001246d616e6461746f7279d1010104540000d1010c306672616d655f73797374656d186c696d6974733c57656967687473506572436c6173730000100138626173655f65787472696e7369632001185765696768740001346d61785f65787472696e736963d50101384f7074696f6e3c5765696768743e0001246d61785f746f74616cd50101384f7074696f6e3c5765696768743e0001207265736572766564d50101384f7074696f6e3c5765696768743e0000d50104184f7074696f6e04045401200108104e6f6e6500000010536f6d650400200000010000d9010c306672616d655f73797374656d186c696d6974732c426c6f636b4c656e677468000004010c6d6178dd0101545065724469737061746368436c6173733c7533323e0000dd010c346672616d655f737570706f72741c77656967687473405065724469737061746368436c6173730404540110000c01186e6f726d616c1001045400012c6f7065726174696f6e616c100104540001246d616e6461746f7279100104540000e1010c346672616d655f737570706f72741c776569676874733c52756e74696d65446257656967687400000801107265616420011857656967687400011477726974652001185765696768740000e501082873705f76657273696f6e3852756e74696d6556657273696f6e00001c0124737065635f6e616d65b101013452756e74696d65537472696e67000124696d706c5f6e616d65b101013452756e74696d65537472696e67000144617574686f72696e675f76657273696f6e10010c753332000130737065635f76657273696f6e10010c753332000130696d706c5f76657273696f6e10010c75333200011061706973e901011c4170697356656300014c7472616e73616374696f6e5f76657273696f6e10010c7533320000e901040c436f7704045401ed01000400ed01000000ed01000002f10100f10100000408f5011000f501000003080000000800f9010c306672616d655f73797374656d1870616c6c6574144572726f720404540001143c496e76616c6964537065634e616d650000081101546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e63726561736500010841015468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e00020cec4661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e0009014569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f73697465000304fc537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e74000404350154686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e046c4572726f7220666f72207468652053797374656d2070616c6c6574fd01000002010200010204184f7074696f6e0404540105020108104e6f6e6500000010536f6d650400050200000100000502084070616c6c65745f7363686564756c65722c5363686564756c65645632101043616c6c0109022c426c6f636b4e756d62657201103450616c6c6574734f726967696e019505244163636f756e7449640100001401206d617962655f696478013c4f7074696f6e3c5665633c75383e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6c0902011043616c6c0001386d617962655f706572696f646963110201944f7074696f6e3c7363686564756c653a3a506572696f643c426c6f636b4e756d6265723e3e0001186f726967696e9505013450616c6c6574734f726967696e000009020840706f6c6b61646f745f72756e74696d651043616c6c00019c1853797374656d0400b50101ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53797374656d2c2052756e74696d653e000000245363686564756c657204000d0201b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5363686564756c65722c2052756e74696d653e00010010426162650400150201a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c426162652c2052756e74696d653e0002002454696d657374616d7004003d0201b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54696d657374616d702c2052756e74696d653e0003001c496e64696365730400450201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c496e64696365732c2052756e74696d653e0004002042616c616e6365730400490201b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42616c616e6365732c2052756e74696d653e00050028417574686f72736869700400550201bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c417574686f72736869702c2052756e74696d653e0006001c5374616b696e6704005d0201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5374616b696e672c2052756e74696d653e0007001c53657373696f6e0400810201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53657373696f6e2c2052756e74696d653e0009001c4772616e6470610400950201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4772616e6470612c2052756e74696d653e000b0020496d4f6e6c696e650400c10201b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c496d4f6e6c696e652c2052756e74696d653e000c002444656d6f63726163790400dd0201b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c44656d6f63726163792c2052756e74696d653e000e001c436f756e63696c0400ed0201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f756e63696c2c2052756e74696d653e000f0048546563686e6963616c436f6d6d69747465650400f50201dd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c546563686e6963616c436f6d6d69747465652c2052756e74696d653e0010004050687261676d656e456c656374696f6e0400f90201d50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50687261676d656e456c656374696f6e2c2052756e74696d653e0011004c546563686e6963616c4d656d626572736869700400010301e10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c546563686e6963616c4d656d626572736869702c2052756e74696d653e0012002054726561737572790400050301b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54726561737572792c2052756e74696d653e00130018436c61696d730400090301ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436c61696d732c2052756e74696d653e0018001c56657374696e670400250301b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c56657374696e672c2052756e74696d653e0019001c5574696c69747904002d0301b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5574696c6974792c2052756e74696d653e001a00204964656e746974790400350301b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4964656e746974792c2052756e74696d653e001c001450726f78790400d50301a90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50726f78792c2052756e74696d653e001d00204d756c74697369670400dd0301b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d756c74697369672c2052756e74696d653e001e0020426f756e746965730400e50301b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c426f756e746965732c2052756e74696d653e00220010546970730400e90301a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c546970732c2052756e74696d653e00230068456c656374696f6e50726f76696465724d756c746950686173650400ed0301fd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c456c656374696f6e50726f76696465724d756c746950686173652c2052756e74696d653e00240034436f6e66696775726174696f6e0400d90401c90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f6e66696775726174696f6e2c2052756e74696d653e0033002c50617261735368617265640400dd0401c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50617261735368617265642c2052756e74696d653e0034003450617261496e636c7573696f6e0400e10401c90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50617261496e636c7573696f6e2c2052756e74696d653e0035003050617261496e686572656e740400e50401c50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50617261496e686572656e742c2052756e74696d653e0036001450617261730400510501a90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50617261732c2052756e74696d653e0038002c496e697469616c697a65720400550501c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c496e697469616c697a65722c2052756e74696d653e0039000c446d700400590501a10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c446d702c2052756e74696d653e003a000c556d7004005d0501a10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c556d702c2052756e74696d653e003b001048726d700400610501a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c48726d702c2052756e74696d653e003c00245265676973747261720400650501b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5265676973747261722c2052756e74696d653e00460014536c6f74730400690501a90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c536c6f74732c2052756e74696d653e0047002041756374696f6e7304006d0501b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c41756374696f6e732c2052756e74696d653e0048002443726f77646c6f616e0400750501b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c43726f77646c6f616e2c2052756e74696d653e004900000d020c4070616c6c65745f7363686564756c65721870616c6c65741043616c6c040454000118207363686564756c651001107768656e100138543a3a426c6f636b4e756d6265720001386d617962655f706572696f646963110201a04f7074696f6e3c7363686564756c653a3a506572696f643c543a3a426c6f636b4e756d6265723e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6c09020160426f783c3c5420617320436f6e6669673e3a3a43616c6c3e00002870416e6f6e796d6f75736c79207363686564756c652061207461736b2e002823203c7765696768743e9c2d2053203d204e756d626572206f6620616c7265616479207363686564756c65642063616c6c738c2d2042617365205765696768743a2032322e3239202b202e313236202a205320c2b573302d204442205765696768743a48202020202d20526561643a204167656e64614c202020202d2057726974653a204167656e646139012d2057696c6c20757365206261736520776569676874206f662032352077686963682073686f756c6420626520676f6f6420666f7220757020746f203330207363686564756c65642063616c6c732c23203c2f7765696768743e1863616e63656c0801107768656e100138543a3a426c6f636b4e756d626572000114696e64657810010c7533320001289443616e63656c20616e20616e6f6e796d6f75736c79207363686564756c6564207461736b2e002823203c7765696768743e9c2d2053203d204e756d626572206f6620616c7265616479207363686564756c65642063616c6c73902d2042617365205765696768743a2032322e3135202b20322e383639202a205320c2b573302d204442205765696768743a48202020202d20526561643a204167656e64616c202020202d2057726974653a204167656e64612c204c6f6f6b75703d012d2057696c6c20757365206261736520776569676874206f66203130302077686963682073686f756c6420626520676f6f6420666f7220757020746f203330207363686564756c65642063616c6c732c23203c2f7765696768743e387363686564756c655f6e616d6564140108696428011c5665633c75383e0001107768656e100138543a3a426c6f636b4e756d6265720001386d617962655f706572696f646963110201a04f7074696f6e3c7363686564756c653a3a506572696f643c543a3a426c6f636b4e756d6265723e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6c09020160426f783c3c5420617320436f6e6669673e3a3a43616c6c3e000228585363686564756c652061206e616d6564207461736b2e002823203c7765696768743e9c2d2053203d204e756d626572206f6620616c7265616479207363686564756c65642063616c6c73882d2042617365205765696768743a2032392e36202b202e313539202a205320c2b573302d204442205765696768743a68202020202d20526561643a204167656e64612c204c6f6f6b75706c202020202d2057726974653a204167656e64612c204c6f6f6b757049012d2057696c6c20757365206261736520776569676874206f662033352077686963682073686f756c6420626520676f6f6420666f72206d6f7265207468616e203330207363686564756c65642063616c6c732c23203c2f7765696768743e3063616e63656c5f6e616d6564040108696428011c5665633c75383e0003287843616e63656c2061206e616d6564207363686564756c6564207461736b2e002823203c7765696768743e9c2d2053203d204e756d626572206f6620616c7265616479207363686564756c65642063616c6c73902d2042617365205765696768743a2032342e3931202b20322e393037202a205320c2b573302d204442205765696768743a68202020202d20526561643a204167656e64612c204c6f6f6b75706c202020202d2057726974653a204167656e64612c204c6f6f6b75703d012d2057696c6c20757365206261736520776569676874206f66203130302077686963682073686f756c6420626520676f6f6420666f7220757020746f203330207363686564756c65642063616c6c732c23203c2f7765696768743e387363686564756c655f61667465721001146166746572100138543a3a426c6f636b4e756d6265720001386d617962655f706572696f646963110201a04f7074696f6e3c7363686564756c653a3a506572696f643c543a3a426c6f636b4e756d6265723e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6c09020160426f783c3c5420617320436f6e6669673e3a3a43616c6c3e000414a8416e6f6e796d6f75736c79207363686564756c652061207461736b20616674657220612064656c61792e002823203c7765696768743e5453616d65206173205b607363686564756c65605d2e2c23203c2f7765696768743e507363686564756c655f6e616d65645f6166746572140108696428011c5665633c75383e0001146166746572100138543a3a426c6f636b4e756d6265720001386d617962655f706572696f646963110201a04f7074696f6e3c7363686564756c653a3a506572696f643c543a3a426c6f636b4e756d6265723e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6c09020160426f783c3c5420617320436f6e6669673e3a3a43616c6c3e000514905363686564756c652061206e616d6564207461736b20616674657220612064656c61792e002823203c7765696768743ec453616d65206173205b607363686564756c655f6e616d6564605d2853656c663a3a7363686564756c655f6e616d6564292e2c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e110204184f7074696f6e04045401740108104e6f6e6500000010536f6d65040074000001000015020c2c70616c6c65745f626162651870616c6c65741043616c6c04045400010c4c7265706f72745f65717569766f636174696f6e08014865717569766f636174696f6e5f70726f6f6619020184426f783c45717569766f636174696f6e50726f6f663c543a3a4865616465723e3e00013c6b65795f6f776e65725f70726f6f662d020140543a3a4b65794f776e657250726f6f6600001009015265706f727420617574686f726974792065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667905017468652065717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f660d01616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63652077696c6c306265207265706f727465642e707265706f72745f65717569766f636174696f6e5f756e7369676e656408014865717569766f636174696f6e5f70726f6f6619020184426f783c45717569766f636174696f6e50726f6f663c543a3a4865616465723e3e00013c6b65795f6f776e65725f70726f6f662d020140543a3a4b65794f776e657250726f6f6600012009015265706f727420617574686f726974792065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667905017468652065717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f660d01616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63652077696c6c306265207265706f727465642e0d01546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c791501626c6f636b20617574686f72732077696c6c2063616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c2061732073756368150169662074686520626c6f636b20617574686f7220697320646566696e65642069742077696c6c20626520646566696e6564206173207468652065717569766f636174696f6e247265706f727465722e48706c616e5f636f6e6669675f6368616e6765040118636f6e666967310201504e657874436f6e66696744657363726970746f720002105d01506c616e20616e2065706f636820636f6e666967206368616e67652e205468652065706f636820636f6e666967206368616e6765206973207265636f7264656420616e642077696c6c20626520656e6163746564206f6e5101746865206e6578742063616c6c20746f2060656e6163745f65706f63685f6368616e6765602e2054686520636f6e6669672077696c6c20626520616374697661746564206f6e652065706f63682061667465722e59014d756c7469706c652063616c6c7320746f2074686973206d6574686f642077696c6c207265706c61636520616e79206578697374696e6720706c616e6e656420636f6e666967206368616e6765207468617420686164546e6f74206265656e20656e6163746564207965742e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e1902084873705f636f6e73656e7375735f736c6f74734445717569766f636174696f6e50726f6f660818486561646572011d02084964012502001001206f6666656e646572250201084964000110736c6f7429020110536c6f7400013066697273745f6865616465721d0201184865616465720001347365636f6e645f6865616465721d02011848656164657200001d02102873705f72756e74696d651c67656e65726963186865616465721848656164657208184e756d626572011010486173680121020014012c706172656e745f68617368240130486173683a3a4f75747075740001186e756d626572ad0101184e756d62657200012873746174655f726f6f74240130486173683a3a4f757470757400013c65787472696e736963735f726f6f74240130486173683a3a4f75747075740001186469676573742c01504469676573743c486173683a3a4f75747075743e000021020c2873705f72756e74696d65187472616974732c426c616b6554776f3235360000000025020c4473705f636f6e73656e7375735f626162650c617070185075626c696300000400bc013c737232353531393a3a5075626c696300002902084873705f636f6e73656e7375735f736c6f747310536c6f740000040020010c75363400002d02082873705f73657373696f6e3c4d656d6265727368697050726f6f6600000c011c73657373696f6e10013053657373696f6e496e646578000128747269655f6e6f646573c50101305665633c5665633c75383e3e00013c76616c696461746f725f636f756e7410013856616c696461746f72436f756e74000031020c4473705f636f6e73656e7375735f626162651c64696765737473504e657874436f6e66696744657363726970746f720001040856310801046335020128287536342c2075363429000134616c6c6f7765645f736c6f747339020130416c6c6f776564536c6f7473000100003502000004082020003902084473705f636f6e73656e7375735f6261626530416c6c6f776564536c6f747300010c305072696d617279536c6f7473000000745072696d617279416e645365636f6e64617279506c61696e536c6f74730001006c5072696d617279416e645365636f6e64617279565246536c6f7473000200003d020c4070616c6c65745f74696d657374616d701870616c6c65741043616c6c0404540001040c73657404010c6e6f7741020124543a3a4d6f6d656e7400004054536574207468652063757272656e742074696d652e005501546869732063616c6c2073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6ed470686173652c20696620746869732063616c6c206861736e2774206265656e20696e766f6b656420627920746861742074696d652e0041015468652074696d657374616d702073686f756c642062652067726561746572207468616e207468652070726576696f7573206f6e652062792074686520616d6f756e742073706563696669656420627940604d696e696d756d506572696f64602e00d4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652060496e686572656e74602e002823203c7765696768743e31012d20604f2831296020284e6f7465207468617420696d706c656d656e746174696f6e73206f6620604f6e54696d657374616d7053657460206d75737420616c736f20626520604f283129602961012d20312073746f72616765207265616420616e6420312073746f72616765206d75746174696f6e2028636f64656320604f28312960292e202862656361757365206f6620604469645570646174653a3a74616b656020696e402020606f6e5f66696e616c697a656029d42d2031206576656e742068616e646c657220606f6e5f74696d657374616d705f736574602e204d75737420626520604f283129602e2c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e4102000006200045020c3870616c6c65745f696e64696365731870616c6c65741043616c6c04045400011414636c61696d040114696e64657810013c543a3a4163636f756e74496e6465780000489841737369676e20616e2070726576696f75736c7920756e61737369676e656420696e6465782e00dc5061796d656e743a20604465706f736974602069732072657365727665642066726f6d207468652073656e646572206163636f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e00f02d2060696e646578603a2074686520696e64657820746f20626520636c61696d65642e2054686973206d757374206e6f7420626520696e207573652e0090456d6974732060496e64657841737369676e656460206966207375636365737366756c2e002823203c7765696768743e242d20604f283129602e982d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28312960292e602d204f6e652072657365727665206f7065726174696f6e2e302d204f6e65206576656e742e4c2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d902d204442205765696768743a203120526561642f577269746520284163636f756e7473292c23203c2f7765696768743e207472616e7366657208010c6e6577000130543a3a4163636f756e744964000114696e64657810013c543a3a4163636f756e74496e6465780001505d0141737369676e20616e20696e64657820616c7265616479206f776e6564206279207468652073656e64657220746f20616e6f74686572206163636f756e742e205468652062616c616e6365207265736572766174696f6eb86973206566666563746976656c79207472616e7366657272656420746f20746865206e6577206163636f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0025012d2060696e646578603a2074686520696e64657820746f2062652072652d61737369676e65642e2054686973206d757374206265206f776e6564206279207468652073656e6465722e5d012d20606e6577603a20746865206e6577206f776e6572206f662074686520696e6465782e20546869732066756e6374696f6e2069732061206e6f2d6f7020696620697420697320657175616c20746f2073656e6465722e0090456d6974732060496e64657841737369676e656460206966207375636365737366756c2e002823203c7765696768743e242d20604f283129602e982d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28312960292e642d204f6e65207472616e73666572206f7065726174696f6e2e302d204f6e65206576656e742e4c2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d302d204442205765696768743ae02020202d2052656164733a20496e6469636573204163636f756e74732c2053797374656d204163636f756e742028726563697069656e7429e42020202d205772697465733a20496e6469636573204163636f756e74732c2053797374656d204163636f756e742028726563697069656e74292c23203c2f7765696768743e1066726565040114696e64657810013c543a3a4163636f756e74496e646578000248944672656520757020616e20696e646578206f776e6564206279207468652073656e6465722e005d015061796d656e743a20416e792070726576696f7573206465706f73697420706c6163656420666f722074686520696e64657820697320756e726573657276656420696e207468652073656e646572206163636f756e742e005501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d757374206f776e2074686520696e6465782e000d012d2060696e646578603a2074686520696e64657820746f2062652066726565642e2054686973206d757374206265206f776e6564206279207468652073656e6465722e0084456d6974732060496e646578467265656460206966207375636365737366756c2e002823203c7765696768743e242d20604f283129602e982d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28312960292e602d204f6e652072657365727665206f7065726174696f6e2e302d204f6e65206576656e742e4c2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d902d204442205765696768743a203120526561642f577269746520284163636f756e7473292c23203c2f7765696768743e38666f7263655f7472616e736665720c010c6e6577000130543a3a4163636f756e744964000114696e64657810013c543a3a4163636f756e74496e646578000118667265657a65e80110626f6f6c0003545501466f72636520616e20696e64657820746f20616e206163636f756e742e205468697320646f65736e277420726571756972652061206465706f7369742e2049662074686520696e64657820697320616c7265616479e868656c642c207468656e20616e79206465706f736974206973207265696d62757273656420746f206974732063757272656e74206f776e65722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e00a42d2060696e646578603a2074686520696e64657820746f206265202872652d2961737369676e65642e5d012d20606e6577603a20746865206e6577206f776e6572206f662074686520696e6465782e20546869732066756e6374696f6e2069732061206e6f2d6f7020696620697420697320657175616c20746f2073656e6465722e41012d2060667265657a65603a2069662073657420746f206074727565602c2077696c6c20667265657a652074686520696e64657820736f2069742063616e6e6f74206265207472616e736665727265642e0090456d6974732060496e64657841737369676e656460206966207375636365737366756c2e002823203c7765696768743e242d20604f283129602e982d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28312960292e782d20557020746f206f6e652072657365727665206f7065726174696f6e2e302d204f6e65206576656e742e4c2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d302d204442205765696768743af42020202d2052656164733a20496e6469636573204163636f756e74732c2053797374656d204163636f756e7420286f726967696e616c206f776e657229f82020202d205772697465733a20496e6469636573204163636f756e74732c2053797374656d204163636f756e7420286f726967696e616c206f776e6572292c23203c2f7765696768743e18667265657a65040114696e64657810013c543a3a4163636f756e74496e6465780004484101467265657a6520616e20696e64657820736f2069742077696c6c20616c7761797320706f696e7420746f207468652073656e646572206163636f756e742e205468697320636f6e73756d657320746865206465706f7369742e005901546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d757374206861766520616c6e6f6e2d66726f7a656e206163636f756e742060696e646578602e00ac2d2060696e646578603a2074686520696e64657820746f2062652066726f7a656e20696e20706c6163652e0088456d6974732060496e64657846726f7a656e60206966207375636365737366756c2e002823203c7765696768743e242d20604f283129602e982d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28312960292e702d20557020746f206f6e6520736c617368206f7065726174696f6e2e302d204f6e65206576656e742e4c2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d902d204442205765696768743a203120526561642f577269746520284163636f756e7473292c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e49020c3c70616c6c65745f62616c616e6365731870616c6c65741043616c6c080454000449000118207472616e73666572080110646573744d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500011476616c7565cc0128543a3a42616c616e6365000070d45472616e7366657220736f6d65206c697175696420667265652062616c616e636520746f20616e6f74686572206163636f756e742e000501607472616e73666572602077696c6c207365742074686520604672656542616c616e636560206f66207468652073656e64657220616e642072656365697665722e1d0149742077696c6c2064656372656173652074686520746f74616c2069737375616e6365206f66207468652073797374656d2062792074686520605472616e73666572466565602e11014966207468652073656e6465722773206163636f756e742069732062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c74b06f6620746865207472616e736665722c20746865206163636f756e742077696c6c206265207265617065642e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520605369676e65646020627920746865207472616e736163746f722e002823203c7765696768743e61012d20446570656e64656e74206f6e20617267756d656e747320627574206e6f7420637269746963616c2c20676976656e2070726f70657220696d706c656d656e746174696f6e7320666f7220696e70757420636f6e66696794202074797065732e205365652072656c617465642066756e6374696f6e732062656c6f772e31012d20497420636f6e7461696e732061206c696d69746564206e756d626572206f6620726561647320616e642077726974657320696e7465726e616c6c7920616e64206e6f20636f6d706c6578382020636f6d7075746174696f6e2e004852656c617465642066756e6374696f6e733a004d0120202d2060656e737572655f63616e5f77697468647261776020697320616c776179732063616c6c656420696e7465726e616c6c792062757420686173206120626f756e64656420636f6d706c65786974792e290120202d205472616e7366657272696e672062616c616e63657320746f206163636f756e7473207468617420646964206e6f74206578697374206265666f72652077696c6c206361757365cc2020202060543a3a4f6e4e65774163636f756e743a3a6f6e5f6e65775f6163636f756e746020746f2062652063616c6c65642e5d0120202d2052656d6f76696e6720656e6f7567682066756e64732066726f6d20616e206163636f756e742077696c6c20747269676765722060543a3a4475737452656d6f76616c3a3a6f6e5f756e62616c616e636564602e5d0120202d20607472616e736665725f6b6565705f616c6976656020776f726b73207468652073616d652077617920617320607472616e73666572602c206275742068617320616e206164646974696f6e616c20636865636bdc202020207468617420746865207472616e736665722077696c6c206e6f74206b696c6c20746865206f726967696e206163636f756e742e842d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d41012d2042617365205765696768743a2037332e363420c2b5732c20776f7273742063617365207363656e6172696f20286163636f756e7420637265617465642c206163636f756e742072656d6f76656429d82d204442205765696768743a2031205265616420616e64203120577269746520746f2064657374696e6174696f6e206163636f756e7411012d204f726967696e206163636f756e7420697320616c726561647920696e206d656d6f72792c20736f206e6f204442206f7065726174696f6e7320666f72207468656d2e2c23203c2f7765696768743e2c7365745f62616c616e63650c010c77686f4d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001206e65775f66726565cc0128543a3a42616c616e63650001306e65775f7265736572766564cc0128543a3a42616c616e636500014890536574207468652062616c616e636573206f66206120676976656e206163636f756e742e001d01546869732077696c6c20616c74657220604672656542616c616e63656020616e642060526573657276656442616c616e63656020696e2073746f726167652e2069742077696c6c0501616c736f2064656372656173652074686520746f74616c2069737375616e6365206f66207468652073797374656d202860546f74616c49737375616e636560292e1501496620746865206e65772066726565206f722072657365727665642062616c616e63652069732062656c6f7720746865206578697374656e7469616c206465706f7369742cfc69742077696c6c20726573657420746865206163636f756e74206e6f6e63652028606672616d655f73797374656d3a3a4163636f756e744e6f6e636560292e00b0546865206469737061746368206f726967696e20666f7220746869732063616c6c2069732060726f6f74602e002823203c7765696768743e7c2d20496e646570656e64656e74206f662074686520617267756d656e74732ec02d20436f6e7461696e732061206c696d69746564206e756d626572206f6620726561647320616e64207772697465732e542d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d382d2042617365205765696768743a64202020202d204372656174696e673a2032372e353620c2b57360202020202d204b696c6c696e673a2033352e313120c2b573942d204442205765696768743a203120526561642c203120577269746520746f206077686f602c23203c2f7765696768743e38666f7263655f7472616e736665720c0118736f757263654d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365000110646573744d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500011476616c7565cc0128543a3a42616c616e63650002184d0145786163746c7920617320607472616e73666572602c2065786365707420746865206f726967696e206d75737420626520726f6f7420616e642074686520736f75726365206163636f756e74206d6179206265287370656369666965642e2823203c7765696768743e4d012d2053616d65206173207472616e736665722c20627574206164646974696f6e616c207265616420616e6420777269746520626563617573652074686520736f75726365206163636f756e74206973206e6f747c2020617373756d656420746f20626520696e20746865206f7665726c61792e2c23203c2f7765696768743e4c7472616e736665725f6b6565705f616c697665080110646573744d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500011476616c7565cc0128543a3a42616c616e636500032c4d0153616d6520617320746865205b607472616e73666572605d2063616c6c2c206275742077697468206120636865636b207468617420746865207472616e736665722077696c6c206e6f74206b696c6c207468653c6f726967696e206163636f756e742e00b8393925206f66207468652074696d6520796f752077616e74205b607472616e73666572605d20696e73746561642e00c05b607472616e73666572605d3a207374727563742e50616c6c65742e68746d6c236d6574686f642e7472616e736665722823203c7765696768743ee42d2043686561706572207468616e207472616e736665722062656361757365206163636f756e742063616e6e6f74206265206b696c6c65642e5c2d2042617365205765696768743a2035312e3420c2b57319012d204442205765696768743a2031205265616420616e64203120577269746520746f2064657374202873656e64657220697320696e206f7665726c617920616c72656164792928233c2f7765696768743e307472616e736665725f616c6c080110646573744d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001286b6565705f616c697665e80110626f6f6c00044405015472616e736665722074686520656e74697265207472616e7366657261626c652062616c616e63652066726f6d207468652063616c6c6572206163636f756e742e0059014e4f54453a20546869732066756e6374696f6e206f6e6c7920617474656d70747320746f207472616e73666572205f7472616e7366657261626c655f2062616c616e6365732e2054686973206d65616e7320746861746101616e79206c6f636b65642c2072657365727665642c206f72206578697374656e7469616c206465706f7369747320287768656e20606b6565705f616c6976656020697320607472756560292c2077696c6c206e6f742062655d017472616e7366657272656420627920746869732066756e6374696f6e2e20546f20656e73757265207468617420746869732066756e6374696f6e20726573756c747320696e2061206b696c6c6564206163636f756e742c4501796f75206d69676874206e65656420746f207072657061726520746865206163636f756e742062792072656d6f76696e6720616e79207265666572656e636520636f756e746572732c2073746f72616765406465706f736974732c206574632e2e2e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205369676e65642e00a02d206064657374603a2054686520726563697069656e74206f6620746865207472616e736665722e59012d20606b6565705f616c697665603a204120626f6f6c65616e20746f2064657465726d696e652069662074686520607472616e736665725f616c6c60206f7065726174696f6e2073686f756c642073656e6420616c6c4d0120206f66207468652066756e647320746865206163636f756e74206861732c2063617573696e67207468652073656e646572206163636f756e7420746f206265206b696c6c6564202866616c7365292c206f72590120207472616e736665722065766572797468696e6720657863657074206174206c6561737420746865206578697374656e7469616c206465706f7369742c2077686963682077696c6c2067756172616e74656520746fc820206b656570207468652073656e646572206163636f756e7420616c697665202874727565292e2023203c7765696768743e39012d204f2831292e204a757374206c696b65207472616e736665722c206275742072656164696e672074686520757365722773207472616e7366657261626c652062616c616e63652066697273742e302020233c2f7765696768743e3c666f7263655f756e7265736572766508010c77686f4d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365000118616d6f756e74180128543a3a42616c616e636500050cb0556e7265736572766520736f6d652062616c616e63652066726f6d2061207573657220627920666f7263652e006c43616e206f6e6c792062652063616c6c656420627920524f4f542e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e4d020c2873705f72756e74696d65306d756c746961646472657373304d756c74694164647265737308244163636f756e7449640100304163636f756e74496e6465780180011408496404000001244163636f756e74496400000014496e6465780400510201304163636f756e74496e6465780001000c526177040028011c5665633c75383e0002002441646472657373333204000401205b75383b2033325d0003002441646472657373323004000d0101205b75383b2032305d000400005102000006800055020c4470616c6c65745f617574686f72736869701870616c6c65741043616c6c040454000104287365745f756e636c65730401286e65775f756e636c6573590201385665633c543a3a4865616465723e0000046050726f76696465206120736574206f6620756e636c65732e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e59020000021d02005d02103870616c6c65745f7374616b696e671870616c6c65741870616c6c65741043616c6c04045400016410626f6e640c0128636f6e74726f6c6c65724d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500011476616c7565cc013042616c616e63654f663c543e00011470617965656102017c52657761726444657374696e6174696f6e3c543a3a4163636f756e7449643e000044610154616b6520746865206f726967696e206163636f756e74206173206120737461736820616e64206c6f636b207570206076616c756560206f66206974732062616c616e63652e2060636f6e74726f6c6c6572602077696c6c80626520746865206163636f756e74207468617420636f6e74726f6c732069742e002d016076616c756560206d757374206265206d6f7265207468616e2074686520606d696e696d756d5f62616c616e636560207370656369666965642062792060543a3a43757272656e6379602e002101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20627920746865207374617368206163636f756e742e003c456d6974732060426f6e646564602e2823203c7765696768743ed02d20496e646570656e64656e74206f662074686520617267756d656e74732e204d6f64657261746520636f6d706c65786974792e1c2d204f2831292e642d20546872656520657874726120444220656e74726965732e004d014e4f54453a2054776f206f66207468652073746f726167652077726974657320286053656c663a3a626f6e646564602c206053656c663a3a7061796565602920617265205f6e657665725f20636c65616e65643d01756e6c6573732074686520606f726967696e602066616c6c732062656c6f77205f6578697374656e7469616c206465706f7369745f20616e6420676574732072656d6f76656420617320647573742e482d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2c23203c2f7765696768743e28626f6e645f65787472610401386d61785f6164646974696f6e616ccc013042616c616e63654f663c543e00013c610141646420736f6d6520657874726120616d6f756e742074686174206861766520617070656172656420696e207468652073746173682060667265655f62616c616e63656020696e746f207468652062616c616e636520757030666f72207374616b696e672e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c65722e004d01557365207468697320696620746865726520617265206164646974696f6e616c2066756e647320696e20796f7572207374617368206163636f756e74207468617420796f75207769736820746f20626f6e642e5501556e6c696b65205b60626f6e64605d2853656c663a3a626f6e6429206f72205b60756e626f6e64605d2853656c663a3a756e626f6e642920746869732066756e6374696f6e20646f6573206e6f7420696d706f7365bc616e79206c696d69746174696f6e206f6e2074686520616d6f756e7420746861742063616e2062652061646465642e003c456d6974732060426f6e646564602e002823203c7765696768743ee42d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e1c2d204f2831292e2c23203c2f7765696768743e18756e626f6e6404011476616c7565cc013042616c616e63654f663c543e00024c51015363686564756c65206120706f7274696f6e206f662074686520737461736820746f20626520756e6c6f636b656420726561647920666f72207472616e73666572206f75742061667465722074686520626f6e64fc706572696f6420656e64732e2049662074686973206c656176657320616e20616d6f756e74206163746976656c7920626f6e646564206c657373207468616e2101543a3a43757272656e63793a3a6d696e696d756d5f62616c616e636528292c207468656e20697420697320696e6372656173656420746f207468652066756c6c20616d6f756e742e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0045014f6e63652074686520756e6c6f636b20706572696f6420697320646f6e652c20796f752063616e2063616c6c206077697468647261775f756e626f6e6465646020746f2061637475616c6c79206d6f7665bc7468652066756e6473206f7574206f66206d616e6167656d656e7420726561647920666f72207472616e736665722e0039014e6f206d6f7265207468616e2061206c696d69746564206e756d626572206f6620756e6c6f636b696e67206368756e6b73202873656520604d41585f554e4c4f434b494e475f4348554e4b536029390163616e20636f2d657869737473206174207468652073616d652074696d652e20496e207468617420636173652c205b6043616c6c3a3a77697468647261775f756e626f6e646564605d206e656564f8746f2062652063616c6c656420666972737420746f2072656d6f766520736f6d65206f6620746865206368756e6b732028696620706f737369626c65292e00390149662061207573657220656e636f756e74657273207468652060496e73756666696369656e74426f6e6460206572726f72207768656e2063616c6c696e6720746869732065787472696e7369632c1901746865792073686f756c642063616c6c20606368696c6c6020666972737420696e206f7264657220746f206672656520757020746865697220626f6e6465642066756e64732e0044456d6974732060556e626f6e646564602e009453656520616c736f205b6043616c6c3a3a77697468647261775f756e626f6e646564605d2e4477697468647261775f756e626f6e6465640401486e756d5f736c617368696e675f7370616e7310010c75333200033c290152656d6f766520616e7920756e6c6f636b6564206368756e6b732066726f6d207468652060756e6c6f636b696e67602071756575652066726f6d206f7572206d616e6167656d656e742e0031015468697320657373656e7469616c6c7920667265657320757020746861742062616c616e636520746f206265207573656420627920746865207374617368206163636f756e7420746f20646f4877686174657665722069742077616e74732e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722e0048456d697473206057697468647261776e602e006853656520616c736f205b6043616c6c3a3a756e626f6e64605d2e002823203c7765696768743e0501436f6d706c6578697479204f285329207768657265205320697320746865206e756d626572206f6620736c617368696e67207370616e7320746f2072656d6f766509014e4f54453a2057656967687420616e6e6f746174696f6e20697320746865206b696c6c207363656e6172696f2c20776520726566756e64206f74686572776973652e2c23203c2f7765696768743e2076616c696461746504011470726566736502013856616c696461746f725072656673000414e44465636c617265207468652064657369726520746f2076616c696461746520666f7220746865206f726967696e20636f6e74726f6c6c65722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e206e6f6d696e61746504011c746172676574736d0201a05665633c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653e00052c0d014465636c617265207468652064657369726520746f206e6f6d696e6174652060746172676574736020666f7220746865206f726967696e20636f6e74726f6c6c65722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e002823203c7765696768743e2d012d20546865207472616e73616374696f6e277320636f6d706c65786974792069732070726f706f7274696f6e616c20746f207468652073697a65206f662060746172676574736020284e29fc77686963682069732063617070656420617420436f6d7061637441737369676e6d656e74733a3a4c494d495420284d41585f4e4f4d494e4154494f4e53292ed42d20426f74682074686520726561647320616e642077726974657320666f6c6c6f7720612073696d696c6172207061747465726e2e2c23203c2f7765696768743e146368696c6c00062cc44465636c617265206e6f2064657369726520746f206569746865722076616c6964617465206f72206e6f6d696e6174652e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e002823203c7765696768743ee42d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e502d20436f6e7461696e73206f6e6520726561642ec42d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e2c23203c2f7765696768743e247365745f706179656504011470617965656102017c52657761726444657374696e6174696f6e3c543a3a4163636f756e7449643e000740b42852652d2973657420746865207061796d656e742074617267657420666f72206120636f6e74726f6c6c65722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e002823203c7765696768743ee42d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e942d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec42d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e242d2d2d2d2d2d2d2d2d382d205765696768743a204f283129302d204442205765696768743a48202020202d20526561643a204c656467657248202020202d2057726974653a2050617965652c23203c2f7765696768743e387365745f636f6e74726f6c6c6572040128636f6e74726f6c6c65724d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650008408c2852652d297365742074686520636f6e74726f6c6c6572206f6620612073746173682e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c65722e002823203c7765696768743ee42d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e942d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec42d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e282d2d2d2d2d2d2d2d2d2d305765696768743a204f283129284442205765696768743af02d20526561643a20426f6e6465642c204c6564676572204e657720436f6e74726f6c6c65722c204c6564676572204f6c6420436f6e74726f6c6c6572f42d2057726974653a20426f6e6465642c204c6564676572204e657720436f6e74726f6c6c65722c204c6564676572204f6c6420436f6e74726f6c6c65722c23203c2f7765696768743e4c7365745f76616c696461746f725f636f756e7404010c6e6577ad01010c75333200092090536574732074686520696465616c206e756d626572206f662076616c696461746f72732e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002823203c7765696768743e305765696768743a204f2831295857726974653a2056616c696461746f7220436f756e742c23203c2f7765696768743e60696e6372656173655f76616c696461746f725f636f756e740401286164646974696f6e616cad01010c753332000a1ca8496e6372656d656e74732074686520696465616c206e756d626572206f662076616c696461746f72732e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002823203c7765696768743e9853616d65206173205b6053656c663a3a7365745f76616c696461746f725f636f756e74605d2e2c23203c2f7765696768743e547363616c655f76616c696461746f725f636f756e74040118666163746f727102011c50657263656e74000b1cd05363616c652075702074686520696465616c206e756d626572206f662076616c696461746f7273206279206120666163746f722e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002823203c7765696768743e9853616d65206173205b6053656c663a3a7365745f76616c696461746f725f636f756e74605d2e2c23203c2f7765696768743e34666f7263655f6e6f5f65726173000c3cac466f72636520746865726520746f206265206e6f206e6577206572617320696e646566696e6974656c792e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002423205761726e696e6700190154686520656c656374696f6e2070726f6365737320737461727473206d756c7469706c6520626c6f636b73206265666f72652074686520656e64206f6620746865206572612e3901546875732074686520656c656374696f6e2070726f63657373206d6179206265206f6e676f696e67207768656e20746869732069732063616c6c65642e20496e2074686973206361736520746865dc656c656374696f6e2077696c6c20636f6e74696e756520756e74696c20746865206e65787420657261206973207472696767657265642e002823203c7765696768743e3c2d204e6f20617267756d656e74732e382d205765696768743a204f283129442d2057726974653a20466f7263654572612c23203c2f7765696768743e34666f7263655f6e65775f657261000d404901466f72636520746865726520746f2062652061206e6577206572612061742074686520656e64206f6620746865206e6578742073657373696f6e2e20416674657220746869732c2069742077696c6c2062659c726573657420746f206e6f726d616c20286e6f6e2d666f7263656429206265686176696f75722e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002423205761726e696e6700190154686520656c656374696f6e2070726f6365737320737461727473206d756c7469706c6520626c6f636b73206265666f72652074686520656e64206f6620746865206572612e4901496620746869732069732063616c6c6564206a757374206265666f72652061206e657720657261206973207472696767657265642c2074686520656c656374696f6e2070726f63657373206d6179206e6f748c6861766520656e6f75676820626c6f636b7320746f20676574206120726573756c742e002823203c7765696768743e3c2d204e6f20617267756d656e74732e382d205765696768743a204f283129402d20577269746520466f7263654572612c23203c2f7765696768743e447365745f696e76756c6e657261626c6573040134696e76756c6e657261626c6573dc01445665633c543a3a4163636f756e7449643e000e20c8536574207468652076616c696461746f72732077686f2063616e6e6f7420626520736c61736865642028696620616e79292e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002823203c7765696768743e182d204f285629582d2057726974653a20496e76756c6e657261626c65732c23203c2f7765696768743e34666f7263655f756e7374616b650801147374617368000130543a3a4163636f756e7449640001486e756d5f736c617368696e675f7370616e7310010c753332000f280901466f72636520612063757272656e74207374616b657220746f206265636f6d6520636f6d706c6574656c7920756e7374616b65642c20696d6d6564696174656c792e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002823203c7765696768743ee84f285329207768657265205320697320746865206e756d626572206f6620736c617368696e67207370616e7320746f2062652072656d6f766564b452656164733a20426f6e6465642c20536c617368696e67205370616e732c204163636f756e742c204c6f636b7345015772697465733a20426f6e6465642c20536c617368696e67205370616e73202869662053203e2030292c204c65646765722c2050617965652c2056616c696461746f72732c204e6f6d696e61746f72732ca44163636f756e742c204c6f636b732057726974657320456163683a205370616e536c617368202a20532c23203c2f7765696768743e50666f7263655f6e65775f6572615f616c776179730010380101466f72636520746865726520746f2062652061206e6577206572612061742074686520656e64206f662073657373696f6e7320696e646566696e6974656c792e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002423205761726e696e6700190154686520656c656374696f6e2070726f6365737320737461727473206d756c7469706c6520626c6f636b73206265666f72652074686520656e64206f6620746865206572612e4901496620746869732069732063616c6c6564206a757374206265666f72652061206e657720657261206973207472696767657265642c2074686520656c656374696f6e2070726f63657373206d6179206e6f748c6861766520656e6f75676820626c6f636b7320746f20676574206120726573756c742e002823203c7765696768743e382d205765696768743a204f283129442d2057726974653a20466f7263654572612c23203c2f7765696768743e5463616e63656c5f64656665727265645f736c61736808010c657261100120457261496e646578000134736c6173685f696e6469636573750201205665633c7533323e0011349443616e63656c20656e6163746d656e74206f66206120646566657272656420736c6173682e00b043616e2062652063616c6c6564206279207468652060543a3a536c61736843616e63656c4f726967696e602e000101506172616d65746572733a2065726120616e6420696e6469636573206f662074686520736c617368657320666f7220746861742065726120746f206b696c6c2e002823203c7765696768743e50436f6d706c65786974793a204f2855202b205329b477697468205520756e6170706c69656420736c6173686573207765696768746564207769746820553d31303030d0616e64205320697320746865206e756d626572206f6620736c61736820696e646963657320746f2062652063616e63656c65642e642d20526561643a20556e6170706c69656420536c6173686573682d2057726974653a20556e6170706c69656420536c61736865732c23203c2f7765696768743e387061796f75745f7374616b65727308013c76616c696461746f725f7374617368000130543a3a4163636f756e74496400010c657261100120457261496e6465780012540d01506179206f757420616c6c20746865207374616b65727320626568696e6420612073696e676c652076616c696461746f7220666f7220612073696e676c65206572612e0049012d206076616c696461746f725f73746173686020697320746865207374617368206163636f756e74206f66207468652076616c696461746f722e205468656972206e6f6d696e61746f72732c20757020746f2501202060543a3a4d61784e6f6d696e61746f72526577617264656450657256616c696461746f72602c2077696c6c20616c736f207265636569766520746865697220726577617264732e31012d206065726160206d617920626520616e7920657261206265747765656e20605b63757272656e745f657261202d20686973746f72795f64657074683b2063757272656e745f6572615d602e005501546865206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e20416e79206163636f756e742063616e2063616c6c20746869732066756e6374696f6e2c206576656e206966746974206973206e6f74206f6e65206f6620746865207374616b6572732e002823203c7765696768743efc2d2054696d6520636f6d706c65786974793a206174206d6f7374204f284d61784e6f6d696e61746f72526577617264656450657256616c696461746f72292ec02d20436f6e7461696e732061206c696d69746564206e756d626572206f6620726561647320616e64207772697465732e2c2d2d2d2d2d2d2d2d2d2d2d19014e20697320746865204e756d626572206f66207061796f75747320666f72207468652076616c696461746f722028696e636c7564696e67207468652076616c696461746f72291c5765696768743a842d205265776172642044657374696e6174696f6e205374616b65643a204f284e29c02d205265776172642044657374696e6174696f6e20436f6e74726f6c6c657220284372656174696e67293a204f284e29004d0120204e4f54453a20776569676874732061726520617373756d696e672074686174207061796f75747320617265206d61646520746f20616c697665207374617368206163636f756e7420285374616b6564292e55012020506179696e67206576656e2061206465616420636f6e74726f6c6c65722069732063686561706572207765696768742d776973652e20576520646f6e277420646f20616e7920726566756e647320686572652e2c23203c2f7765696768743e187265626f6e6404011476616c7565cc013042616c616e63654f663c543e001324dc5265626f6e64206120706f7274696f6e206f6620746865207374617368207363686564756c656420746f20626520756e6c6f636b65642e00d4546865206469737061746368206f726967696e206d757374206265207369676e65642062792074686520636f6e74726f6c6c65722e002823203c7765696768743ed02d2054696d6520636f6d706c65786974793a204f284c292c207768657265204c20697320756e6c6f636b696e67206368756e6b73902d20426f756e64656420627920604d41585f554e4c4f434b494e475f4348554e4b53602ef02d2053746f72616765206368616e6765733a2043616e277420696e6372656173652073746f726167652c206f6e6c792064656372656173652069742e2c23203c2f7765696768743e447365745f686973746f72795f64657074680801446e65775f686973746f72795f6465707468ad010120457261496e6465780001446572615f6974656d735f64656c65746564ad01010c7533320014582d015365742060486973746f72794465707468602076616c75652e20546869732066756e6374696f6e2077696c6c2064656c65746520616e7920686973746f727920696e666f726d6174696f6e7c7768656e2060486973746f727944657074686020697320726564756365642e002c506172616d65746572733a0d012d20606e65775f686973746f72795f6465707468603a20546865206e657720686973746f727920646570746820796f7520776f756c64206c696b6520746f207365742e59012d20606572615f6974656d735f64656c65746564603a20546865206e756d626572206f66206974656d7320746861742077696c6c2062652064656c6574656420627920746869732064697370617463682e20546869735d01202073686f756c64207265706f727420616c6c207468652073746f72616765206974656d7320746861742077696c6c2062652064656c6574656420627920636c656172696e67206f6c642065726120686973746f72792e590120204e656564656420746f207265706f727420616e2061636375726174652077656967687420666f72207468652064697370617463682e20547275737465642062792060526f6f746020746f207265706f727420616e4820206163637572617465206e756d6265722e00504f726967696e206d75737420626520726f6f742e002823203c7765696768743edc2d20453a204e756d626572206f6620686973746f7279206465707468732072656d6f7665642c20692e652e203130202d3e2037203d2033382d205765696768743a204f284529302d204442205765696768743a9c202020202d2052656164733a2043757272656e74204572612c20486973746f72792044657074686c202020202d205772697465733a20486973746f72792044657074682d01202020202d20436c6561722050726566697820456163683a20457261205374616b6572732c204572615374616b657273436c69707065642c204572617356616c696461746f7250726566732501202020202d2057726974657320456163683a204572617356616c696461746f725265776172642c2045726173526577617264506f696e74732c2045726173546f74616c5374616b652c6c20202020202045726173537461727453657373696f6e496e6465782c23203c2f7765696768743e28726561705f73746173680801147374617368000130543a3a4163636f756e7449640001486e756d5f736c617368696e675f7370616e7310010c7533320015405d0152656d6f766520616c6c20646174612073747275637475726520636f6e6365726e696e672061207374616b65722f7374617368206f6e6365206974732062616c616e636520697320617420746865206d696e696d756d2e5d015468697320697320657373656e7469616c6c79206571756976616c656e7420746f206077697468647261775f756e626f6e64656460206578636570742069742063616e2062652063616c6c656420627920616e796f6e65f4616e6420746865207461726765742060737461736860206d7573742068617665206e6f2066756e6473206c656674206265796f6e64207468652045442e008c546869732063616e2062652063616c6c65642066726f6d20616e79206f726967696e2e00fc2d20607374617368603a20546865207374617368206163636f756e7420746f20726561702e204974732062616c616e6365206d757374206265207a65726f2e002823203c7765696768743e2101436f6d706c65786974793a204f285329207768657265205320697320746865206e756d626572206f6620736c617368696e67207370616e73206f6e20746865206163636f756e742e284442205765696768743ad42d2052656164733a205374617368204163636f756e742c20426f6e6465642c20536c617368696e67205370616e732c204c6f636b734d012d205772697465733a20426f6e6465642c20536c617368696e67205370616e73202869662053203e2030292c204c65646765722c2050617965652c2056616c696461746f72732c204e6f6d696e61746f72732c5820205374617368204163636f756e742c204c6f636b73702d2057726974657320456163683a205370616e536c617368202a20532c23203c2f7765696768743e106b69636b04010c77686f6d0201a05665633c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653e00162ce052656d6f76652074686520676976656e206e6f6d696e6174696f6e732066726f6d207468652063616c6c696e672076616c696461746f722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e004d012d206077686f603a2041206c697374206f66206e6f6d696e61746f72207374617368206163636f756e74732077686f20617265206e6f6d696e6174696e6720746869732076616c696461746f72207768696368c0202073686f756c64206e6f206c6f6e676572206265206e6f6d696e6174696e6720746869732076616c696461746f722e0055014e6f74653a204d616b696e6720746869732063616c6c206f6e6c79206d616b65732073656e736520696620796f7520666972737420736574207468652076616c696461746f7220707265666572656e63657320746f78626c6f636b20616e792066757274686572206e6f6d696e6174696f6e732e487365745f7374616b696e675f6c696d6974731401486d696e5f6e6f6d696e61746f725f626f6e6418013042616c616e63654f663c543e0001486d696e5f76616c696461746f725f626f6e6418013042616c616e63654f663c543e00014c6d61785f6e6f6d696e61746f725f636f756e747902012c4f7074696f6e3c7533323e00014c6d61785f76616c696461746f725f636f756e747902012c4f7074696f6e3c7533323e0001247468726573686f6c647d02013c4f7074696f6e3c50657263656e743e001734b85570646174652074686520766172696f7573207374616b696e67206c696d69747320746869732070616c6c65742e0025012a20606d696e5f6e6f6d696e61746f725f626f6e64603a20546865206d696e696d756d2061637469766520626f6e64206e656564656420746f2062652061206e6f6d696e61746f722e25012a20606d696e5f76616c696461746f725f626f6e64603a20546865206d696e696d756d2061637469766520626f6e64206e656564656420746f20626520612076616c696461746f722e55012a20606d61785f6e6f6d696e61746f725f636f756e74603a20546865206d6178206e756d626572206f662075736572732077686f2063616e2062652061206e6f6d696e61746f72206174206f6e63652e205768656e98202073657420746f20604e6f6e65602c206e6f206c696d697420697320656e666f726365642e55012a20606d61785f76616c696461746f725f636f756e74603a20546865206d6178206e756d626572206f662075736572732077686f2063616e20626520612076616c696461746f72206174206f6e63652e205768656e98202073657420746f20604e6f6e65602c206e6f206c696d697420697320656e666f726365642e00a84f726967696e206d75737420626520526f6f7420746f2063616c6c20746869732066756e6374696f6e2e0035014e4f54453a204578697374696e67206e6f6d696e61746f727320616e642076616c696461746f72732077696c6c206e6f742062652061666665637465642062792074686973207570646174652e1101746f206b69636b2070656f706c6520756e64657220746865206e6577206c696d6974732c20606368696c6c5f6f74686572602073686f756c642062652063616c6c65642e2c6368696c6c5f6f74686572040128636f6e74726f6c6c6572000130543a3a4163636f756e74496400185441014465636c61726520612060636f6e74726f6c6c65726020746f2073746f702070617274696369706174696e672061732065697468657220612076616c696461746f72206f72206e6f6d696e61746f722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e004101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2c206275742063616e2062652063616c6c656420627920616e796f6e652e0059014966207468652063616c6c6572206973207468652073616d652061732074686520636f6e74726f6c6c6572206265696e672074617267657465642c207468656e206e6f206675727468657220636865636b7320617265d8656e666f726365642c20616e6420746869732066756e6374696f6e2062656861766573206a757374206c696b6520606368696c6c602e005d014966207468652063616c6c657220697320646966666572656e74207468616e2074686520636f6e74726f6c6c6572206265696e672074617267657465642c2074686520666f6c6c6f77696e6720636f6e646974696f6e73306d757374206265206d65743a3d012a204120604368696c6c5468726573686f6c6460206d7573742062652073657420616e6420636865636b656420776869636820646566696e657320686f7720636c6f736520746f20746865206d6178550120206e6f6d696e61746f7273206f722076616c696461746f7273207765206d757374207265616368206265666f72652075736572732063616e207374617274206368696c6c696e67206f6e652d616e6f746865722e59012a204120604d61784e6f6d696e61746f72436f756e746020616e6420604d617856616c696461746f72436f756e7460206d75737420626520736574207768696368206973207573656420746f2064657465726d696e65902020686f7720636c6f73652077652061726520746f20746865207468726573686f6c642e5d012a204120604d696e4e6f6d696e61746f72426f6e646020616e6420604d696e56616c696461746f72426f6e6460206d7573742062652073657420616e6420636865636b65642c2077686963682064657465726d696e65735101202069662074686973206973206120706572736f6e20746861742073686f756c64206265206368696c6c6564206265636175736520746865792068617665206e6f74206d657420746865207468726573686f6c64402020626f6e642072657175697265642e005501546869732063616e2062652068656c7066756c20696620626f6e6420726571756972656d656e74732061726520757064617465642c20616e64207765206e65656420746f2072656d6f7665206f6c642075736572739877686f20646f206e6f74207361746973667920746865736520726571756972656d656e74732e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e6102083870616c6c65745f7374616b696e674452657761726444657374696e6174696f6e04244163636f756e74496401000114185374616b656400000014537461736800010028436f6e74726f6c6c65720002001c4163636f756e7404000001244163636f756e744964000300104e6f6e65000400006502083870616c6c65745f7374616b696e673856616c696461746f7250726566730000080128636f6d6d697373696f6e6902011c50657262696c6c00011c626c6f636b6564e80110626f6f6c00006902000006b901006d020000024d020071020c3473705f61726974686d65746963287065725f7468696e67731c50657263656e74000004000801087538000075020000021000790204184f7074696f6e04045401100108104e6f6e6500000010536f6d6504001000000100007d0204184f7074696f6e0404540171020108104e6f6e6500000010536f6d6504007102000001000081020c3870616c6c65745f73657373696f6e1870616c6c65741043616c6c040454000108207365745f6b6579730801106b6579738502011c543a3a4b65797300011470726f6f6628011c5665633c75383e000038e453657473207468652073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c657220746f20606b657973602e1d01416c6c6f777320616e206163636f756e7420746f20736574206974732073657373696f6e206b6579207072696f7220746f206265636f6d696e6720612076616c696461746f722ec05468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e00d0546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265207369676e65642e002823203c7765696768743e11012d20436f6d706c65786974793a20604f283129602e2041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f6698202060543a3a4b6579733a3a6b65795f6964732829602077686963682069732066697865642eec2d20446252656164733a20606f726967696e206163636f756e74602c2060543a3a56616c696461746f7249644f66602c20604e6578744b65797360a02d2044625772697465733a20606f726967696e206163636f756e74602c20604e6578744b65797360802d204462526561647320706572206b65792069643a20604b65794f776e657260842d20446257726974657320706572206b65792069643a20604b65794f776e6572602c23203c2f7765696768743e2870757267655f6b657973000130c852656d6f76657320616e792073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c65722ec05468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e00d0546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265207369676e65642e002823203c7765696768743e61012d20436f6d706c65786974793a20604f2831296020696e206e756d626572206f66206b65792074797065732e2041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468a420206f662060543a3a4b6579733a3a6b65795f6964732829602077686963682069732066697865642eec2d20446252656164733a2060543a3a56616c696461746f7249644f66602c20604e6578744b657973602c20606f726967696e206163636f756e7460a02d2044625772697465733a20604e6578744b657973602c20606f726967696e206163636f756e7460842d20446257726974657320706572206b65792069643a20604b65794f776e6572602c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e85020840706f6c6b61646f745f72756e74696d652c53657373696f6e4b657973000018011c6772616e647061ac01d03c4772616e647061206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c696300011062616265250201c43c42616265206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c6963000124696d5f6f6e6c696e65b801d43c496d4f6e6c696e65206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c6963000138706172615f76616c696461746f72890201e03c496e697469616c697a6572206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c696300013c706172615f61737369676e6d656e748d0201f03c5061726153657373696f6e496e666f206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c696300014c617574686f726974795f646973636f76657279910201fc3c417574686f72697479446973636f76657279206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c696300008902104c706f6c6b61646f745f7072696d6974697665730876303476616c696461746f725f617070185075626c696300000400bc013c737232353531393a3a5075626c696300008d02104c706f6c6b61646f745f7072696d6974697665730876313861737369676e6d656e745f617070185075626c696300000400bc013c737232353531393a3a5075626c6963000091020c5873705f617574686f726974795f646973636f766572790c617070185075626c696300000400bc013c737232353531393a3a5075626c6963000095020c3870616c6c65745f6772616e6470611870616c6c65741043616c6c04045400010c4c7265706f72745f65717569766f636174696f6e08014865717569766f636174696f6e5f70726f6f66990201bc426f783c45717569766f636174696f6e50726f6f663c543a3a486173682c20543a3a426c6f636b4e756d6265723e3e00013c6b65795f6f776e65725f70726f6f662d020140543a3a4b65794f776e657250726f6f6600001009015265706f727420766f7465722065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667920746865f465717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66f8616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63654477696c6c206265207265706f727465642e707265706f72745f65717569766f636174696f6e5f756e7369676e656408014865717569766f636174696f6e5f70726f6f66990201bc426f783c45717569766f636174696f6e50726f6f663c543a3a486173682c20543a3a426c6f636b4e756d6265723e3e00013c6b65795f6f776e65725f70726f6f662d020140543a3a4b65794f776e657250726f6f6600012409015265706f727420766f7465722065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667920746865f465717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66f8616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63654477696c6c206265207265706f727465642e000d01546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c791501626c6f636b20617574686f72732077696c6c2063616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c2061732073756368150169662074686520626c6f636b20617574686f7220697320646566696e65642069742077696c6c20626520646566696e6564206173207468652065717569766f636174696f6e247265706f727465722e306e6f74655f7374616c6c656408011464656c6179100138543a3a426c6f636b4e756d62657200016c626573745f66696e616c697a65645f626c6f636b5f6e756d626572100138543a3a426c6f636b4e756d62657200021c19014e6f74652074686174207468652063757272656e7420617574686f7269747920736574206f6620746865204752414e4450412066696e616c697479206761646765742068617325017374616c6c65642e20546869732077696c6c2074726967676572206120666f7263656420617574686f7269747920736574206368616e67652061742074686520626567696e6e696e671d016f6620746865206e6578742073657373696f6e2c20746f20626520656e6163746564206064656c61796020626c6f636b7320616674657220746861742e205468652064656c6179110173686f756c64206265206869676820656e6f75676820746f20736166656c7920617373756d6520746861742074686520626c6f636b207369676e616c6c696e67207468652501666f72636564206368616e67652077696c6c206e6f742062652072652d6f726765642028652e672e203130303020626c6f636b73292e20546865204752414e44504120766f74657273250177696c6c20737461727420746865206e657720617574686f7269747920736574207573696e672074686520676976656e2066696e616c697a656420626c6f636b20617320626173652e584f6e6c792063616c6c61626c6520627920726f6f742e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e9902084c73705f66696e616c6974795f6772616e6470614445717569766f636174696f6e50726f6f660804480124044e0110000801187365745f6964200114536574496400013065717569766f636174696f6e9d02014845717569766f636174696f6e3c482c204e3e00009d02084c73705f66696e616c6974795f6772616e6470613045717569766f636174696f6e0804480124044e011001081c507265766f74650400a1020139016772616e6470613a3a45717569766f636174696f6e3c417574686f7269747949642c206772616e6470613a3a507265766f74653c482c204e3e2c0a417574686f726974795369676e61747572653e00000024507265636f6d6d69740400b5020141016772616e6470613a3a45717569766f636174696f6e3c417574686f7269747949642c206772616e6470613a3a507265636f6d6d69743c482c204e3e2c0a417574686f726974795369676e61747572653e00010000a102084066696e616c6974795f6772616e6470613045717569766f636174696f6e0c08496401ac045601a502045301a90200100130726f756e645f6e756d62657220010c7536340001206964656e74697479ac010849640001146669727374b102011828562c2053290001187365636f6e64b102011828562c2053290000a502084066696e616c6974795f6772616e6470611c507265766f74650804480124044e01100008012c7461726765745f68617368240104480001347461726765745f6e756d6265721001044e0000a9020c4c73705f66696e616c6974795f6772616e6470610c617070245369676e617475726500000400ad020148656432353531393a3a5369676e61747572650000ad020c1c73705f636f72651c65643235353139245369676e617475726500000400610101205b75383b2036345d0000b10200000408a502a90200b502084066696e616c6974795f6772616e6470613045717569766f636174696f6e0c08496401ac045601b902045301a90200100130726f756e645f6e756d62657220010c7536340001206964656e74697479ac010849640001146669727374bd02011828562c2053290001187365636f6e64bd02011828562c2053290000b902084066696e616c6974795f6772616e64706124507265636f6d6d69740804480124044e01100008012c7461726765745f68617368240104480001347461726765745f6e756d6265721001044e0000bd0200000408b902a90200c1020c4070616c6c65745f696d5f6f6e6c696e651870616c6c65741043616c6c04045400010424686561727462656174080124686561727462656174c50201644865617274626561743c543a3a426c6f636b4e756d6265723e0001247369676e6174757265d90201bc3c543a3a417574686f7269747949642061732052756e74696d654170705075626c69633e3a3a5369676e61747572650000242823203c7765696768743e61012d20436f6d706c65786974793a20604f284b202b20452960207768657265204b206973206c656e677468206f6620604b6579736020286865617274626561742e76616c696461746f72735f6c656e2920616e642045206973d820206c656e677468206f6620606865617274626561742e6e6574776f726b5f73746174652e65787465726e616c5f61646472657373608820202d20604f284b29603a206465636f64696e67206f66206c656e67746820604b60ac20202d20604f284529603a206465636f64696e672f656e636f64696e67206f66206c656e6774682060456039012d20446252656164733a2070616c6c65745f73657373696f6e206056616c696461746f7273602c2070616c6c65745f73657373696f6e206043757272656e74496e646578602c20604b657973602c5820206052656365697665644865617274626561747360802d2044625772697465733a2060526563656976656448656172746265617473602c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ec502084070616c6c65745f696d5f6f6e6c696e6524486561727462656174042c426c6f636b4e756d626572011000140130626c6f636b5f6e756d62657210012c426c6f636b4e756d6265720001346e6574776f726b5f7374617465c90201484f70617175654e6574776f726b537461746500013473657373696f6e5f696e64657810013053657373696f6e496e64657800013c617574686f726974795f696e64657810012441757468496e64657800013876616c696461746f72735f6c656e10010c7533320000c9020c1c73705f636f7265206f6666636861696e484f70617175654e6574776f726b5374617465000008011c706565725f6964cd0201304f706171756550656572496400014865787465726e616c5f616464726573736573d10201505665633c4f70617175654d756c7469616464723e0000cd02081c73705f636f7265304f70617175655065657249640000040028011c5665633c75383e0000d102000002d50200d5020c1c73705f636f7265206f6666636861696e3c4f70617175654d756c7469616464720000040028011c5665633c75383e0000d902104070616c6c65745f696d5f6f6e6c696e651c737232353531392c6170705f73723235353139245369676e6174757265000004005d010148737232353531393a3a5369676e61747572650000dd020c4070616c6c65745f64656d6f63726163791870616c6c65741043616c6c0404540001641c70726f706f736508013470726f706f73616c5f6861736824011c543a3a4861736800011476616c7565cc013042616c616e63654f663c543e00002c9c50726f706f736520612073656e73697469766520616374696f6e20746f2062652074616b656e2e001501546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737480686176652066756e647320746f20636f76657220746865206465706f7369742e00d42d206070726f706f73616c5f68617368603a205468652068617368206f66207468652070726f706f73616c20707265696d6167652e15012d206076616c7565603a2054686520616d6f756e74206f66206465706f73697420286d757374206265206174206c6561737420604d696e696d756d4465706f73697460292e0044456d697473206050726f706f736564602e00385765696768743a20604f28702960187365636f6e6408012070726f706f73616cad01012450726f70496e64657800014c7365636f6e64735f75707065725f626f756e64ad01010c753332000128b45369676e616c732061677265656d656e742077697468206120706172746963756c61722070726f706f73616c2e000101546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e64657211016d75737420686176652066756e647320746f20636f76657220746865206465706f7369742c20657175616c20746f20746865206f726967696e616c206465706f7369742e00c82d206070726f706f73616c603a2054686520696e646578206f66207468652070726f706f73616c20746f207365636f6e642e41012d20607365636f6e64735f75707065725f626f756e64603a20616e20757070657220626f756e64206f6e207468652063757272656e74206e756d626572206f66207365636f6e6473206f6e20746869732501202070726f706f73616c2e2045787472696e736963206973207765696768746564206163636f7264696e6720746f20746869732076616c75652077697468206e6f20726566756e642e001d015765696768743a20604f28532960207768657265205320697320746865206e756d626572206f66207365636f6e647320612070726f706f73616c20616c7265616479206861732e10766f74650801247265665f696e646578ad01013c5265666572656e64756d496e646578000110766f7465e10201644163636f756e74566f74653c42616c616e63654f663c543e3e0002243101566f746520696e2061207265666572656e64756d2e2049662060766f74652e69735f6179652829602c2074686520766f746520697320746f20656e616374207468652070726f706f73616c3bb86f7468657277697365206974206973206120766f746520746f206b65657020746865207374617475732071756f2e00c8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00dc2d20607265665f696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f20766f746520666f722e842d2060766f7465603a2054686520766f746520636f6e66696775726174696f6e2e002d015765696768743a20604f28522960207768657265205220697320746865206e756d626572206f66207265666572656e64756d732074686520766f7465722068617320766f746564206f6e2e40656d657267656e63795f63616e63656c0401247265665f696e64657810013c5265666572656e64756d496e6465780003204d015363686564756c6520616e20656d657267656e63792063616e63656c6c6174696f6e206f662061207265666572656e64756d2e2043616e6e6f742068617070656e20747769636520746f207468652073616d652c7265666572656e64756d2e00f8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265206043616e63656c6c6174696f6e4f726967696e602e00d02d607265665f696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f2063616e63656c2e003c5765696768743a20604f283129602e4065787465726e616c5f70726f706f736504013470726f706f73616c5f6861736824011c543a3a486173680004242d015363686564756c652061207265666572656e64756d20746f206265207461626c6564206f6e6365206974206973206c6567616c20746f207363686564756c6520616e2065787465726e616c2c7265666572656e64756d2e00e8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265206045787465726e616c4f726967696e602e00d42d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f66207468652070726f706f73616c2e0015015765696768743a20604f2856296020776974682056206e756d626572206f66207665746f65727320696e2074686520626c61636b6c697374206f662070726f706f73616c2eb820204465636f64696e6720766563206f66206c656e67746820562e2043686172676564206173206d6178696d756d6465787465726e616c5f70726f706f73655f6d616a6f7269747904013470726f706f73616c5f6861736824011c543a3a4861736800052c55015363686564756c652061206d616a6f726974792d63617272696573207265666572656e64756d20746f206265207461626c6564206e657874206f6e6365206974206973206c6567616c20746f207363686564756c655c616e2065787465726e616c207265666572656e64756d2e00ec546865206469737061746368206f6620746869732063616c6c206d757374206265206045787465726e616c4d616a6f726974794f726967696e602e00d42d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f66207468652070726f706f73616c2e004901556e6c696b65206065787465726e616c5f70726f706f7365602c20626c61636b6c697374696e6720686173206e6f20656666656374206f6e207468697320616e64206974206d6179207265706c6163652061987072652d7363686564756c6564206065787465726e616c5f70726f706f7365602063616c6c2e00385765696768743a20604f283129606065787465726e616c5f70726f706f73655f64656661756c7404013470726f706f73616c5f6861736824011c543a3a4861736800062c45015363686564756c652061206e656761746976652d7475726e6f75742d62696173207265666572656e64756d20746f206265207461626c6564206e657874206f6e6365206974206973206c6567616c20746f807363686564756c6520616e2065787465726e616c207265666572656e64756d2e00e8546865206469737061746368206f6620746869732063616c6c206d757374206265206045787465726e616c44656661756c744f726967696e602e00d42d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f66207468652070726f706f73616c2e004901556e6c696b65206065787465726e616c5f70726f706f7365602c20626c61636b6c697374696e6720686173206e6f20656666656374206f6e207468697320616e64206974206d6179207265706c6163652061987072652d7363686564756c6564206065787465726e616c5f70726f706f7365602063616c6c2e00385765696768743a20604f2831296028666173745f747261636b0c013470726f706f73616c5f6861736824011c543a3a48617368000134766f74696e675f706572696f64100138543a3a426c6f636b4e756d62657200011464656c6179100138543a3a426c6f636b4e756d62657200073c4d015363686564756c65207468652063757272656e746c792065787465726e616c6c792d70726f706f736564206d616a6f726974792d63617272696573207265666572656e64756d20746f206265207461626c65646101696d6d6564696174656c792e204966207468657265206973206e6f2065787465726e616c6c792d70726f706f736564207265666572656e64756d2063757272656e746c792c206f72206966207468657265206973206f6e65e8627574206974206973206e6f742061206d616a6f726974792d63617272696573207265666572656e64756d207468656e206974206661696c732e00d0546865206469737061746368206f6620746869732063616c6c206d757374206265206046617374547261636b4f726967696e602e00f42d206070726f706f73616c5f68617368603a205468652068617368206f66207468652063757272656e742065787465726e616c2070726f706f73616c2e5d012d2060766f74696e675f706572696f64603a2054686520706572696f64207468617420697320616c6c6f77656420666f7220766f74696e67206f6e20746869732070726f706f73616c2e20496e6372656173656420746f9420206046617374547261636b566f74696e67506572696f646020696620746f6f206c6f772e51012d206064656c6179603a20546865206e756d626572206f6620626c6f636b20616674657220766f74696e672068617320656e64656420696e20617070726f76616c20616e6420746869732073686f756c64206265b82020656e61637465642e205468697320646f65736e277420686176652061206d696e696d756d20616d6f756e742e0040456d697473206053746172746564602e00385765696768743a20604f28312960347665746f5f65787465726e616c04013470726f706f73616c5f6861736824011c543a3a48617368000824b85665746f20616e6420626c61636b6c697374207468652065787465726e616c2070726f706f73616c20686173682e00d8546865206469737061746368206f726967696e206f6620746869732063616c6c206d75737420626520605665746f4f726967696e602e002d012d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f66207468652070726f706f73616c20746f207665746f20616e6420626c61636b6c6973742e003c456d69747320605665746f6564602e00fc5765696768743a20604f2856202b206c6f6728562929602077686572652056206973206e756d626572206f6620606578697374696e67207665746f657273604463616e63656c5f7265666572656e64756d0401247265665f696e646578ad01013c5265666572656e64756d496e64657800091c5052656d6f76652061207265666572656e64756d2e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f526f6f745f2e00d42d20607265665f696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f2063616e63656c2e004423205765696768743a20604f283129602e3463616e63656c5f717565756564040114776869636810013c5265666572656e64756d496e646578000a1c9c43616e63656c20612070726f706f73616c2071756575656420666f7220656e6163746d656e742e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f526f6f745f2e00c42d20607768696368603a2054686520696e646578206f6620746865207265666572656e64756d20746f2063616e63656c2e0049015765696768743a20604f284429602077686572652060446020697320746865206974656d7320696e207468652064697370617463682071756575652e205765696768746564206173206044203d203130602e2064656c65676174650c0108746f000130543a3a4163636f756e744964000128636f6e76696374696f6ee9020128436f6e76696374696f6e00011c62616c616e636518013042616c616e63654f663c543e000b50390144656c65676174652074686520766f74696e6720706f77657220287769746820736f6d6520676976656e20636f6e76696374696f6e29206f66207468652073656e64696e67206163636f756e742e0055015468652062616c616e63652064656c656761746564206973206c6f636b656420666f72206173206c6f6e6720617320697427732064656c6567617465642c20616e64207468657265616674657220666f7220746865c874696d6520617070726f70726961746520666f722074686520636f6e76696374696f6e2773206c6f636b20706572696f642e005d01546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2c20616e6420746865207369676e696e67206163636f756e74206d757374206569746865723a7420202d2062652064656c65676174696e6720616c72656164793b206f72590120202d2068617665206e6f20766f74696e67206163746976697479202869662074686572652069732c207468656e2069742077696c6c206e65656420746f2062652072656d6f7665642f636f6e736f6c69646174656494202020207468726f7567682060726561705f766f746560206f722060756e766f746560292e0045012d2060746f603a20546865206163636f756e742077686f736520766f74696e6720746865206074617267657460206163636f756e74277320766f74696e6720706f7765722077696c6c20666f6c6c6f772e55012d2060636f6e76696374696f6e603a2054686520636f6e76696374696f6e20746861742077696c6c20626520617474616368656420746f207468652064656c65676174656420766f7465732e205768656e20746865410120206163636f756e7420697320756e64656c6567617465642c207468652066756e64732077696c6c206265206c6f636b656420666f722074686520636f72726573706f6e64696e6720706572696f642e61012d206062616c616e6365603a2054686520616d6f756e74206f6620746865206163636f756e7427732062616c616e636520746f206265207573656420696e2064656c65676174696e672e2054686973206d757374206e6f74b420206265206d6f7265207468616e20746865206163636f756e7427732063757272656e742062616c616e63652e0048456d697473206044656c656761746564602e003d015765696768743a20604f28522960207768657265205220697320746865206e756d626572206f66207265666572656e64756d732074686520766f7465722064656c65676174696e6720746f20686173c82020766f746564206f6e2e205765696768742069732063686172676564206173206966206d6178696d756d20766f7465732e28756e64656c6567617465000c30cc556e64656c65676174652074686520766f74696e6720706f776572206f66207468652073656e64696e67206163636f756e742e005d01546f6b656e73206d617920626520756e6c6f636b656420666f6c6c6f77696e67206f6e636520616e20616d6f756e74206f662074696d6520636f6e73697374656e74207769746820746865206c6f636b20706572696f64dc6f662074686520636f6e76696374696f6e2077697468207768696368207468652064656c65676174696f6e20776173206973737565642e004501546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d7573742062655463757272656e746c792064656c65676174696e672e0050456d6974732060556e64656c656761746564602e003d015765696768743a20604f28522960207768657265205220697320746865206e756d626572206f66207265666572656e64756d732074686520766f7465722064656c65676174696e6720746f20686173c82020766f746564206f6e2e205765696768742069732063686172676564206173206966206d6178696d756d20766f7465732e58636c6561725f7075626c69635f70726f706f73616c73000d1470436c6561727320616c6c207075626c69632070726f706f73616c732e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f526f6f745f2e003c5765696768743a20604f283129602e346e6f74655f707265696d616765040140656e636f6465645f70726f706f73616c28011c5665633c75383e000e285d0152656769737465722074686520707265696d61676520666f7220616e207570636f6d696e672070726f706f73616c2e205468697320646f65736e27742072657175697265207468652070726f706f73616c20746f2062652101696e207468652064697370617463682071756575652062757420646f657320726571756972652061206465706f7369742c2072657475726e6564206f6e636520656e61637465642e00c8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00c42d2060656e636f6465645f70726f706f73616c603a2054686520707265696d616765206f6620612070726f706f73616c2e0058456d6974732060507265696d6167654e6f746564602e004d015765696768743a20604f28452960207769746820452073697a65206f662060656e636f6465645f70726f706f73616c60202870726f7465637465642062792061207265717569726564206465706f736974292e646e6f74655f707265696d6167655f6f7065726174696f6e616c040140656e636f6465645f70726f706f73616c28011c5665633c75383e000f04090153616d6520617320606e6f74655f707265696d6167656020627574206f726967696e20697320604f7065726174696f6e616c507265696d6167654f726967696e602e586e6f74655f696d6d696e656e745f707265696d616765040140656e636f6465645f70726f706f73616c28011c5665633c75383e001030410152656769737465722074686520707265696d61676520666f7220616e207570636f6d696e672070726f706f73616c2e2054686973207265717569726573207468652070726f706f73616c20746f2062653d01696e207468652064697370617463682071756575652e204e6f206465706f736974206973206e65656465642e205768656e20746869732063616c6c206973207375636365737366756c2c20692e652e350174686520707265696d61676520686173206e6f74206265656e2075706c6f61646564206265666f726520616e64206d61746368657320736f6d6520696d6d696e656e742070726f706f73616c2c3c6e6f2066656520697320706169642e00c8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00c42d2060656e636f6465645f70726f706f73616c603a2054686520707265696d616765206f6620612070726f706f73616c2e0058456d6974732060507265696d6167654e6f746564602e004d015765696768743a20604f28452960207769746820452073697a65206f662060656e636f6465645f70726f706f73616c60202870726f7465637465642062792061207265717569726564206465706f736974292e886e6f74655f696d6d696e656e745f707265696d6167655f6f7065726174696f6e616c040140656e636f6465645f70726f706f73616c28011c5665633c75383e0011042d0153616d6520617320606e6f74655f696d6d696e656e745f707265696d6167656020627574206f726967696e20697320604f7065726174696f6e616c507265696d6167654f726967696e602e34726561705f707265696d61676508013470726f706f73616c5f6861736824011c543a3a4861736800016070726f706f73616c5f6c656e5f75707065725f626f756e64ad01010c75333200123cf052656d6f766520616e20657870697265642070726f706f73616c20707265696d61676520616e6420636f6c6c65637420746865206465706f7369742e00c8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00cc2d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f6620612070726f706f73616c2e5d012d206070726f706f73616c5f6c656e6774685f75707065725f626f756e64603a20616e20757070657220626f756e64206f6e206c656e677468206f66207468652070726f706f73616c2e2045787472696e736963206973c820207765696768746564206163636f7264696e6720746f20746869732076616c75652077697468206e6f20726566756e642e004d01546869732077696c6c206f6e6c7920776f726b2061667465722060566f74696e67506572696f646020626c6f636b732066726f6d207468652074696d6520746861742074686520707265696d6167652077617359016e6f7465642c2069662069742773207468652073616d65206163636f756e7420646f696e672069742e2049662069742773206120646966666572656e74206163636f756e742c207468656e206974276c6c206f6e6c79ac776f726b20616e206164646974696f6e616c2060456e6163746d656e74506572696f6460206c617465722e005c456d6974732060507265696d616765526561706564602e00b45765696768743a20604f284429602077686572652044206973206c656e677468206f662070726f706f73616c2e18756e6c6f636b040118746172676574000130543a3a4163636f756e74496400131ca0556e6c6f636b20746f6b656e732074686174206861766520616e2065787069726564206c6f636b2e00c8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00b82d2060746172676574603a20546865206163636f756e7420746f2072656d6f766520746865206c6f636b206f6e2e00bc5765696768743a20604f2852296020776974682052206e756d626572206f6620766f7465206f66207461726765742e2c72656d6f76655f766f7465040114696e64657810013c5265666572656e64756d496e64657800146c7c52656d6f7665206120766f746520666f722061207265666572656e64756d2e000c49663a882d20746865207265666572656e64756d207761732063616e63656c6c65642c206f727c2d20746865207265666572656e64756d206973206f6e676f696e672c206f72902d20746865207265666572656e64756d2068617320656e64656420737563682074686174fc20202d2074686520766f7465206f6620746865206163636f756e742077617320696e206f70706f736974696f6e20746f2074686520726573756c743b206f72d420202d20746865726520776173206e6f20636f6e76696374696f6e20746f20746865206163636f756e74277320766f74653b206f728420202d20746865206163636f756e74206d61646520612073706c697420766f74655d012e2e2e7468656e2074686520766f74652069732072656d6f76656420636c65616e6c7920616e64206120666f6c6c6f77696e672063616c6c20746f2060756e6c6f636b60206d617920726573756c7420696e206d6f72655866756e6473206265696e6720617661696c61626c652e00a849662c20686f77657665722c20746865207265666572656e64756d2068617320656e64656420616e643aec2d2069742066696e697368656420636f72726573706f6e64696e6720746f2074686520766f7465206f6620746865206163636f756e742c20616e64dc2d20746865206163636f756e74206d6164652061207374616e6461726420766f7465207769746820636f6e76696374696f6e2c20616e64bc2d20746865206c6f636b20706572696f64206f662074686520636f6e76696374696f6e206973206e6f74206f76657259012e2e2e7468656e20746865206c6f636b2077696c6c206265206167677265676174656420696e746f20746865206f766572616c6c206163636f756e742773206c6f636b2c207768696368206d617920696e766f6c766559012a6f7665726c6f636b696e672a20287768657265207468652074776f206c6f636b732061726520636f6d62696e656420696e746f20612073696e676c65206c6f636b207468617420697320746865206d6178696d756de46f6620626f74682074686520616d6f756e74206c6f636b656420616e64207468652074696d65206973206974206c6f636b656420666f72292e004901546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2c20616e6420746865207369676e6572206d7573742068617665206120766f7465887265676973746572656420666f72207265666572656e64756d2060696e646578602e00f42d2060696e646578603a2054686520696e646578206f66207265666572656e64756d206f662074686520766f746520746f2062652072656d6f7665642e0055015765696768743a20604f2852202b206c6f6720522960207768657265205220697320746865206e756d626572206f66207265666572656e646120746861742060746172676574602068617320766f746564206f6e2ed820205765696768742069732063616c63756c6174656420666f7220746865206d6178696d756d206e756d626572206f6620766f74652e4472656d6f76655f6f746865725f766f7465080118746172676574000130543a3a4163636f756e744964000114696e64657810013c5265666572656e64756d496e64657800153c7c52656d6f7665206120766f746520666f722061207265666572656e64756d2e004d0149662074686520607461726765746020697320657175616c20746f20746865207369676e65722c207468656e20746869732066756e6374696f6e2069732065786163746c79206571756976616c656e7420746f2d016072656d6f76655f766f7465602e204966206e6f7420657175616c20746f20746865207369676e65722c207468656e2074686520766f7465206d757374206861766520657870697265642c5501656974686572206265636175736520746865207265666572656e64756d207761732063616e63656c6c65642c20626563617573652074686520766f746572206c6f737420746865207265666572656e64756d206f7298626563617573652074686520636f6e76696374696f6e20706572696f64206973206f7665722e00c8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e004d012d2060746172676574603a20546865206163636f756e74206f662074686520766f746520746f2062652072656d6f7665643b2074686973206163636f756e74206d757374206861766520766f74656420666f725420207265666572656e64756d2060696e646578602ef42d2060696e646578603a2054686520696e646578206f66207265666572656e64756d206f662074686520766f746520746f2062652072656d6f7665642e0055015765696768743a20604f2852202b206c6f6720522960207768657265205220697320746865206e756d626572206f66207265666572656e646120746861742060746172676574602068617320766f746564206f6e2ed820205765696768742069732063616c63756c6174656420666f7220746865206d6178696d756d206e756d626572206f6620766f74652e38656e6163745f70726f706f73616c08013470726f706f73616c5f6861736824011c543a3a48617368000114696e64657810013c5265666572656e64756d496e6465780016044d01456e61637420612070726f706f73616c2066726f6d2061207265666572656e64756d2e20466f72206e6f77207765206a757374206d616b65207468652077656967687420626520746865206d6178696d756d2e24626c61636b6c69737408013470726f706f73616c5f6861736824011c543a3a4861736800013c6d617962655f7265665f696e6465787902015c4f7074696f6e3c5265666572656e64756d496e6465783e00173c45015065726d616e656e746c7920706c61636520612070726f706f73616c20696e746f2074686520626c61636b6c6973742e20546869732070726576656e74732069742066726f6d2065766572206265696e673c70726f706f73656420616761696e2e00510149662063616c6c6564206f6e206120717565756564207075626c6963206f722065787465726e616c2070726f706f73616c2c207468656e20746869732077696c6c20726573756c7420696e206974206265696e67510172656d6f7665642e2049662074686520607265665f696e6465786020737570706c69656420697320616e20616374697665207265666572656e64756d2077697468207468652070726f706f73616c20686173682c687468656e2069742077696c6c2062652063616e63656c6c65642e00ec546865206469737061746368206f726967696e206f6620746869732063616c6c206d7573742062652060426c61636b6c6973744f726967696e602e00f82d206070726f706f73616c5f68617368603a205468652070726f706f73616c206861736820746f20626c61636b6c697374207065726d616e656e746c792e45012d20607265665f696e646578603a20416e206f6e676f696e67207265666572656e64756d2077686f73652068617368206973206070726f706f73616c5f68617368602c2077686963682077696c6c2062652863616e63656c6c65642e0041015765696768743a20604f28702960202874686f756768206173207468697320697320616e20686967682d70726976696c6567652064697370617463682c20776520617373756d65206974206861732061502020726561736f6e61626c652076616c7565292e3c63616e63656c5f70726f706f73616c04012870726f705f696e646578ad01012450726f70496e64657800181c4852656d6f766520612070726f706f73616c2e000101546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265206043616e63656c50726f706f73616c4f726967696e602e00d02d206070726f705f696e646578603a2054686520696e646578206f66207468652070726f706f73616c20746f2063616e63656c2e00e45765696768743a20604f28702960207768657265206070203d205075626c696350726f70733a3a3c543e3a3a6465636f64655f6c656e282960042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ee1020c4070616c6c65745f64656d6f637261637910766f74652c4163636f756e74566f7465041c42616c616e636501180108205374616e64617264080110766f7465e5020110566f746500011c62616c616e636518011c42616c616e63650000001453706c697408010c61796518011c42616c616e636500010c6e617918011c42616c616e636500010000e5020c4070616c6c65745f64656d6f637261637910766f746510566f74650000040008000000e9020c4070616c6c65745f64656d6f637261637928636f6e76696374696f6e28436f6e76696374696f6e00011c104e6f6e65000000204c6f636b65643178000100204c6f636b65643278000200204c6f636b65643378000300204c6f636b65643478000400204c6f636b65643578000500204c6f636b6564367800060000ed020c4470616c6c65745f636f6c6c6563746976651870616c6c65741043616c6c0804540004490001182c7365745f6d656d626572730c012c6e65775f6d656d62657273dc01445665633c543a3a4163636f756e7449643e0001147072696d65f10201504f7074696f6e3c543a3a4163636f756e7449643e0001246f6c645f636f756e7410012c4d656d626572436f756e74000064805365742074686520636f6c6c6563746976652773206d656d626572736869702e0045012d20606e65775f6d656d62657273603a20546865206e6577206d656d626572206c6973742e204265206e69636520746f2074686520636861696e20616e642070726f7669646520697420736f727465642ee02d20607072696d65603a20546865207072696d65206d656d6265722077686f736520766f74652073657473207468652064656661756c742e59012d20606f6c645f636f756e74603a2054686520757070657220626f756e6420666f72207468652070726576696f7573206e756d626572206f66206d656d6265727320696e2073746f726167652e205573656420666f7250202077656967687420657374696d6174696f6e2e0054526571756972657320726f6f74206f726967696e2e0051014e4f54453a20446f6573206e6f7420656e666f7263652074686520657870656374656420604d61784d656d6265727360206c696d6974206f6e2074686520616d6f756e74206f66206d656d626572732c2062757421012020202020207468652077656967687420657374696d6174696f6e732072656c79206f6e20697420746f20657374696d61746520646973706174636861626c65207765696768742e002823203c7765696768743e24232320576569676874502d20604f284d50202b204e29602077686572653ae020202d20604d60206f6c642d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429e020202d20604e60206e65772d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e646564299820202d206050602070726f706f73616c732d636f756e742028636f64652d626f756e64656429142d2044423a510120202d20312073746f72616765206d75746174696f6e2028636f64656320604f284d296020726561642c20604f284e29602077726974652920666f722072656164696e6720616e642077726974696e67207468652c202020206d656d62657273ec20202d20312073746f7261676520726561642028636f64656320604f285029602920666f722072656164696e67207468652070726f706f73616c73450120202d206050602073746f72616765206d75746174696f6e732028636f64656320604f284d29602920666f72207570646174696e672074686520766f74657320666f7220656163682070726f706f73616c5d0120202d20312073746f726167652077726974652028636f64656320604f283129602920666f722064656c6574696e6720746865206f6c6420607072696d656020616e642073657474696e6720746865206e6577206f6e652c23203c2f7765696768743e1c6578656375746508012070726f706f73616c0902017c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e0001306c656e6774685f626f756e64ad01010c75333200012cf0446973706174636820612070726f706f73616c2066726f6d2061206d656d626572207573696e672074686520604d656d62657260206f726967696e2e00a84f726967696e206d7573742062652061206d656d626572206f662074686520636f6c6c6563746976652e002823203c7765696768743e2423232057656967687455012d20604f284d202b2050296020776865726520604d60206d656d626572732d636f756e742028636f64652d626f756e6465642920616e642060506020636f6d706c6578697479206f66206469737061746368696e673020206070726f706f73616c60d42d2044423a203120726561642028636f64656320604f284d296029202b20444220616363657373206f66206070726f706f73616c60242d2031206576656e742c23203c2f7765696768743e1c70726f706f73650c01247468726573686f6c64ad01012c4d656d626572436f756e7400012070726f706f73616c0902017c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e0001306c656e6774685f626f756e64ad01010c75333200026cf84164642061206e65772070726f706f73616c20746f2065697468657220626520766f746564206f6e206f72206578656375746564206469726563746c792e00845265717569726573207468652073656e64657220746f206265206d656d6265722e004101607468726573686f6c64602064657465726d696e65732077686574686572206070726f706f73616c60206973206578656375746564206469726563746c792028607468726573686f6c64203c20326029546f722070757420757020666f7220766f74696e672e002823203c7765696768743e24232320576569676874ac2d20604f2842202b204d202b2050312960206f7220604f2842202b204d202b20503229602077686572653ae020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429dc20202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429c420202d206272616e6368696e6720697320696e666c75656e63656420627920607468726573686f6c64602077686572653af4202020202d20605031602069732070726f706f73616c20657865637574696f6e20636f6d706c65786974792028607468726573686f6c64203c20326029fc202020202d20605032602069732070726f706f73616c732d636f756e742028636f64652d626f756e646564292028607468726573686f6c64203e3d20326029142d2044423ab420202d20312073746f726167652072656164206069735f6d656d626572602028636f64656320604f284d296029f020202d20312073746f726167652072656164206050726f706f73616c4f663a3a636f6e7461696e735f6b6579602028636f64656320604f2831296029a820202d20444220616363657373657320696e666c75656e63656420627920607468726573686f6c64603a0901202020202d204549544845522073746f7261676520616363657373657320646f6e65206279206070726f706f73616c602028607468726573686f6c64203c20326029b8202020202d204f522070726f706f73616c20696e73657274696f6e2028607468726573686f6c64203c3d20326029d82020202020202d20312073746f72616765206d75746174696f6e206050726f706f73616c73602028636f64656320604f285032296029e42020202020202d20312073746f72616765206d75746174696f6e206050726f706f73616c436f756e74602028636f64656320604f2831296029cc2020202020202d20312073746f72616765207772697465206050726f706f73616c4f66602028636f64656320604f2842296029bc2020202020202d20312073746f726167652077726974652060566f74696e67602028636f64656320604f284d2960292c20202d2031206576656e742c23203c2f7765696768743e10766f74650c012070726f706f73616c24011c543a3a48617368000114696e646578ad01013450726f706f73616c496e64657800011c617070726f7665e80110626f6f6c00033cf041646420616e20617965206f72206e617920766f746520666f72207468652073656e64657220746f2074686520676976656e2070726f706f73616c2e008c5265717569726573207468652073656e64657220746f2062652061206d656d6265722e0049015472616e73616374696f6e20666565732077696c6c2062652077616976656420696620746865206d656d62657220697320766f74696e67206f6e20616e7920706172746963756c61722070726f706f73616c5101666f72207468652066697273742074696d6520616e64207468652063616c6c206973207375636365737366756c2e2053756273657175656e7420766f7465206368616e6765732077696c6c206368617267652061106665652e2823203c7765696768743e2423232057656967687409012d20604f284d296020776865726520604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429142d2044423aac20202d20312073746f72616765207265616420604d656d62657273602028636f64656320604f284d296029b820202d20312073746f72616765206d75746174696f6e2060566f74696e67602028636f64656320604f284d296029242d2031206576656e742c23203c2f7765696768743e14636c6f736510013470726f706f73616c5f6861736824011c543a3a48617368000114696e646578ad01013450726f706f73616c496e64657800015470726f706f73616c5f7765696768745f626f756e64410201185765696768740001306c656e6774685f626f756e64ad01010c7533320004804d01436c6f7365206120766f746520746861742069732065697468657220617070726f7665642c20646973617070726f766564206f722077686f736520766f74696e6720706572696f642068617320656e6465642e0055014d61792062652063616c6c656420627920616e79207369676e6564206163636f756e7420696e206f7264657220746f2066696e69736820766f74696e6720616e6420636c6f7365207468652070726f706f73616c2e00490149662063616c6c6564206265666f72652074686520656e64206f662074686520766f74696e6720706572696f642069742077696c6c206f6e6c7920636c6f73652074686520766f7465206966206974206973bc68617320656e6f75676820766f74657320746f20626520617070726f766564206f7220646973617070726f7665642e00490149662063616c6c65642061667465722074686520656e64206f662074686520766f74696e6720706572696f642061627374656e74696f6e732061726520636f756e7465642061732072656a656374696f6e732501756e6c6573732074686572652069732061207072696d65206d656d6265722073657420616e6420746865207072696d65206d656d626572206361737420616e20617070726f76616c2e00610149662074686520636c6f7365206f7065726174696f6e20636f6d706c65746573207375636365737366756c6c79207769746820646973617070726f76616c2c20746865207472616e73616374696f6e206665652077696c6c5d016265207761697665642e204f746865727769736520657865637574696f6e206f662074686520617070726f766564206f7065726174696f6e2077696c6c206265206368617267656420746f207468652063616c6c65722e0061012b206070726f706f73616c5f7765696768745f626f756e64603a20546865206d6178696d756d20616d6f756e74206f662077656967687420636f6e73756d656420627920657865637574696e672074686520636c6f7365642470726f706f73616c2e61012b20606c656e6774685f626f756e64603a2054686520757070657220626f756e6420666f7220746865206c656e677468206f66207468652070726f706f73616c20696e2073746f726167652e20436865636b65642076696135016073746f726167653a3a726561646020736f206974206973206073697a655f6f663a3a3c7533323e2829203d3d203460206c6172676572207468616e207468652070757265206c656e6774682e002823203c7765696768743e24232320576569676874742d20604f2842202b204d202b205031202b20503229602077686572653ae020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429dc20202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429c820202d20605031602069732074686520636f6d706c6578697479206f66206070726f706f73616c6020707265696d6167652ea420202d20605032602069732070726f706f73616c2d636f756e742028636f64652d626f756e64656429142d2044423a0d01202d20322073746f726167652072656164732028604d656d62657273603a20636f64656320604f284d29602c20605072696d65603a20636f64656320604f28312960295901202d2033206d75746174696f6e73202860566f74696e67603a20636f64656320604f284d29602c206050726f706f73616c4f66603a20636f64656320604f284229602c206050726f706f73616c73603a20636f6465632c202020604f285032296029dc202d20616e79206d75746174696f6e7320646f6e65207768696c6520657865637574696e67206070726f706f73616c6020286050316029402d20757020746f2033206576656e74732c23203c2f7765696768743e4c646973617070726f76655f70726f706f73616c04013470726f706f73616c5f6861736824011c543a3a486173680005385901446973617070726f766520612070726f706f73616c2c20636c6f73652c20616e642072656d6f76652069742066726f6d207468652073797374656d2c207265676172646c657373206f66206974732063757272656e741873746174652e00884d7573742062652063616c6c65642062792074686520526f6f74206f726967696e2e002c506172616d65746572733a1d012a206070726f706f73616c5f68617368603a205468652068617368206f66207468652070726f706f73616c20746861742073686f756c6420626520646973617070726f7665642e002823203c7765696768743edc436f6d706c65786974793a204f285029207768657265205020697320746865206e756d626572206f66206d61782070726f706f73616c73284442205765696768743a482a2052656164733a2050726f706f73616c739c2a205772697465733a20566f74696e672c2050726f706f73616c732c2050726f706f73616c4f662c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ef10204184f7074696f6e04045401000108104e6f6e6500000010536f6d650400000000010000f5020c4470616c6c65745f636f6c6c6563746976651870616c6c65741043616c6c0804540004490001182c7365745f6d656d626572730c012c6e65775f6d656d62657273dc01445665633c543a3a4163636f756e7449643e0001147072696d65f10201504f7074696f6e3c543a3a4163636f756e7449643e0001246f6c645f636f756e7410012c4d656d626572436f756e74000064805365742074686520636f6c6c6563746976652773206d656d626572736869702e0045012d20606e65775f6d656d62657273603a20546865206e6577206d656d626572206c6973742e204265206e69636520746f2074686520636861696e20616e642070726f7669646520697420736f727465642ee02d20607072696d65603a20546865207072696d65206d656d6265722077686f736520766f74652073657473207468652064656661756c742e59012d20606f6c645f636f756e74603a2054686520757070657220626f756e6420666f72207468652070726576696f7573206e756d626572206f66206d656d6265727320696e2073746f726167652e205573656420666f7250202077656967687420657374696d6174696f6e2e0054526571756972657320726f6f74206f726967696e2e0051014e4f54453a20446f6573206e6f7420656e666f7263652074686520657870656374656420604d61784d656d6265727360206c696d6974206f6e2074686520616d6f756e74206f66206d656d626572732c2062757421012020202020207468652077656967687420657374696d6174696f6e732072656c79206f6e20697420746f20657374696d61746520646973706174636861626c65207765696768742e002823203c7765696768743e24232320576569676874502d20604f284d50202b204e29602077686572653ae020202d20604d60206f6c642d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429e020202d20604e60206e65772d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e646564299820202d206050602070726f706f73616c732d636f756e742028636f64652d626f756e64656429142d2044423a510120202d20312073746f72616765206d75746174696f6e2028636f64656320604f284d296020726561642c20604f284e29602077726974652920666f722072656164696e6720616e642077726974696e67207468652c202020206d656d62657273ec20202d20312073746f7261676520726561642028636f64656320604f285029602920666f722072656164696e67207468652070726f706f73616c73450120202d206050602073746f72616765206d75746174696f6e732028636f64656320604f284d29602920666f72207570646174696e672074686520766f74657320666f7220656163682070726f706f73616c5d0120202d20312073746f726167652077726974652028636f64656320604f283129602920666f722064656c6574696e6720746865206f6c6420607072696d656020616e642073657474696e6720746865206e6577206f6e652c23203c2f7765696768743e1c6578656375746508012070726f706f73616c0902017c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e0001306c656e6774685f626f756e64ad01010c75333200012cf0446973706174636820612070726f706f73616c2066726f6d2061206d656d626572207573696e672074686520604d656d62657260206f726967696e2e00a84f726967696e206d7573742062652061206d656d626572206f662074686520636f6c6c6563746976652e002823203c7765696768743e2423232057656967687455012d20604f284d202b2050296020776865726520604d60206d656d626572732d636f756e742028636f64652d626f756e6465642920616e642060506020636f6d706c6578697479206f66206469737061746368696e673020206070726f706f73616c60d42d2044423a203120726561642028636f64656320604f284d296029202b20444220616363657373206f66206070726f706f73616c60242d2031206576656e742c23203c2f7765696768743e1c70726f706f73650c01247468726573686f6c64ad01012c4d656d626572436f756e7400012070726f706f73616c0902017c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e0001306c656e6774685f626f756e64ad01010c75333200026cf84164642061206e65772070726f706f73616c20746f2065697468657220626520766f746564206f6e206f72206578656375746564206469726563746c792e00845265717569726573207468652073656e64657220746f206265206d656d6265722e004101607468726573686f6c64602064657465726d696e65732077686574686572206070726f706f73616c60206973206578656375746564206469726563746c792028607468726573686f6c64203c20326029546f722070757420757020666f7220766f74696e672e002823203c7765696768743e24232320576569676874ac2d20604f2842202b204d202b2050312960206f7220604f2842202b204d202b20503229602077686572653ae020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429dc20202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429c420202d206272616e6368696e6720697320696e666c75656e63656420627920607468726573686f6c64602077686572653af4202020202d20605031602069732070726f706f73616c20657865637574696f6e20636f6d706c65786974792028607468726573686f6c64203c20326029fc202020202d20605032602069732070726f706f73616c732d636f756e742028636f64652d626f756e646564292028607468726573686f6c64203e3d20326029142d2044423ab420202d20312073746f726167652072656164206069735f6d656d626572602028636f64656320604f284d296029f020202d20312073746f726167652072656164206050726f706f73616c4f663a3a636f6e7461696e735f6b6579602028636f64656320604f2831296029a820202d20444220616363657373657320696e666c75656e63656420627920607468726573686f6c64603a0901202020202d204549544845522073746f7261676520616363657373657320646f6e65206279206070726f706f73616c602028607468726573686f6c64203c20326029b8202020202d204f522070726f706f73616c20696e73657274696f6e2028607468726573686f6c64203c3d20326029d82020202020202d20312073746f72616765206d75746174696f6e206050726f706f73616c73602028636f64656320604f285032296029e42020202020202d20312073746f72616765206d75746174696f6e206050726f706f73616c436f756e74602028636f64656320604f2831296029cc2020202020202d20312073746f72616765207772697465206050726f706f73616c4f66602028636f64656320604f2842296029bc2020202020202d20312073746f726167652077726974652060566f74696e67602028636f64656320604f284d2960292c20202d2031206576656e742c23203c2f7765696768743e10766f74650c012070726f706f73616c24011c543a3a48617368000114696e646578ad01013450726f706f73616c496e64657800011c617070726f7665e80110626f6f6c00033cf041646420616e20617965206f72206e617920766f746520666f72207468652073656e64657220746f2074686520676976656e2070726f706f73616c2e008c5265717569726573207468652073656e64657220746f2062652061206d656d6265722e0049015472616e73616374696f6e20666565732077696c6c2062652077616976656420696620746865206d656d62657220697320766f74696e67206f6e20616e7920706172746963756c61722070726f706f73616c5101666f72207468652066697273742074696d6520616e64207468652063616c6c206973207375636365737366756c2e2053756273657175656e7420766f7465206368616e6765732077696c6c206368617267652061106665652e2823203c7765696768743e2423232057656967687409012d20604f284d296020776865726520604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429142d2044423aac20202d20312073746f72616765207265616420604d656d62657273602028636f64656320604f284d296029b820202d20312073746f72616765206d75746174696f6e2060566f74696e67602028636f64656320604f284d296029242d2031206576656e742c23203c2f7765696768743e14636c6f736510013470726f706f73616c5f6861736824011c543a3a48617368000114696e646578ad01013450726f706f73616c496e64657800015470726f706f73616c5f7765696768745f626f756e64410201185765696768740001306c656e6774685f626f756e64ad01010c7533320004804d01436c6f7365206120766f746520746861742069732065697468657220617070726f7665642c20646973617070726f766564206f722077686f736520766f74696e6720706572696f642068617320656e6465642e0055014d61792062652063616c6c656420627920616e79207369676e6564206163636f756e7420696e206f7264657220746f2066696e69736820766f74696e6720616e6420636c6f7365207468652070726f706f73616c2e00490149662063616c6c6564206265666f72652074686520656e64206f662074686520766f74696e6720706572696f642069742077696c6c206f6e6c7920636c6f73652074686520766f7465206966206974206973bc68617320656e6f75676820766f74657320746f20626520617070726f766564206f7220646973617070726f7665642e00490149662063616c6c65642061667465722074686520656e64206f662074686520766f74696e6720706572696f642061627374656e74696f6e732061726520636f756e7465642061732072656a656374696f6e732501756e6c6573732074686572652069732061207072696d65206d656d6265722073657420616e6420746865207072696d65206d656d626572206361737420616e20617070726f76616c2e00610149662074686520636c6f7365206f7065726174696f6e20636f6d706c65746573207375636365737366756c6c79207769746820646973617070726f76616c2c20746865207472616e73616374696f6e206665652077696c6c5d016265207761697665642e204f746865727769736520657865637574696f6e206f662074686520617070726f766564206f7065726174696f6e2077696c6c206265206368617267656420746f207468652063616c6c65722e0061012b206070726f706f73616c5f7765696768745f626f756e64603a20546865206d6178696d756d20616d6f756e74206f662077656967687420636f6e73756d656420627920657865637574696e672074686520636c6f7365642470726f706f73616c2e61012b20606c656e6774685f626f756e64603a2054686520757070657220626f756e6420666f7220746865206c656e677468206f66207468652070726f706f73616c20696e2073746f726167652e20436865636b65642076696135016073746f726167653a3a726561646020736f206974206973206073697a655f6f663a3a3c7533323e2829203d3d203460206c6172676572207468616e207468652070757265206c656e6774682e002823203c7765696768743e24232320576569676874742d20604f2842202b204d202b205031202b20503229602077686572653ae020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429dc20202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429c820202d20605031602069732074686520636f6d706c6578697479206f66206070726f706f73616c6020707265696d6167652ea420202d20605032602069732070726f706f73616c2d636f756e742028636f64652d626f756e64656429142d2044423a0d01202d20322073746f726167652072656164732028604d656d62657273603a20636f64656320604f284d29602c20605072696d65603a20636f64656320604f28312960295901202d2033206d75746174696f6e73202860566f74696e67603a20636f64656320604f284d29602c206050726f706f73616c4f66603a20636f64656320604f284229602c206050726f706f73616c73603a20636f6465632c202020604f285032296029dc202d20616e79206d75746174696f6e7320646f6e65207768696c6520657865637574696e67206070726f706f73616c6020286050316029402d20757020746f2033206576656e74732c23203c2f7765696768743e4c646973617070726f76655f70726f706f73616c04013470726f706f73616c5f6861736824011c543a3a486173680005385901446973617070726f766520612070726f706f73616c2c20636c6f73652c20616e642072656d6f76652069742066726f6d207468652073797374656d2c207265676172646c657373206f66206974732063757272656e741873746174652e00884d7573742062652063616c6c65642062792074686520526f6f74206f726967696e2e002c506172616d65746572733a1d012a206070726f706f73616c5f68617368603a205468652068617368206f66207468652070726f706f73616c20746861742073686f756c6420626520646973617070726f7665642e002823203c7765696768743edc436f6d706c65786974793a204f285029207768657265205020697320746865206e756d626572206f66206d61782070726f706f73616c73284442205765696768743a482a2052656164733a2050726f706f73616c739c2a205772697465733a20566f74696e672c2050726f706f73616c732c2050726f706f73616c4f662c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ef9020c6470616c6c65745f656c656374696f6e735f70687261676d656e1870616c6c65741043616c6c04045400011810766f7465080114766f746573dc01445665633c543a3a4163636f756e7449643e00011476616c7565cc013042616c616e63654f663c543e00005c5901566f746520666f72206120736574206f662063616e6469646174657320666f7220746865207570636f6d696e6720726f756e64206f6620656c656374696f6e2e20546869732063616e2062652063616c6c656420746fe07365742074686520696e697469616c20766f7465732c206f722075706461746520616c7265616479206578697374696e6720766f7465732e005d0155706f6e20696e697469616c20766f74696e672c206076616c75656020756e697473206f66206077686f6027732062616c616e6365206973206c6f636b656420616e642061206465706f73697420616d6f756e742069734d0172657365727665642e20546865206465706f736974206973206261736564206f6e20746865206e756d626572206f6620766f74657320616e642063616e2062652075706461746564206f7665722074696d652e004c5468652060766f746573602073686f756c643a4420202d206e6f7420626520656d7074792e550120202d206265206c657373207468616e20746865206e756d626572206f6620706f737369626c652063616e646964617465732e204e6f7465207468617420616c6c2063757272656e74206d656d6265727320616e6411012020202072756e6e6572732d75702061726520616c736f206175746f6d61746963616c6c792063616e6469646174657320666f7220746865206e65787420726f756e642e004d014966206076616c756560206973206d6f7265207468616e206077686f60277320746f74616c2062616c616e63652c207468656e20746865206d6178696d756d206f66207468652074776f20697320757365642e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e65642e002c232323205761726e696e6700550149742069732074686520726573706f6e736962696c697479206f66207468652063616c6c657220746f202a2a4e4f542a2a20706c61636520616c6c206f662074686569722062616c616e636520696e746f20746865a86c6f636b20616e64206b65657020736f6d6520666f722066757274686572206f7065726174696f6e732e002823203c7765696768743e5101576520617373756d6520746865206d6178696d756d2077656967687420616d6f6e6720616c6c20332063617365733a20766f74655f657175616c2c20766f74655f6d6f726520616e6420766f74655f6c6573732e2c23203c2f7765696768743e3072656d6f76655f766f7465720001146c52656d6f766520606f726967696e60206173206120766f7465722e00b8546869732072656d6f76657320746865206c6f636b20616e642072657475726e7320746865206465706f7369742e00fc546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e656420616e64206265206120766f7465722e407375626d69745f63616e64696461637904013c63616e6469646174655f636f756e74ad01010c75333200023c11015375626d6974206f6e6573656c6620666f722063616e6469646163792e204120666978656420616d6f756e74206f66206465706f736974206973207265636f726465642e005d01416c6c2063616e64696461746573206172652077697065642061742074686520656e64206f6620746865207465726d2e205468657920656974686572206265636f6d652061206d656d6265722f72756e6e65722d75702ccc6f72206c65617665207468652073797374656d207768696c65207468656972206465706f73697420697320736c61736865642e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e65642e002c232323205761726e696e67005d014576656e20696620612063616e64696461746520656e6473207570206265696e672061206d656d6265722c2074686579206d7573742063616c6c205b6043616c6c3a3a72656e6f756e63655f63616e646964616379605d5901746f20676574207468656972206465706f736974206261636b2e204c6f73696e67207468652073706f7420696e20616e20656c656374696f6e2077696c6c20616c77617973206c65616420746f206120736c6173682e002823203c7765696768743e0901546865206e756d626572206f662063757272656e742063616e64696461746573206d7573742062652070726f7669646564206173207769746e65737320646174612e2c23203c2f7765696768743e4872656e6f756e63655f63616e64696461637904012872656e6f756e63696e67fd02012852656e6f756e63696e670003484d0152656e6f756e6365206f6e65277320696e74656e74696f6e20746f20626520612063616e64696461746520666f7220746865206e65787420656c656374696f6e20726f756e642e203320706f74656e7469616c3c6f7574636f6d65732065786973743a0049012d20606f726967696e6020697320612063616e64696461746520616e64206e6f7420656c656374656420696e20616e79207365742e20496e207468697320636173652c20746865206465706f736974206973f02020756e72657365727665642c2072657475726e656420616e64206f726967696e2069732072656d6f76656420617320612063616e6469646174652e61012d20606f726967696e6020697320612063757272656e742072756e6e65722d75702e20496e207468697320636173652c20746865206465706f73697420697320756e72657365727665642c2072657475726e656420616e648c20206f726967696e2069732072656d6f76656420617320612072756e6e65722d75702e55012d20606f726967696e6020697320612063757272656e74206d656d6265722e20496e207468697320636173652c20746865206465706f73697420697320756e726573657276656420616e64206f726967696e2069735501202072656d6f7665642061732061206d656d6265722c20636f6e73657175656e746c79206e6f74206265696e6720612063616e64696461746520666f7220746865206e65787420726f756e6420616e796d6f72652e6101202053696d696c617220746f205b6072656d6f76655f6d656d626572605d2853656c663a3a72656d6f76655f6d656d626572292c206966207265706c6163656d656e742072756e6e657273206578697374732c20746865795901202061726520696d6d6564696174656c7920757365642e20496620746865207072696d652069732072656e6f756e63696e672c207468656e206e6f207072696d652077696c6c20657869737420756e74696c207468653420206e65787420726f756e642e004501546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e65642c20616e642068617665206f6e65206f66207468652061626f766520726f6c65732e002823203c7765696768743ee05468652074797065206f662072656e6f756e63696e67206d7573742062652070726f7669646564206173207769746e65737320646174612e2c23203c2f7765696768743e3472656d6f76655f6d656d62657208010c77686f4d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500013c6861735f7265706c6163656d656e74e80110626f6f6c000438590152656d6f7665206120706172746963756c6172206d656d6265722066726f6d20746865207365742e20546869732069732065666665637469766520696d6d6564696174656c7920616e642074686520626f6e64206f667c746865206f7574676f696e67206d656d62657220697320736c61736865642e005501496620612072756e6e65722d757020697320617661696c61626c652c207468656e2074686520626573742072756e6e65722d75702077696c6c2062652072656d6f76656420616e64207265706c6163657320746865fc6f7574676f696e67206d656d6265722e204f74686572776973652c2061206e65772070687261676d656e20656c656374696f6e20697320737461727465642e00b8546865206469737061746368206f726967696e206f6620746869732063616c6c206d75737420626520726f6f742e0041014e6f74652074686174207468697320646f6573206e6f7420616666656374207468652064657369676e6174656420626c6f636b206e756d626572206f6620746865206e65787420656c656374696f6e2e002823203c7765696768743e5101496620776520686176652061207265706c6163656d656e742c20776520757365206120736d616c6c207765696768742e20456c73652c2073696e63652074686973206973206120726f6f742063616c6c20616e64d077696c6c20676f20696e746f2070687261676d656e2c20776520617373756d652066756c6c20626c6f636b20666f72206e6f772e2c23203c2f7765696768743e50636c65616e5f646566756e63745f766f746572730801286e756d5f766f7465727310010c75333200012c6e756d5f646566756e637410010c7533320005284501436c65616e20616c6c20766f746572732077686f2061726520646566756e63742028692e652e207468657920646f206e6f7420736572766520616e7920707572706f736520617420616c6c292e20546865ac6465706f736974206f66207468652072656d6f76656420766f74657273206172652072657475726e65642e0001015468697320697320616e20726f6f742066756e6374696f6e20746f2062652075736564206f6e6c7920666f7220636c65616e696e67207468652073746174652e00b8546865206469737061746368206f726967696e206f6620746869732063616c6c206d75737420626520726f6f742e002823203c7765696768743e5d0154686520746f74616c206e756d626572206f6620766f7465727320616e642074686f736520746861742061726520646566756e6374206d7573742062652070726f7669646564206173207769746e65737320646174612e2c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632efd02086470616c6c65745f656c656374696f6e735f70687261676d656e2852656e6f756e63696e6700010c184d656d6265720000002052756e6e657255700001002443616e6469646174650400ad01010c7533320002000001030c4470616c6c65745f6d656d626572736869701870616c6c65741043616c6c08045400044900011c286164645f6d656d62657204010c77686f000130543a3a4163636f756e74496400000c784164642061206d656d626572206077686f6020746f20746865207365742e009c4d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a4164644f726967696e602e3472656d6f76655f6d656d62657204010c77686f000130543a3a4163636f756e74496400010c8c52656d6f76652061206d656d626572206077686f602066726f6d20746865207365742e00a84d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a52656d6f76654f726967696e602e2c737761705f6d656d62657208011872656d6f7665000130543a3a4163636f756e74496400010c616464000130543a3a4163636f756e744964000214bc53776170206f7574206f6e65206d656d626572206072656d6f76656020666f7220616e6f746865722060616464602e00a04d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a537761704f726967696e602e000d015072696d65206d656d62657273686970206973202a6e6f742a207061737365642066726f6d206072656d6f76656020746f2060616464602c20696620657874616e742e3472657365745f6d656d6265727304011c6d656d62657273dc01445665633c543a3a4163636f756e7449643e00031055014368616e676520746865206d656d6265727368697020746f2061206e6577207365742c20646973726567617264696e6720746865206578697374696e67206d656d626572736869702e204265206e69636520616e64687061737320606d656d6265727360207072652d736f727465642e00a44d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a52657365744f726967696e602e286368616e67655f6b657904010c6e6577000130543a3a4163636f756e744964000414d453776170206f7574207468652073656e64696e67206d656d62657220666f7220736f6d65206f74686572206b657920606e6577602e00f04d6179206f6e6c792062652063616c6c65642066726f6d20605369676e656460206f726967696e206f6620612063757272656e74206d656d6265722e001d015072696d65206d656d62657273686970206973207061737365642066726f6d20746865206f726967696e206163636f756e7420746f20606e6577602c20696620657874616e742e247365745f7072696d6504010c77686f000130543a3a4163636f756e74496400050cbc53657420746865207072696d65206d656d6265722e204d75737420626520612063757272656e74206d656d6265722e00a44d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a5072696d654f726967696e602e2c636c6561725f7072696d6500060c9452656d6f766520746865207072696d65206d656d626572206966206974206578697374732e00a44d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a5072696d654f726967696e602e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e05030c3c70616c6c65745f74726561737572791870616c6c65741043616c6c08045400044900010c3470726f706f73655f7370656e6408011476616c7565cc013c42616c616e63654f663c542c20493e00012c62656e65666963696172794d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365000024290150757420666f727761726420612073756767657374696f6e20666f72207370656e64696e672e2041206465706f7369742070726f706f7274696f6e616c20746f207468652076616c75653101697320726573657276656420616e6420736c6173686564206966207468652070726f706f73616c2069732072656a65637465642e2049742069732072657475726e6564206f6e6365207468655070726f706f73616c20697320617761726465642e002823203c7765696768743e482d20436f6d706c65786974793a204f283129b02d20446252656164733a206050726f706f73616c436f756e74602c20606f726967696e206163636f756e7460e82d2044625772697465733a206050726f706f73616c436f756e74602c206050726f706f73616c73602c20606f726967696e206163636f756e74602c23203c2f7765696768743e3c72656a6563745f70726f706f73616c04012c70726f706f73616c5f6964ad01013450726f706f73616c496e646578000124f852656a65637420612070726f706f736564207370656e642e20546865206f726967696e616c206465706f7369742077696c6c20626520736c61736865642e00a84d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a52656a6563744f726967696e602e002823203c7765696768743e482d20436f6d706c65786974793a204f283129cc2d20446252656164733a206050726f706f73616c73602c206072656a65637465642070726f706f736572206163636f756e7460d02d2044625772697465733a206050726f706f73616c73602c206072656a65637465642070726f706f736572206163636f756e74602c23203c2f7765696768743e40617070726f76655f70726f706f73616c04012c70726f706f73616c5f6964ad01013450726f706f73616c496e6465780002285901417070726f766520612070726f706f73616c2e2041742061206c617465722074696d652c207468652070726f706f73616c2077696c6c20626520616c6c6f636174656420746f207468652062656e6566696369617279a8616e6420746865206f726967696e616c206465706f7369742077696c6c2062652072657475726e65642e00ac4d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a417070726f76654f726967696e602e002823203c7765696768743e4c2d20436f6d706c65786974793a204f2831292e8c2d20446252656164733a206050726f706f73616c73602c2060417070726f76616c7360582d20446257726974653a2060417070726f76616c73602c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e0903105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e18636c61696d731870616c6c65741043616c6c04045400011414636c61696d08011064657374000130543a3a4163636f756e744964000148657468657265756d5f7369676e61747572650d03013845636473615369676e6174757265000060884d616b65206120636c61696d20746f20636f6c6c65637420796f757220444f54732e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f4e6f6e655f2e0050556e7369676e65642056616c69646174696f6e3a0501412063616c6c20746f20636c61696d206973206465656d65642076616c696420696620746865207369676e61747572652070726f7669646564206d6174636865737c746865206578706563746564207369676e6564206d657373616765206f663a00683e20457468657265756d205369676e6564204d6573736167653a943e2028636f6e666967757265642070726566697820737472696e672928616464726573732900a4616e6420606164647265737360206d6174636865732074686520606465737460206163636f756e742e002c506172616d65746572733ad82d206064657374603a205468652064657374696e6174696f6e206163636f756e7420746f207061796f75742074686520636c61696d2e0d012d2060657468657265756d5f7369676e6174757265603a20546865207369676e6174757265206f6620616e20657468657265756d207369676e6564206d6573736167659c2020206d61746368696e672074686520666f726d6174206465736372696265642061626f76652e00203c7765696768743efc54686520776569676874206f6620746869732063616c6c20697320696e76617269616e74206f7665722074686520696e70757420706172616d65746572732ee057656967687420696e636c75646573206c6f67696320746f2076616c696461746520756e7369676e65642060636c61696d602063616c6c2e0058546f74616c20436f6d706c65786974793a204f283129243c2f7765696768743e286d696e745f636c61696d10010c77686f0901013c457468657265756d4164647265737300011476616c756518013042616c616e63654f663c543e00014076657374696e675f7363686564756c65150301d04f7074696f6e3c2842616c616e63654f663c543e2c2042616c616e63654f663c543e2c20543a3a426c6f636b4e756d626572293e00012473746174656d656e741d0301544f7074696f6e3c53746174656d656e744b696e643e00013c844d696e742061206e657720636c61696d20746f20636f6c6c65637420444f54732e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e002c506172616d65746572733af02d206077686f603a2054686520457468657265756d206164647265737320616c6c6f77656420746f20636f6c6c656374207468697320636c61696d2ecc2d206076616c7565603a20546865206e756d626572206f6620444f547320746861742077696c6c20626520636c61696d65642e09012d206076657374696e675f7363686564756c65603a20416e206f7074696f6e616c2076657374696e67207363686564756c6520666f7220746865736520444f54732e00203c7765696768743efc54686520776569676874206f6620746869732063616c6c20697320696e76617269616e74206f7665722074686520696e70757420706172616d65746572732e1d01576520617373756d6520776f7273742063617365207468617420626f74682076657374696e6720616e642073746174656d656e74206973206265696e6720696e7365727465642e0058546f74616c20436f6d706c65786974793a204f283129243c2f7765696768743e30636c61696d5f6174746573740c011064657374000130543a3a4163636f756e744964000148657468657265756d5f7369676e61747572650d03013845636473615369676e617475726500012473746174656d656e7428011c5665633c75383e000268e44d616b65206120636c61696d20746f20636f6c6c65637420796f757220444f5473206279207369676e696e6720612073746174656d656e742e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f4e6f6e655f2e0050556e7369676e65642056616c69646174696f6e3a2901412063616c6c20746f2060636c61696d5f61747465737460206973206465656d65642076616c696420696620746865207369676e61747572652070726f7669646564206d6174636865737c746865206578706563746564207369676e6564206d657373616765206f663a00683e20457468657265756d205369676e6564204d6573736167653ac03e2028636f6e666967757265642070726566697820737472696e67292861646472657373292873746174656d656e7429004901616e6420606164647265737360206d6174636865732074686520606465737460206163636f756e743b20746865206073746174656d656e7460206d757374206d617463682074686174207768696368206973c06578706563746564206163636f7264696e6720746f20796f757220707572636861736520617272616e67656d656e742e002c506172616d65746572733ad82d206064657374603a205468652064657374696e6174696f6e206163636f756e7420746f207061796f75742074686520636c61696d2e0d012d2060657468657265756d5f7369676e6174757265603a20546865207369676e6174757265206f6620616e20657468657265756d207369676e6564206d6573736167659c2020206d61746368696e672074686520666f726d6174206465736372696265642061626f76652e65012d206073746174656d656e74603a20546865206964656e74697479206f66207468652073746174656d656e74207768696368206973206265696e6720617474657374656420746f20696e20746865207369676e61747572652e00203c7765696768743efc54686520776569676874206f6620746869732063616c6c20697320696e76617269616e74206f7665722074686520696e70757420706172616d65746572732efc57656967687420696e636c75646573206c6f67696320746f2076616c696461746520756e7369676e65642060636c61696d5f617474657374602063616c6c2e0058546f74616c20436f6d706c65786974793a204f283129243c2f7765696768743e1861747465737404012473746174656d656e7428011c5665633c75383e000344f441747465737420746f20612073746174656d656e742c206e656564656420746f2066696e616c697a652074686520636c61696d732070726f636573732e0065015741524e494e473a20496e73656375726520756e6c65737320796f757220636861696e20696e636c75646573206050726576616c69646174654174746573747360206173206120605369676e6564457874656e73696f6e602e0050556e7369676e65642056616c69646174696f6e3a2901412063616c6c20746f20617474657374206973206465656d65642076616c6964206966207468652073656e6465722068617320612060507265636c61696d602072656769737465726564f4616e642070726f76696465732061206073746174656d656e746020776869636820697320657870656374656420666f7220746865206163636f756e742e002c506172616d65746572733a65012d206073746174656d656e74603a20546865206964656e74697479206f66207468652073746174656d656e74207768696368206973206265696e6720617474657374656420746f20696e20746865207369676e61747572652e00203c7765696768743efc54686520776569676874206f6620746869732063616c6c20697320696e76617269616e74206f7665722074686520696e70757420706172616d65746572732ef057656967687420696e636c75646573206c6f67696320746f20646f207072652d76616c69646174696f6e206f6e2060617474657374602063616c6c2e0058546f74616c20436f6d706c65786974793a204f283129243c2f7765696768743e286d6f76655f636c61696d0c010c6f6c640901013c457468657265756d4164647265737300010c6e65770901013c457468657265756d416464726573730001386d617962655f707265636c61696df10201504f7074696f6e3c543a3a4163636f756e7449643e000400042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e0d030c5c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e18636c61696d733845636473615369676e617475726500000400110301205b75383b2036355d00001103000003410000000800150304184f7074696f6e0404540119030108104e6f6e6500000010536f6d6504001903000001000019030000040c181810001d0304184f7074696f6e0404540121030108104e6f6e6500000010536f6d6504002103000001000021030c5c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e18636c61696d733453746174656d656e744b696e640001081c526567756c617200000010536166740001000025030c3870616c6c65745f76657374696e671870616c6c65741043616c6c0404540001141076657374000034b8556e6c6f636b20616e79207665737465642066756e6473206f66207468652073656e646572206163636f756e742e005d01546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652066756e6473207374696c6c646c6f636b656420756e64657220746869732070616c6c65742e00d0456d69747320656974686572206056657374696e67436f6d706c6574656460206f72206056657374696e6755706461746564602e002823203c7765696768743e242d20604f283129602e742d2044625765696768743a20322052656164732c203220577269746573f8202020202d2052656164733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c205b53656e646572204163636f756e745dfc202020202d205772697465733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c205b53656e646572204163636f756e745d2c23203c2f7765696768743e28766573745f6f746865720401187461726765744d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500013cb8556e6c6f636b20616e79207665737465642066756e6473206f662061206074617267657460206163636f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0051012d2060746172676574603a20546865206163636f756e742077686f7365207665737465642066756e64732073686f756c6420626520756e6c6f636b65642e204d75737420686176652066756e6473207374696c6c646c6f636b656420756e64657220746869732070616c6c65742e00d0456d69747320656974686572206056657374696e67436f6d706c6574656460206f72206056657374696e6755706461746564602e002823203c7765696768743e242d20604f283129602e742d2044625765696768743a20332052656164732c203320577269746573f0202020202d2052656164733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e74f4202020202d205772697465733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e742c23203c2f7765696768743e3c7665737465645f7472616e736665720801187461726765744d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001207363686564756c65290301a456657374696e67496e666f3c42616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265723e00024464437265617465206120766573746564207472616e736665722e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e00cc2d2060746172676574603a20546865206163636f756e7420726563656976696e6720746865207665737465642066756e64732ef02d20607363686564756c65603a205468652076657374696e67207363686564756c6520617474616368656420746f20746865207472616e736665722e005c456d697473206056657374696e6743726561746564602e00fc4e4f54453a20546869732077696c6c20756e6c6f636b20616c6c207363686564756c6573207468726f756768207468652063757272656e7420626c6f636b2e002823203c7765696768743e242d20604f283129602e742d2044625765696768743a20332052656164732c2033205772697465733901202020202d2052656164733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e742c205b53656e646572204163636f756e745d3d01202020202d205772697465733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e742c205b53656e646572204163636f756e745d2c23203c2f7765696768743e54666f7263655f7665737465645f7472616e736665720c0118736f757263654d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001187461726765744d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001207363686564756c65290301a456657374696e67496e666f3c42616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265723e00034860466f726365206120766573746564207472616e736665722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e00e82d2060736f75726365603a20546865206163636f756e742077686f73652066756e64732073686f756c64206265207472616e736665727265642e11012d2060746172676574603a20546865206163636f756e7420746861742073686f756c64206265207472616e7366657272656420746865207665737465642066756e64732ef02d20607363686564756c65603a205468652076657374696e67207363686564756c6520617474616368656420746f20746865207472616e736665722e005c456d697473206056657374696e6743726561746564602e00fc4e4f54453a20546869732077696c6c20756e6c6f636b20616c6c207363686564756c6573207468726f756768207468652063757272656e7420626c6f636b2e002823203c7765696768743e242d20604f283129602e742d2044625765696768743a20342052656164732c2034205772697465733101202020202d2052656164733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e742c20536f75726365204163636f756e743501202020202d205772697465733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e742c20536f75726365204163636f756e742c23203c2f7765696768743e3c6d657267655f7363686564756c657308013c7363686564756c65315f696e64657810010c75333200013c7363686564756c65325f696e64657810010c7533320004545d014d657267652074776f2076657374696e67207363686564756c657320746f6765746865722c206372656174696e672061206e65772076657374696e67207363686564756c65207468617420756e6c6f636b73206f7665725501746865206869676865737420706f737369626c6520737461727420616e6420656e6420626c6f636b732e20496620626f7468207363686564756c6573206861766520616c7265616479207374617274656420746865590163757272656e7420626c6f636b2077696c6c206265207573656420617320746865207363686564756c652073746172743b207769746820746865206361766561742074686174206966206f6e65207363686564756c655d0169732066696e6973686564206279207468652063757272656e7420626c6f636b2c20746865206f746865722077696c6c206265207472656174656420617320746865206e6577206d6572676564207363686564756c652c2c756e6d6f6469666965642e00f84e4f54453a20496620607363686564756c65315f696e646578203d3d207363686564756c65325f696e6465786020746869732069732061206e6f2d6f702e41014e4f54453a20546869732077696c6c20756e6c6f636b20616c6c207363686564756c6573207468726f756768207468652063757272656e7420626c6f636b207072696f7220746f206d657267696e672e61014e4f54453a20496620626f7468207363686564756c6573206861766520656e646564206279207468652063757272656e7420626c6f636b2c206e6f206e6577207363686564756c652077696c6c206265206372656174656464616e6420626f74682077696c6c2062652072656d6f7665642e006c4d6572676564207363686564756c6520617474726962757465733a35012d20607374617274696e675f626c6f636b603a20604d4158287363686564756c65312e7374617274696e675f626c6f636b2c207363686564756c6564322e7374617274696e675f626c6f636b2c48202063757272656e745f626c6f636b29602e21012d2060656e64696e675f626c6f636b603a20604d4158287363686564756c65312e656e64696e675f626c6f636b2c207363686564756c65322e656e64696e675f626c6f636b29602e59012d20606c6f636b6564603a20607363686564756c65312e6c6f636b65645f61742863757272656e745f626c6f636b29202b207363686564756c65322e6c6f636b65645f61742863757272656e745f626c6f636b29602e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e00e82d20607363686564756c65315f696e646578603a20696e646578206f6620746865206669727374207363686564756c6520746f206d657267652eec2d20607363686564756c65325f696e646578603a20696e646578206f6620746865207365636f6e64207363686564756c6520746f206d657267652e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e29030c3870616c6c65745f76657374696e673076657374696e675f696e666f2c56657374696e67496e666f081c42616c616e636501182c426c6f636b4e756d6265720110000c01186c6f636b656418011c42616c616e63650001247065725f626c6f636b18011c42616c616e63650001387374617274696e675f626c6f636b10012c426c6f636b4e756d62657200002d030c3870616c6c65745f7574696c6974791870616c6c65741043616c6c04045400010c14626174636804011463616c6c73310301605665633c3c5420617320436f6e6669673e3a3a43616c6c3e00004c7c53656e642061206261746368206f662064697370617463682063616c6c732e00784d61792062652063616c6c65642066726f6d20616e79206f726967696e2e005d012d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f74390120206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e005d014966206f726967696e20697320726f6f74207468656e2063616c6c2061726520646973706174636820776974686f757420636865636b696e67206f726967696e2066696c7465722e20285468697320696e636c75646573c8627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e002823203c7765696768743e01012d20436f6d706c65786974793a204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e2c23203c2f7765696768743e005501546869732077696c6c2072657475726e20604f6b6020696e20616c6c2063697263756d7374616e6365732e20546f2064657465726d696e65207468652073756363657373206f66207468652062617463682c20616e31016576656e74206973206465706f73697465642e20496620612063616c6c206661696c656420616e64207468652062617463682077617320696e7465727275707465642c207468656e207468655501604261746368496e74657272757074656460206576656e74206973206465706f73697465642c20616c6f6e67207769746820746865206e756d626572206f66207375636365737366756c2063616c6c73206d6164654d01616e6420746865206572726f72206f6620746865206661696c65642063616c6c2e20496620616c6c2077657265207375636365737366756c2c207468656e2074686520604261746368436f6d706c65746564604c6576656e74206973206465706f73697465642e3461735f64657269766174697665080114696e6465782501010c75313600011063616c6c09020160426f783c3c5420617320436f6e6669673e3a3a43616c6c3e000134dc53656e6420612063616c6c207468726f75676820616e20696e64657865642070736575646f6e796d206f66207468652073656e6465722e00550146696c7465722066726f6d206f726967696e206172652070617373656420616c6f6e672e205468652063616c6c2077696c6c2062652064697370617463686564207769746820616e206f726967696e207768696368bc757365207468652073616d652066696c74657220617320746865206f726967696e206f6620746869732063616c6c2e0045014e4f54453a20496620796f75206e65656420746f20656e73757265207468617420616e79206163636f756e742d62617365642066696c746572696e67206973206e6f7420686f6e6f7265642028692e652e61016265636175736520796f7520657870656374206070726f78796020746f2068617665206265656e2075736564207072696f7220696e207468652063616c6c20737461636b20616e6420796f7520646f206e6f742077616e7451017468652063616c6c207265737472696374696f6e7320746f206170706c7920746f20616e79207375622d6163636f756e7473292c207468656e20757365206061735f6d756c74695f7468726573686f6c645f31607c696e20746865204d756c74697369672070616c6c657420696e73746561642e00f44e4f54453a205072696f7220746f2076657273696f6e202a31322c2074686973207761732063616c6c6564206061735f6c696d697465645f737562602e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e2462617463685f616c6c04011463616c6c73310301605665633c3c5420617320436f6e6669673e3a3a43616c6c3e000238ec53656e642061206261746368206f662064697370617463682063616c6c7320616e642061746f6d6963616c6c792065786563757465207468656d2e21015468652077686f6c65207472616e73616374696f6e2077696c6c20726f6c6c6261636b20616e64206661696c20696620616e79206f66207468652063616c6c73206661696c65642e00784d61792062652063616c6c65642066726f6d20616e79206f726967696e2e005d012d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f74390120206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e005d014966206f726967696e20697320726f6f74207468656e2063616c6c2061726520646973706174636820776974686f757420636865636b696e67206f726967696e2066696c7465722e20285468697320696e636c75646573c8627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e002823203c7765696768743e01012d20436f6d706c65786974793a204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e2c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e310300000209020035030c3c70616c6c65745f6964656e746974791870616c6c65741043616c6c04045400013c346164645f72656769737472617204011c6163636f756e74000130543a3a4163636f756e7449640000347841646420612072656769737472617220746f207468652073797374656d2e00fc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652060543a3a5265676973747261724f726967696e602e00a82d20606163636f756e74603a20746865206163636f756e74206f6620746865207265676973747261722e0094456d6974732060526567697374726172416464656460206966207375636365737366756c2e002823203c7765696768743e25012d20604f2852296020776865726520605260207265676973747261722d636f756e742028676f7665726e616e63652d626f756e64656420616e6420636f64652d626f756e646564292e982d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28522960292e302d204f6e65206576656e742e2c23203c2f7765696768743e307365745f6964656e74697479040110696e666f390301a4426f783c4964656e74697479496e666f3c543a3a4d61784164646974696f6e616c4669656c64733e3e00014c290153657420616e206163636f756e742773206964656e7469747920696e666f726d6174696f6e20616e6420726573657276652074686520617070726f707269617465206465706f7369742e005501496620746865206163636f756e7420616c726561647920686173206964656e7469747920696e666f726d6174696f6e2c20746865206465706f7369742069732074616b656e2061732070617274207061796d656e7450666f7220746865206e6577206465706f7369742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e008c2d2060696e666f603a20546865206964656e7469747920696e666f726d6174696f6e2e0088456d69747320604964656e7469747953657460206966207375636365737366756c2e002823203c7765696768743e442d20604f2858202b205827202b205229601d0120202d20776865726520605860206164646974696f6e616c2d6669656c642d636f756e7420286465706f7369742d626f756e64656420616e6420636f64652d626f756e64656429e020202d20776865726520605260206a756467656d656e74732d636f756e7420287265676973747261722d636f756e742d626f756e64656429802d204f6e652062616c616e63652072657365727665206f7065726174696f6e2e21012d204f6e652073746f72616765206d75746174696f6e2028636f6465632d7265616420604f285827202b205229602c20636f6465632d777269746520604f2858202b20522960292e302d204f6e65206576656e742e2c23203c2f7765696768743e207365745f7375627304011073756273c10301645665633c28543a3a4163636f756e7449642c2044617461293e0002548c53657420746865207375622d6163636f756e7473206f66207468652073656e6465722e0055015061796d656e743a20416e79206167677265676174652062616c616e63652072657365727665642062792070726576696f757320607365745f73756273602063616c6c732077696c6c2062652072657475726e65642d01616e6420616e20616d6f756e7420605375624163636f756e744465706f736974602077696c6c20626520726573657276656420666f722065616368206974656d20696e206073756273602e006101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d757374206861766520612072656769737465726564246964656e746974792e00b02d206073756273603a20546865206964656e74697479277320286e657729207375622d6163636f756e74732e002823203c7765696768743e302d20604f2850202b20532960e420202d20776865726520605060206f6c642d737562732d636f756e742028686172642d20616e64206465706f7369742d626f756e646564292ed420202d2077686572652060536020737562732d636f756e742028686172642d20616e64206465706f7369742d626f756e646564292e842d204174206d6f7374206f6e652062616c616e6365206f7065726174696f6e732e142d2044423adc20202d206050202b2053602073746f72616765206d75746174696f6e732028636f64656320636f6d706c657869747920604f2831296029bc20202d204f6e652073746f7261676520726561642028636f64656320636f6d706c657869747920604f28502960292ec020202d204f6e652073746f726167652077726974652028636f64656320636f6d706c657869747920604f28532960292ed020202d204f6e652073746f726167652d6578697374732028604964656e746974794f663a3a636f6e7461696e735f6b657960292e2c23203c2f7765696768743e38636c6561725f6964656e746974790003483901436c65617220616e206163636f756e742773206964656e7469747920696e666f20616e6420616c6c207375622d6163636f756e747320616e642072657475726e20616c6c206465706f736974732e00ec5061796d656e743a20416c6c2072657365727665642062616c616e636573206f6e20746865206163636f756e74206172652072657475726e65642e006101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d757374206861766520612072656769737465726564246964656e746974792e0098456d69747320604964656e74697479436c656172656460206966207375636365737366756c2e002823203c7765696768743e402d20604f2852202b2053202b20582960cc20202d20776865726520605260207265676973747261722d636f756e742028676f7665726e616e63652d626f756e646564292ed420202d2077686572652060536020737562732d636f756e742028686172642d20616e64206465706f7369742d626f756e646564292e210120202d20776865726520605860206164646974696f6e616c2d6669656c642d636f756e7420286465706f7369742d626f756e64656420616e6420636f64652d626f756e646564292e882d204f6e652062616c616e63652d756e72657365727665206f7065726174696f6e2ec82d206032602073746f7261676520726561647320616e64206053202b2032602073746f726167652064656c6574696f6e732e302d204f6e65206576656e742e2c23203c2f7765696768743e44726571756573745f6a756467656d656e740801247265675f696e646578ad010138526567697374726172496e64657800011c6d61785f666565cc013042616c616e63654f663c543e00045c94526571756573742061206a756467656d656e742066726f6d2061207265676973747261722e0055015061796d656e743a204174206d6f737420606d61785f666565602077696c6c20626520726573657276656420666f72207061796d656e7420746f2074686520726567697374726172206966206a756467656d656e7418676976656e2e003501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d757374206861766520615072656769737465726564206964656e746974792e001d012d20607265675f696e646578603a2054686520696e646578206f6620746865207265676973747261722077686f7365206a756467656d656e74206973207265717565737465642e55012d20606d61785f666565603a20546865206d6178696d756d206665652074686174206d617920626520706169642e20546869732073686f756c64206a757374206265206175746f2d706f70756c617465642061733a00306060606e6f636f6d70696c65b853656c663a3a7265676973747261727328292e676574287265675f696e646578292e756e7772617028292e6665650c60606000a4456d69747320604a756467656d656e7452657175657374656460206966207375636365737366756c2e002823203c7765696768743e342d20604f2852202b205829602e802d204f6e652062616c616e63652d72657365727665206f7065726174696f6e2eb82d2053746f726167653a2031207265616420604f285229602c2031206d757461746520604f2858202b205229602e302d204f6e65206576656e742e2c23203c2f7765696768743e3863616e63656c5f726571756573740401247265675f696e646578100138526567697374726172496e6465780005446843616e63656c20612070726576696f757320726571756573742e00f85061796d656e743a20412070726576696f75736c79207265736572766564206465706f7369742069732072657475726e6564206f6e20737563636573732e003501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d757374206861766520615072656769737465726564206964656e746974792e0045012d20607265675f696e646578603a2054686520696e646578206f6620746865207265676973747261722077686f7365206a756467656d656e74206973206e6f206c6f6e676572207265717565737465642e00ac456d69747320604a756467656d656e74556e72657175657374656460206966207375636365737366756c2e002823203c7765696768743e342d20604f2852202b205829602e802d204f6e652062616c616e63652d72657365727665206f7065726174696f6e2e882d204f6e652073746f72616765206d75746174696f6e20604f2852202b205829602e2c2d204f6e65206576656e742c23203c2f7765696768743e1c7365745f666565080114696e646578ad010138526567697374726172496e64657800010c666565cc013042616c616e63654f663c543e0006341901536574207468652066656520726571756972656420666f722061206a756467656d656e7420746f206265207265717565737465642066726f6d2061207265676973747261722e005501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74a06f6620746865207265676973747261722077686f736520696e6465782069732060696e646578602e00f42d2060696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f73652066656520697320746f206265207365742e542d2060666565603a20746865206e6577206665652e002823203c7765696768743e242d20604f285229602e782d204f6e652073746f72616765206d75746174696f6e20604f285229602ee42d2042656e63686d61726b3a20372e333135202b2052202a20302e33323920c2b57320286d696e207371756172657320616e616c79736973292c23203c2f7765696768743e387365745f6163636f756e745f6964080114696e646578ad010138526567697374726172496e64657800010c6e6577000130543a3a4163636f756e744964000734bc4368616e676520746865206163636f756e74206173736f63696174656420776974682061207265676973747261722e005501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74a06f6620746865207265676973747261722077686f736520696e6465782069732060696e646578602e00f42d2060696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f73652066656520697320746f206265207365742e702d20606e6577603a20746865206e6577206163636f756e742049442e002823203c7765696768743e242d20604f285229602e782d204f6e652073746f72616765206d75746174696f6e20604f285229602ee02d2042656e63686d61726b3a20382e383233202b2052202a20302e333220c2b57320286d696e207371756172657320616e616c79736973292c23203c2f7765696768743e287365745f6669656c6473080114696e646578ad010138526567697374726172496e6465780001186669656c6473c90301384964656e746974794669656c6473000834a853657420746865206669656c6420696e666f726d6174696f6e20666f722061207265676973747261722e005501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74a06f6620746865207265676973747261722077686f736520696e6465782069732060696e646578602e00f42d2060696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f73652066656520697320746f206265207365742e0d012d20606669656c6473603a20746865206669656c64732074686174207468652072656769737472617220636f6e6365726e73207468656d73656c76657320776974682e002823203c7765696768743e242d20604f285229602e782d204f6e652073746f72616765206d75746174696f6e20604f285229602ee42d2042656e63686d61726b3a20372e343634202b2052202a20302e33323520c2b57320286d696e207371756172657320616e616c79736973292c23203c2f7765696768743e4470726f766964655f6a756467656d656e740c01247265675f696e646578ad010138526567697374726172496e6465780001187461726765744d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001246a756467656d656e74d103015c4a756467656d656e743c42616c616e63654f663c543e3e00094cb850726f766964652061206a756467656d656e7420666f7220616e206163636f756e742773206964656e746974792e005501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74b06f6620746865207265676973747261722077686f736520696e64657820697320607265675f696e646578602e0021012d20607265675f696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f7365206a756467656d656e74206973206265696e67206d6164652e55012d2060746172676574603a20746865206163636f756e742077686f7365206964656e7469747920746865206a756467656d656e742069732075706f6e2e2054686973206d75737420626520616e206163636f756e747420207769746820612072656769737465726564206964656e746974792e49012d20606a756467656d656e74603a20746865206a756467656d656e74206f662074686520726567697374726172206f6620696e64657820607265675f696e646578602061626f75742060746172676574602e0094456d69747320604a756467656d656e74476976656e60206966207375636365737366756c2e002823203c7765696768743e342d20604f2852202b205829602e842d204f6e652062616c616e63652d7472616e73666572206f7065726174696f6e2e942d20557020746f206f6e65206163636f756e742d6c6f6f6b7570206f7065726174696f6e2eb82d2053746f726167653a2031207265616420604f285229602c2031206d757461746520604f2852202b205829602e302d204f6e65206576656e742e2c23203c2f7765696768743e346b696c6c5f6964656e746974790401187461726765744d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365000a4c410152656d6f766520616e206163636f756e742773206964656e7469747920616e64207375622d6163636f756e7420696e666f726d6174696f6e20616e6420736c61736820746865206465706f736974732e0061015061796d656e743a2052657365727665642062616c616e6365732066726f6d20607365745f737562736020616e6420607365745f6964656e74697479602061726520736c617368656420616e642068616e646c6564206279450160536c617368602e20566572696669636174696f6e2072657175657374206465706f7369747320617265206e6f742072657475726e65643b20746865792073686f756c642062652063616e63656c6c6564806d616e75616c6c79207573696e67206063616e63656c5f72657175657374602e00f8546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206d617463682060543a3a466f7263654f726967696e602e0055012d2060746172676574603a20746865206163636f756e742077686f7365206964656e7469747920746865206a756467656d656e742069732075706f6e2e2054686973206d75737420626520616e206163636f756e747420207769746820612072656769737465726564206964656e746974792e0094456d69747320604964656e746974794b696c6c656460206966207375636365737366756c2e002823203c7765696768743e442d20604f2852202b2053202b205829602e802d204f6e652062616c616e63652d72657365727665206f7065726174696f6e2e702d206053202b2032602073746f72616765206d75746174696f6e732e302d204f6e65206576656e742e2c23203c2f7765696768743e1c6164645f73756208010c7375624d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365000110646174614503011044617461000b1cac4164642074686520676976656e206163636f756e7420746f207468652073656e646572277320737562732e005d015061796d656e743a2042616c616e636520726573657276656420627920612070726576696f757320607365745f73756273602063616c6c20666f72206f6e65207375622077696c6c20626520726570617472696174656438746f207468652073656e6465722e006101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652061207265676973746572656458737562206964656e74697479206f662060737562602e2872656e616d655f73756208010c7375624d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365000110646174614503011044617461000c10cc416c74657220746865206173736f636961746564206e616d65206f662074686520676976656e207375622d6163636f756e742e006101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652061207265676973746572656458737562206964656e74697479206f662060737562602e2872656d6f76655f73756204010c7375624d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365000d1cc052656d6f76652074686520676976656e206163636f756e742066726f6d207468652073656e646572277320737562732e005d015061796d656e743a2042616c616e636520726573657276656420627920612070726576696f757320607365745f73756273602063616c6c20666f72206f6e65207375622077696c6c20626520726570617472696174656438746f207468652073656e6465722e006101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652061207265676973746572656458737562206964656e74697479206f662060737562602e20717569745f737562000e288c52656d6f7665207468652073656e6465722061732061207375622d6163636f756e742e005d015061796d656e743a2042616c616e636520726573657276656420627920612070726576696f757320607365745f73756273602063616c6c20666f72206f6e65207375622077696c6c206265207265706174726961746564b4746f207468652073656e64657220282a6e6f742a20746865206f726967696e616c206465706f7369746f72292e006101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d7573742068617665206120726567697374657265643c73757065722d6964656e746974792e0045014e4f54453a20546869732073686f756c64206e6f74206e6f726d616c6c7920626520757365642c206275742069732070726f766964656420696e207468652063617365207468617420746865206e6f6e2d1101636f6e74726f6c6c6572206f6620616e206163636f756e74206973206d616c6963696f75736c7920726567697374657265642061732061207375622d6163636f756e742e04704964656e746974792070616c6c6574206465636c61726174696f6e2e39030c3c70616c6c65745f6964656e74697479147479706573304964656e74697479496e666f04284669656c644c696d697400002401286164646974696f6e616c3d030190426f756e6465645665633c28446174612c2044617461292c204669656c644c696d69743e00011c646973706c617945030110446174610001146c6567616c450301104461746100010c776562450301104461746100011072696f744503011044617461000114656d61696c450301104461746100013c7067705f66696e6765727072696e74bd0301404f7074696f6e3c5b75383b2032305d3e000114696d616765450301104461746100011c74776974746572450301104461746100003d0310346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e646564566563080454014103045300000400b90301185665633c543e0000410300000408450345030045030c3c70616c6c65745f6964656e746974791474797065731044617461000198104e6f6e6500000010526177300400490300000100105261773104004d0300000200105261773204005103000003001052617733040055030000040010526177340400380000050010526177350400590300000600105261773604005d03000007001052617737040061030000080010526177380400f5010000090010526177390400650300000a001452617731300400690300000b0014526177313104006d0300000c001452617731320400710300000d001452617731330400750300000e001452617731340400790300000f0014526177313504007d03000010001452617731360400980000110014526177313704008103000012001452617731380400850300001300145261773139040089030000140014526177323004000d010000150014526177323104008d030000160014526177323204009103000017001452617732330400950300001800145261773234040099030000190014526177323504009d0300001a001452617732360400a10300001b001452617732370400a50300001c001452617732380400a90300001d001452617732390400ad0300001e001452617733300400b10300001f001452617733310400b50300002000145261773332040004000021002c426c616b6554776f323536040004000022001853686132353604000400002300244b656363616b323536040004000024002c5368615468726565323536040004000025000049030000030000000008004d030000030100000008005103000003020000000800550300000303000000080059030000030500000008005d030000030600000008006103000003070000000800650300000309000000080069030000030a00000008006d030000030b000000080071030000030c000000080075030000030d000000080079030000030e00000008007d030000030f00000008008103000003110000000800850300000312000000080089030000031300000008008d030000031500000008009103000003160000000800950300000317000000080099030000031800000008009d03000003190000000800a1030000031a0000000800a5030000031b0000000800a9030000031c0000000800ad030000031d0000000800b1030000031e0000000800b5030000031f0000000800b903000002410300bd0304184f7074696f6e040454010d010108104e6f6e6500000010536f6d6504000d010000010000c103000002c50300c5030000040800450300c9030c3c70616c6c65745f6964656e7469747914747970657320426974466c61677304045401cd030004002001344964656e746974794669656c640000cd030c3c70616c6c65745f6964656e74697479147479706573344964656e746974794669656c640001201c446973706c6179000100144c6567616c0002000c5765620004001052696f7400080014456d61696c0010003850677046696e6765727072696e7400200014496d6167650040001c5477697474657200800000d1030c3c70616c6c65745f6964656e74697479147479706573244a756467656d656e74041c42616c616e63650118011c1c556e6b6e6f776e0000001c46656550616964040018011c42616c616e636500010028526561736f6e61626c65000200244b6e6f776e476f6f64000300244f75744f6644617465000400284c6f775175616c697479000500244572726f6e656f757300060000d5030c3070616c6c65745f70726f78791870616c6c65741043616c6c0404540001281470726f78790c01107265616c000130543a3a4163636f756e744964000140666f7263655f70726f78795f74797065d90301504f7074696f6e3c543a3a50726f7879547970653e00011063616c6c09020160426f783c3c5420617320436f6e6669673e3a3a43616c6c3e00003c4d0144697370617463682074686520676976656e206063616c6c602066726f6d20616e206163636f756e742074686174207468652073656e64657220697320617574686f726973656420666f72207468726f75676830606164645f70726f7879602e00a852656d6f76657320616e7920636f72726573706f6e64696e6720616e6e6f756e63656d656e742873292e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a0d012d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e61012d2060666f7263655f70726f78795f74797065603a2053706563696679207468652065786163742070726f7879207479706520746f206265207573656420616e6420636865636b656420666f7220746869732063616c6c2ed02d206063616c6c603a205468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e002823203c7765696768743efc57656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e2c23203c2f7765696768743e246164645f70726f78790c012064656c6567617465000130543a3a4163636f756e74496400012870726f78795f7479706521010130543a3a50726f78795479706500011464656c6179100138543a3a426c6f636b4e756d6265720001344501526567697374657220612070726f7879206163636f756e7420666f72207468652073656e64657220746861742069732061626c6520746f206d616b652063616c6c73206f6e2069747320626568616c662e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a11012d206070726f7879603a20546865206163636f756e74207468617420746865206063616c6c65726020776f756c64206c696b6520746f206d616b6520612070726f78792efc2d206070726f78795f74797065603a20546865207065726d697373696f6e7320616c6c6f77656420666f7220746869732070726f7879206163636f756e742e4d012d206064656c6179603a2054686520616e6e6f756e63656d656e7420706572696f64207265717569726564206f662074686520696e697469616c2070726f78792e2057696c6c2067656e6572616c6c79206265147a65726f2e002823203c7765696768743efc57656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e2c23203c2f7765696768743e3072656d6f76655f70726f78790c012064656c6567617465000130543a3a4163636f756e74496400012870726f78795f7479706521010130543a3a50726f78795479706500011464656c6179100138543a3a426c6f636b4e756d62657200022ca8556e726567697374657220612070726f7879206163636f756e7420666f72207468652073656e6465722e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a25012d206070726f7879603a20546865206163636f756e74207468617420746865206063616c6c65726020776f756c64206c696b6520746f2072656d6f766520617320612070726f78792e41012d206070726f78795f74797065603a20546865207065726d697373696f6e732063757272656e746c7920656e61626c656420666f72207468652072656d6f7665642070726f7879206163636f756e742e002823203c7765696768743efc57656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e2c23203c2f7765696768743e3872656d6f76655f70726f78696573000328b4556e726567697374657220616c6c2070726f7879206163636f756e747320666f72207468652073656e6465722e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0055015741524e494e473a2054686973206d61792062652063616c6c6564206f6e206163636f756e747320637265617465642062792060616e6f6e796d6f7573602c20686f776576657220696620646f6e652c207468656e590174686520756e726573657276656420666565732077696c6c20626520696e61636365737369626c652e202a2a416c6c2061636365737320746f2074686973206163636f756e742077696c6c206265206c6f73742e2a2a002823203c7765696768743efc57656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e2c23203c2f7765696768743e24616e6f6e796d6f75730c012870726f78795f7479706521010130543a3a50726f78795479706500011464656c6179100138543a3a426c6f636b4e756d626572000114696e6465782501010c75313600045c3901537061776e2061206672657368206e6577206163636f756e7420746861742069732067756172616e7465656420746f206265206f746865727769736520696e61636365737369626c652c20616e64fc696e697469616c697a65206974207769746820612070726f7879206f66206070726f78795f747970656020666f7220606f726967696e602073656e6465722e006c5265717569726573206120605369676e656460206f726967696e2e0051012d206070726f78795f74797065603a205468652074797065206f66207468652070726f78792074686174207468652073656e6465722077696c6c2062652072656769737465726564206173206f766572207468654d016e6577206163636f756e742e20546869732077696c6c20616c6d6f737420616c7761797320626520746865206d6f7374207065726d697373697665206050726f7879547970656020706f737369626c6520746f78616c6c6f7720666f72206d6178696d756d20666c65786962696c6974792e51012d2060696e646578603a204120646973616d626967756174696f6e20696e6465782c20696e206361736520746869732069732063616c6c6564206d756c7469706c652074696d657320696e207468652073616d655d017472616e73616374696f6e2028652e672e207769746820607574696c6974793a3a626174636860292e20556e6c65737320796f75277265207573696e67206062617463686020796f752070726f6261626c79206a7573744077616e7420746f20757365206030602e4d012d206064656c6179603a2054686520616e6e6f756e63656d656e7420706572696f64207265717569726564206f662074686520696e697469616c2070726f78792e2057696c6c2067656e6572616c6c79206265147a65726f2e0051014661696c73207769746820604475706c69636174656020696620746869732068617320616c7265616479206265656e2063616c6c656420696e2074686973207472616e73616374696f6e2c2066726f6d207468659873616d652073656e6465722c2077697468207468652073616d6520706172616d65746572732e00e44661696c732069662074686572652061726520696e73756666696369656e742066756e647320746f2070617920666f72206465706f7369742e002823203c7765696768743efc57656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e2c23203c2f7765696768743e8c544f444f3a204d69676874206265206f76657220636f756e74696e6720312072656164386b696c6c5f616e6f6e796d6f757314011c737061776e6572000130543a3a4163636f756e74496400012870726f78795f7479706521010130543a3a50726f787954797065000114696e6465782501010c753136000118686569676874ad010138543a3a426c6f636b4e756d6265720001246578745f696e646578ad01010c753332000550b452656d6f76657320612070726576696f75736c7920737061776e656420616e6f6e796d6f75732070726f78792e0049015741524e494e473a202a2a416c6c2061636365737320746f2074686973206163636f756e742077696c6c206265206c6f73742e2a2a20416e792066756e64732068656c6420696e2069742077696c6c20626534696e61636365737369626c652e0059015265717569726573206120605369676e656460206f726967696e2c20616e64207468652073656e646572206163636f756e74206d7573742068617665206265656e206372656174656420627920612063616c6c20746fa860616e6f6e796d6f757360207769746820636f72726573706f6e64696e6720706172616d65746572732e004d012d2060737061776e6572603a20546865206163636f756e742074686174206f726967696e616c6c792063616c6c65642060616e6f6e796d6f75736020746f206372656174652074686973206163636f756e742e4d012d2060696e646578603a2054686520646973616d626967756174696f6e20696e646578206f726967696e616c6c792070617373656420746f2060616e6f6e796d6f7573602e2050726f6261626c79206030602e01012d206070726f78795f74797065603a205468652070726f78792074797065206f726967696e616c6c792070617373656420746f2060616e6f6e796d6f7573602e3d012d2060686569676874603a2054686520686569676874206f662074686520636861696e207768656e207468652063616c6c20746f2060616e6f6e796d6f757360207761732070726f6365737365642e49012d20606578745f696e646578603a205468652065787472696e73696320696e64657820696e207768696368207468652063616c6c20746f2060616e6f6e796d6f757360207761732070726f6365737365642e0049014661696c73207769746820604e6f5065726d697373696f6e6020696e2063617365207468652063616c6c6572206973206e6f7420612070726576696f75736c79206372656174656420616e6f6e796d6f7573f06163636f756e742077686f73652060616e6f6e796d6f7573602063616c6c2068617320636f72726573706f6e64696e6720706172616d65746572732e002823203c7765696768743efc57656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e2c23203c2f7765696768743e20616e6e6f756e63650801107265616c000130543a3a4163636f756e74496400012463616c6c5f6861736824013443616c6c486173684f663c543e00065405015075626c697368207468652068617368206f6620612070726f78792d63616c6c20746861742077696c6c206265206d61646520696e20746865206675747572652e005d0154686973206d7573742062652063616c6c656420736f6d65206e756d626572206f6620626c6f636b73206265666f72652074686520636f72726573706f6e64696e67206070726f78796020697320617474656d7074656425016966207468652064656c6179206173736f6369617465642077697468207468652070726f78792072656c6174696f6e736869702069732067726561746572207468616e207a65726f2e0011014e6f206d6f7265207468616e20604d617850656e64696e676020616e6e6f756e63656d656e7473206d6179206265206d61646520617420616e79206f6e652074696d652e000901546869732077696c6c2074616b652061206465706f736974206f662060416e6e6f756e63656d656e744465706f736974466163746f72602061732077656c6c206173190160416e6e6f756e63656d656e744465706f736974426173656020696620746865726520617265206e6f206f746865722070656e64696e6720616e6e6f756e63656d656e74732e002501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420612070726f7879206f6620607265616c602e002c506172616d65746572733a0d012d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e15012d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e002823203c7765696768743e6057656967687420697320612066756e6374696f6e206f663a982d20413a20746865206e756d626572206f6620616e6e6f756e63656d656e7473206d6164652ea02d20503a20746865206e756d626572206f662070726f78696573207468652075736572206861732e2c23203c2f7765696768743e4c72656d6f76655f616e6e6f756e63656d656e740801107265616c000130543a3a4163636f756e74496400012463616c6c5f6861736824013443616c6c486173684f663c543e0007407052656d6f7665206120676976656e20616e6e6f756e63656d656e742e0059014d61792062652063616c6c656420627920612070726f7879206163636f756e7420746f2072656d6f766520612063616c6c20746865792070726576696f75736c7920616e6e6f756e63656420616e642072657475726e30746865206465706f7369742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a0d012d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e15012d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e002823203c7765696768743e6057656967687420697320612066756e6374696f6e206f663a982d20413a20746865206e756d626572206f6620616e6e6f756e63656d656e7473206d6164652ea02d20503a20746865206e756d626572206f662070726f78696573207468652075736572206861732e2c23203c2f7765696768743e4c72656a6563745f616e6e6f756e63656d656e7408012064656c6567617465000130543a3a4163636f756e74496400012463616c6c5f6861736824013443616c6c486173684f663c543e000840b052656d6f76652074686520676976656e20616e6e6f756e63656d656e74206f6620612064656c65676174652e0061014d61792062652063616c6c6564206279206120746172676574202870726f7869656429206163636f756e7420746f2072656d6f766520612063616c6c2074686174206f6e65206f662074686569722064656c6567617465732501286064656c656761746560292068617320616e6e6f756e63656420746865792077616e7420746f20657865637574652e20546865206465706f7369742069732072657475726e65642e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733af42d206064656c6567617465603a20546865206163636f756e7420746861742070726576696f75736c7920616e6e6f756e636564207468652063616c6c2ebc2d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f206265206d6164652e002823203c7765696768743e6057656967687420697320612066756e6374696f6e206f663a982d20413a20746865206e756d626572206f6620616e6e6f756e63656d656e7473206d6164652ea02d20503a20746865206e756d626572206f662070726f78696573207468652075736572206861732e2c23203c2f7765696768743e3c70726f78795f616e6e6f756e63656410012064656c6567617465000130543a3a4163636f756e7449640001107265616c000130543a3a4163636f756e744964000140666f7263655f70726f78795f74797065d90301504f7074696f6e3c543a3a50726f7879547970653e00011063616c6c09020160426f783c3c5420617320436f6e6669673e3a3a43616c6c3e0009444d0144697370617463682074686520676976656e206063616c6c602066726f6d20616e206163636f756e742074686174207468652073656e64657220697320617574686f72697a656420666f72207468726f75676830606164645f70726f7879602e00a852656d6f76657320616e7920636f72726573706f6e64696e6720616e6e6f756e63656d656e742873292e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a0d012d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e61012d2060666f7263655f70726f78795f74797065603a2053706563696679207468652065786163742070726f7879207479706520746f206265207573656420616e6420636865636b656420666f7220746869732063616c6c2ed02d206063616c6c603a205468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e002823203c7765696768743e6057656967687420697320612066756e6374696f6e206f663a982d20413a20746865206e756d626572206f6620616e6e6f756e63656d656e7473206d6164652ea02d20503a20746865206e756d626572206f662070726f78696573207468652075736572206861732e2c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ed90304184f7074696f6e0404540121010108104e6f6e6500000010536f6d65040021010000010000dd030c3c70616c6c65745f6d756c74697369671870616c6c65741043616c6c0404540001105061735f6d756c74695f7468726573686f6c645f310801446f746865725f7369676e61746f72696573dc01445665633c543a3a4163636f756e7449643e00011063616c6c09020160426f783c3c5420617320436f6e6669673e3a3a43616c6c3e0000405101496d6d6564696174656c792064697370617463682061206d756c74692d7369676e61747572652063616c6c207573696e6720612073696e676c6520617070726f76616c2066726f6d207468652063616c6c65722e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003d012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f206172652070617274206f662074686501016d756c74692d7369676e61747572652c2062757420646f206e6f7420706172746963697061746520696e2074686520617070726f76616c2070726f636573732e882d206063616c6c603a205468652063616c6c20746f2062652065786563757465642e00b8526573756c74206973206571756976616c656e7420746f20746865206469737061746368656420726573756c742e002823203c7765696768743e19014f285a202b204329207768657265205a20697320746865206c656e677468206f66207468652063616c6c20616e6420432069747320657865637574696f6e207765696768742e7c2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d442d204442205765696768743a204e6f6e65482d20506c75732043616c6c205765696768742c23203c2f7765696768743e2061735f6d756c74691801247468726573686f6c642501010c7531360001446f746865725f7369676e61746f72696573dc01445665633c543a3a4163636f756e7449643e00013c6d617962655f74696d65706f696e74e10301844f7074696f6e3c54696d65706f696e743c543a3a426c6f636b4e756d6265723e3e00011063616c6c2801284f706171756543616c6c00012873746f72655f63616c6ce80110626f6f6c0001286d61785f7765696768742001185765696768740001b45501526567697374657220617070726f76616c20666f72206120646973706174636820746f206265206d6164652066726f6d20612064657465726d696e697374696320636f6d706f73697465206163636f756e74206966f8617070726f766564206279206120746f74616c206f6620607468726573686f6c64202d203160206f6620606f746865725f7369676e61746f72696573602e00b049662074686572652061726520656e6f7567682c207468656e206469737061746368207468652063616c6c2e002d015061796d656e743a20604465706f73697442617365602077696c6c20626520726573657276656420696620746869732069732074686520666972737420617070726f76616c2c20706c75733d01607468726573686f6c64602074696d657320604465706f736974466163746f72602e2049742069732072657475726e6564206f6e636520746869732064697370617463682068617070656e73206f723469732063616e63656c6c65642e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0055012d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e41012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f766520746869736c64697370617463682e204d6179206e6f7420626520656d7074792e59012d20606d617962655f74696d65706f696e74603a20496620746869732069732074686520666972737420617070726f76616c2c207468656e2074686973206d75737420626520604e6f6e65602e20496620697420697351016e6f742074686520666972737420617070726f76616c2c207468656e206974206d7573742062652060536f6d65602c2077697468207468652074696d65706f696e742028626c6f636b206e756d62657220616e64d47472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c207472616e73616374696f6e2e882d206063616c6c603a205468652063616c6c20746f2062652065786563757465642e001d014e4f54453a20556e6c6573732074686973206973207468652066696e616c20617070726f76616c2c20796f752077696c6c2067656e6572616c6c792077616e7420746f20757365190160617070726f76655f61735f6d756c74696020696e73746561642c2073696e6365206974206f6e6c7920726571756972657320612068617368206f66207468652063616c6c2e005901526573756c74206973206571756976616c656e7420746f20746865206469737061746368656420726573756c7420696620607468726573686f6c64602069732065786163746c79206031602e204f746865727769736555016f6e20737563636573732c20726573756c7420697320604f6b6020616e642074686520726573756c742066726f6d2074686520696e746572696f722063616c6c2c206966206974207761732065786563757465642cdc6d617920626520666f756e6420696e20746865206465706f736974656420604d756c7469736967457865637574656460206576656e742e002823203c7765696768743e502d20604f2853202b205a202b2043616c6c29602ecc2d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e3d012d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f66450120207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2e21012d204f6e652063616c6c20656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285a296020776865726520605a602069732074782d6c656e2ebc2d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602ed42d20557020746f206f6e652062696e6172792073656172636820616e6420696e736572742028604f286c6f6753202b20532960292ef82d20492f4f3a2031207265616420604f285329602c20757020746f2031206d757461746520604f285329602e20557020746f206f6e652072656d6f76652e302d204f6e65206576656e742e6c2d2054686520776569676874206f6620746865206063616c6c602e4d012d2053746f726167653a20696e7365727473206f6e65206974656d2c2076616c75652073697a6520626f756e64656420627920604d61785369676e61746f72696573602c20776974682061206465706f7369741901202074616b656e20666f7220697473206c69666574696d65206f6620604465706f73697442617365202b207468726573686f6c64202a204465706f736974466163746f72602e7c2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d302d204442205765696768743a2101202020202d2052656164733a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d2c2043616c6c7320286966206073746f72655f63616c6c60292501202020202d205772697465733a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d2c2043616c6c7320286966206073746f72655f63616c6c6029482d20506c75732043616c6c205765696768742c23203c2f7765696768743e40617070726f76655f61735f6d756c74691401247468726573686f6c642501010c7531360001446f746865725f7369676e61746f72696573dc01445665633c543a3a4163636f756e7449643e00013c6d617962655f74696d65706f696e74e10301844f7074696f6e3c54696d65706f696e743c543a3a426c6f636b4e756d6265723e3e00012463616c6c5f686173680401205b75383b2033325d0001286d61785f77656967687420011857656967687400028c5501526567697374657220617070726f76616c20666f72206120646973706174636820746f206265206d6164652066726f6d20612064657465726d696e697374696320636f6d706f73697465206163636f756e74206966f8617070726f766564206279206120746f74616c206f6620607468726573686f6c64202d203160206f6620606f746865725f7369676e61746f72696573602e002d015061796d656e743a20604465706f73697442617365602077696c6c20626520726573657276656420696620746869732069732074686520666972737420617070726f76616c2c20706c75733d01607468726573686f6c64602074696d657320604465706f736974466163746f72602e2049742069732072657475726e6564206f6e636520746869732064697370617463682068617070656e73206f723469732063616e63656c6c65642e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0055012d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e41012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f766520746869736c64697370617463682e204d6179206e6f7420626520656d7074792e59012d20606d617962655f74696d65706f696e74603a20496620746869732069732074686520666972737420617070726f76616c2c207468656e2074686973206d75737420626520604e6f6e65602e20496620697420697351016e6f742074686520666972737420617070726f76616c2c207468656e206974206d7573742062652060536f6d65602c2077697468207468652074696d65706f696e742028626c6f636b206e756d62657220616e64d47472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c207472616e73616374696f6e2ecc2d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f2062652065786563757465642e0035014e4f54453a2049662074686973206973207468652066696e616c20617070726f76616c2c20796f752077696c6c2077616e7420746f20757365206061735f6d756c74696020696e73746561642e002823203c7765696768743e242d20604f285329602ecc2d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e3d012d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f66450120207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2ebc2d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602ed42d20557020746f206f6e652062696e6172792073656172636820616e6420696e736572742028604f286c6f6753202b20532960292ef82d20492f4f3a2031207265616420604f285329602c20757020746f2031206d757461746520604f285329602e20557020746f206f6e652072656d6f76652e302d204f6e65206576656e742e4d012d2053746f726167653a20696e7365727473206f6e65206974656d2c2076616c75652073697a6520626f756e64656420627920604d61785369676e61746f72696573602c20776974682061206465706f7369741901202074616b656e20666f7220697473206c69666574696d65206f6620604465706f73697442617365202b207468726573686f6c64202a204465706f736974466163746f72602e882d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d302d204442205765696768743ab8202020202d20526561643a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745dbc202020202d2057726974653a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d2c23203c2f7765696768743e3c63616e63656c5f61735f6d756c74691001247468726573686f6c642501010c7531360001446f746865725f7369676e61746f72696573dc01445665633c543a3a4163636f756e7449643e00012474696d65706f696e742d01016454696d65706f696e743c543a3a426c6f636b4e756d6265723e00012463616c6c5f686173680401205b75383b2033325d000368550143616e63656c2061207072652d6578697374696e672c206f6e2d676f696e67206d756c7469736967207472616e73616374696f6e2e20416e79206465706f7369742072657365727665642070726576696f75736c79c4666f722074686973206f7065726174696f6e2077696c6c20626520756e7265736572766564206f6e20737563636573732e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0055012d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e41012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f766520746869736c64697370617463682e204d6179206e6f7420626520656d7074792e5d012d206074696d65706f696e74603a205468652074696d65706f696e742028626c6f636b206e756d62657220616e64207472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c787472616e73616374696f6e20666f7220746869732064697370617463682ecc2d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f2062652065786563757465642e002823203c7765696768743e242d20604f285329602ecc2d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e3d012d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f66450120207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2ebc2d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602e302d204f6e65206576656e742e842d20492f4f3a2031207265616420604f285329602c206f6e652072656d6f76652e702d2053746f726167653a2072656d6f766573206f6e65206974656d2e882d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d302d204442205765696768743a1501202020202d20526561643a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d2c20526566756e64204163636f756e742c2043616c6c731901202020202d2057726974653a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d2c20526566756e64204163636f756e742c2043616c6c732c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ee10304184f7074696f6e040454012d010108104e6f6e6500000010536f6d6504002d010000010000e5030c3c70616c6c65745f626f756e746965731870616c6c65741043616c6c0404540001243870726f706f73655f626f756e747908011476616c7565cc013042616c616e63654f663c543e00012c6465736372697074696f6e28011c5665633c75383e0000305450726f706f73652061206e657720626f756e74792e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0051015061796d656e743a20605469705265706f72744465706f73697442617365602077696c6c2062652072657365727665642066726f6d20746865206f726967696e206163636f756e742c2061732077656c6c206173510160446174614465706f736974506572427974656020666f722065616368206279746520696e2060726561736f6e602e2049742077696c6c20626520756e72657365727665642075706f6e20617070726f76616c2c646f7220736c6173686564207768656e2072656a65637465642e00f82d206063757261746f72603a205468652063757261746f72206163636f756e742077686f6d2077696c6c206d616e616765207468697320626f756e74792e642d2060666565603a205468652063757261746f72206665652e25012d206076616c7565603a2054686520746f74616c207061796d656e7420616d6f756e74206f66207468697320626f756e74792c2063757261746f722066656520696e636c756465642ec02d20606465736372697074696f6e603a20546865206465736372697074696f6e206f66207468697320626f756e74792e38617070726f76655f626f756e7479040124626f756e74795f6964ad01012c426f756e7479496e6465780001205d01417070726f7665206120626f756e74792070726f706f73616c2e2041742061206c617465722074696d652c2074686520626f756e74792077696c6c2062652066756e64656420616e64206265636f6d6520616374697665a8616e6420746865206f726967696e616c206465706f7369742077696c6c2062652072657475726e65642e00ac4d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a417070726f76654f726967696e602e002823203c7765696768743e1c2d204f2831292e2c23203c2f7765696768743e3c70726f706f73655f63757261746f720c0124626f756e74795f6964ad01012c426f756e7479496e64657800011c63757261746f724d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500010c666565cc013042616c616e63654f663c543e00021c9041737369676e20612063757261746f7220746f20612066756e64656420626f756e74792e00ac4d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a417070726f76654f726967696e602e002823203c7765696768743e1c2d204f2831292e2c23203c2f7765696768743e40756e61737369676e5f63757261746f72040124626f756e74795f6964ad01012c426f756e7479496e6465780003487c556e61737369676e2063757261746f722066726f6d206120626f756e74792e001d01546869732066756e6374696f6e2063616e206f6e6c792062652063616c6c656420627920746865206052656a6563744f726967696e602061207369676e6564206f726967696e2e003d01496620746869732066756e6374696f6e2069732063616c6c656420627920746865206052656a6563744f726967696e602c20776520617373756d652074686174207468652063757261746f7220697331016d616c6963696f7573206f7220696e6163746976652e204173206120726573756c742c2077652077696c6c20736c617368207468652063757261746f72207768656e20706f737369626c652e006101496620746865206f726967696e206973207468652063757261746f722c2077652074616b6520746869732061732061207369676e20746865792061726520756e61626c6520746f20646f207468656972206a6f6220616e645d01746865792077696c6c696e676c7920676976652075702e20576520636f756c6420736c617368207468656d2c2062757420666f72206e6f7720776520616c6c6f77207468656d20746f207265636f76657220746865697235016465706f73697420616e64206578697420776974686f75742069737375652e20285765206d61792077616e7420746f206368616e67652074686973206966206974206973206162757365642e29005d0146696e616c6c792c20746865206f726967696e2063616e20626520616e796f6e6520696620616e64206f6e6c79206966207468652063757261746f722069732022696e616374697665222e205468697320616c6c6f77736101616e796f6e6520696e2074686520636f6d6d756e69747920746f2063616c6c206f7574207468617420612063757261746f72206973206e6f7420646f696e67207468656972206475652064696c6967656e63652c20616e64390177652073686f756c64207069636b2061206e65772063757261746f722e20496e20746869732063617365207468652063757261746f722073686f756c6420616c736f20626520736c61736865642e002823203c7765696768743e1c2d204f2831292e2c23203c2f7765696768743e386163636570745f63757261746f72040124626f756e74795f6964ad01012c426f756e7479496e64657800042094416363657074207468652063757261746f7220726f6c6520666f72206120626f756e74792e290141206465706f7369742077696c6c2062652072657365727665642066726f6d2063757261746f7220616e6420726566756e642075706f6e207375636365737366756c207061796f75742e00904d6179206f6e6c792062652063616c6c65642066726f6d207468652063757261746f722e002823203c7765696768743e1c2d204f2831292e2c23203c2f7765696768743e3061776172645f626f756e7479080124626f756e74795f6964ad01012c426f756e7479496e64657800012c62656e65666963696172794d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500052c5901417761726420626f756e747920746f20612062656e6566696369617279206163636f756e742e205468652062656e65666963696172792077696c6c2062652061626c6520746f20636c61696d207468652066756e647338616674657220612064656c61792e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265207468652063757261746f72206f66207468697320626f756e74792e00882d2060626f756e74795f6964603a20426f756e747920494420746f2061776172642e19012d206062656e6566696369617279603a205468652062656e6566696369617279206163636f756e742077686f6d2077696c6c207265636569766520746865207061796f75742e002823203c7765696768743e1c2d204f2831292e2c23203c2f7765696768743e30636c61696d5f626f756e7479040124626f756e74795f6964ad01012c426f756e7479496e646578000624ec436c61696d20746865207061796f75742066726f6d20616e206177617264656420626f756e7479206166746572207061796f75742064656c61792e002501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265207468652062656e6566696369617279206f66207468697320626f756e74792e00882d2060626f756e74795f6964603a20426f756e747920494420746f20636c61696d2e002823203c7765696768743e1c2d204f2831292e2c23203c2f7765696768743e30636c6f73655f626f756e7479040124626f756e74795f6964ad01012c426f756e7479496e646578000728390143616e63656c20612070726f706f736564206f722061637469766520626f756e74792e20416c6c207468652066756e64732077696c6c2062652073656e7420746f20747265617375727920616e64cc7468652063757261746f72206465706f7369742077696c6c20626520756e726573657276656420696620706f737369626c652e00c84f6e6c792060543a3a52656a6563744f726967696e602069732061626c6520746f2063616e63656c206120626f756e74792e008c2d2060626f756e74795f6964603a20426f756e747920494420746f2063616e63656c2e002823203c7765696768743e1c2d204f2831292e2c23203c2f7765696768743e50657874656e645f626f756e74795f657870697279080124626f756e74795f6964ad01012c426f756e7479496e64657800011872656d61726b28011c5665633c75383e000828ac457874656e6420746865206578706972792074696d65206f6620616e2061637469766520626f756e74792e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265207468652063757261746f72206f66207468697320626f756e74792e008c2d2060626f756e74795f6964603a20426f756e747920494420746f20657874656e642e8c2d206072656d61726b603a206164646974696f6e616c20696e666f726d6174696f6e2e002823203c7765696768743e1c2d204f2831292e2c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ee9030c2c70616c6c65745f746970731870616c6c65741043616c6c040454000118387265706f72745f617765736f6d65080118726561736f6e28011c5665633c75383e00010c77686f000130543a3a4163636f756e74496400004c59015265706f727420736f6d657468696e672060726561736f6e60207468617420646573657276657320612074697020616e6420636c61696d20616e79206576656e7475616c207468652066696e6465722773206665652e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0051015061796d656e743a20605469705265706f72744465706f73697442617365602077696c6c2062652072657365727665642066726f6d20746865206f726967696e206163636f756e742c2061732077656c6c206173bc60446174614465706f736974506572427974656020666f722065616368206279746520696e2060726561736f6e602e005d012d2060726561736f6e603a2054686520726561736f6e20666f722c206f7220746865207468696e6720746861742064657365727665732c20746865207469703b2067656e6572616c6c7920746869732077696c6c20626558202061205554462d382d656e636f6465642055524c2ee82d206077686f603a20546865206163636f756e742077686963682073686f756c6420626520637265646974656420666f7220746865207469702e0074456d69747320604e657754697060206966207375636365737366756c2e002823203c7765696768743ec82d20436f6d706c65786974793a20604f2852296020776865726520605260206c656e677468206f662060726561736f6e602e9020202d20656e636f64696e6720616e642068617368696e67206f662027726561736f6e27702d20446252656164733a2060526561736f6e73602c20605469707360742d2044625772697465733a2060526561736f6e73602c206054697073602c23203c2f7765696768743e2c726574726163745f7469700401106861736824011c543a3a4861736800014c5101526574726163742061207072696f72207469702d7265706f72742066726f6d20607265706f72745f617765736f6d65602c20616e642063616e63656c207468652070726f63657373206f662074697070696e672e00dc4966207375636365737366756c2c20746865206f726967696e616c206465706f7369742077696c6c20626520756e72657365727665642e004d01546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642074686520746970206964656e7469666965642062792060686173686041016d7573742068617665206265656e207265706f7274656420627920746865207369676e696e67206163636f756e74207468726f75676820607265706f72745f617765736f6d65602028616e64206e6f744c7468726f75676820607469705f6e657760292e0061012d206068617368603a20546865206964656e74697479206f6620746865206f70656e2074697020666f722077686963682061207469702076616c7565206973206465636c617265642e205468697320697320666f726d65645d0120206173207468652068617368206f6620746865207475706c65206f6620746865206f726967696e616c207469702060726561736f6e6020616e64207468652062656e6566696369617279206163636f756e742049442e008c456d697473206054697052657472616374656460206966207375636365737366756c2e002823203c7765696768743e502d20436f6d706c65786974793a20604f28312960d820202d20446570656e6473206f6e20746865206c656e677468206f662060543a3a48617368602077686963682069732066697865642e8c2d20446252656164733a206054697073602c20606f726967696e206163636f756e7460bc2d2044625772697465733a2060526561736f6e73602c206054697073602c20606f726967696e206163636f756e74602c23203c2f7765696768743e1c7469705f6e65770c0118726561736f6e28011c5665633c75383e00010c77686f000130543a3a4163636f756e7449640001247469705f76616c7565cc013042616c616e63654f663c543e000258f04769766520612074697020666f7220736f6d657468696e67206e65773b206e6f2066696e6465722773206665652077696c6c2062652074616b656e2e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d7573742062652061706d656d626572206f662074686520605469707065727360207365742e005d012d2060726561736f6e603a2054686520726561736f6e20666f722c206f7220746865207468696e6720746861742064657365727665732c20746865207469703b2067656e6572616c6c7920746869732077696c6c20626558202061205554462d382d656e636f6465642055524c2ee82d206077686f603a20546865206163636f756e742077686963682073686f756c6420626520637265646974656420666f7220746865207469702e4d012d20607469705f76616c7565603a2054686520616d6f756e74206f66207469702074686174207468652073656e64657220776f756c64206c696b6520746f20676976652e20546865206d656469616e20746970d4202076616c7565206f662061637469766520746970706572732077696c6c20626520676976656e20746f20746865206077686f602e0074456d69747320604e657754697060206966207375636365737366756c2e002823203c7765696768743e51012d20436f6d706c65786974793a20604f2852202b2054296020776865726520605260206c656e677468206f662060726561736f6e602c2060546020697320746865206e756d626572206f6620746970706572732e5d0120202d20604f285429603a206465636f64696e6720605469707065726020766563206f66206c656e677468206054602e20605460206973206368617267656420617320757070657220626f756e6420676976656e2062792d012020202060436f6e7461696e734c656e677468426f756e64602e205468652061637475616c20636f737420646570656e6473206f6e2074686520696d706c656d656e746174696f6e206f66442020202060543a3a54697070657273602ee020202d20604f285229603a2068617368696e6720616e6420656e636f64696e67206f6620726561736f6e206f66206c656e677468206052607c2d20446252656164733a206054697070657273602c2060526561736f6e7360742d2044625772697465733a2060526561736f6e73602c206054697073602c23203c2f7765696768743e0c7469700801106861736824011c543a3a486173680001247469705f76616c7565cc013042616c616e63654f663c543e000360b04465636c6172652061207469702076616c756520666f7220616e20616c72656164792d6f70656e207469702e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d7573742062652061706d656d626572206f662074686520605469707065727360207365742e0061012d206068617368603a20546865206964656e74697479206f6620746865206f70656e2074697020666f722077686963682061207469702076616c7565206973206465636c617265642e205468697320697320666f726d65645d0120206173207468652068617368206f6620746865207475706c65206f66207468652068617368206f6620746865206f726967696e616c207469702060726561736f6e6020616e64207468652062656e65666963696172793420206163636f756e742049442e4d012d20607469705f76616c7565603a2054686520616d6f756e74206f66207469702074686174207468652073656e64657220776f756c64206c696b6520746f20676976652e20546865206d656469616e20746970d4202076616c7565206f662061637469766520746970706572732077696c6c20626520676976656e20746f20746865206077686f602e006101456d6974732060546970436c6f73696e676020696620746865207468726573686f6c64206f66207469707065727320686173206265656e207265616368656420616e642074686520636f756e74646f776e20706572696f643068617320737461727465642e002823203c7765696768743e61012d20436f6d706c65786974793a20604f285429602077686572652060546020697320746865206e756d626572206f6620746970706572732e206465636f64696e6720605469707065726020766563206f66206c656e6774682d0120206054602c20696e736572742074697020616e6420636865636b20636c6f73696e672c20605460206973206368617267656420617320757070657220626f756e6420676976656e2062795d01202060436f6e7461696e734c656e677468426f756e64602e205468652061637475616c20636f737420646570656e6473206f6e2074686520696d706c656d656e746174696f6e206f662060543a3a54697070657273602e005d01202041637475616c6c792077656967687420636f756c64206265206c6f77657220617320697420646570656e6473206f6e20686f77206d616e7920746970732061726520696e20604f70656e5469706020627574206974d02020697320776569676874656420617320696620616c6d6f73742066756c6c20692e65206f66206c656e6774682060542d31602e702d20446252656164733a206054697070657273602c20605469707360482d2044625772697465733a206054697073602c23203c2f7765696768743e24636c6f73655f7469700401106861736824011c543a3a486173680004405c436c6f736520616e64207061796f75742061207469702e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e00150154686520746970206964656e74696669656420627920606861736860206d75737420686176652066696e69736865642069747320636f756e74646f776e20706572696f642e0061012d206068617368603a20546865206964656e74697479206f6620746865206f70656e2074697020666f722077686963682061207469702076616c7565206973206465636c617265642e205468697320697320666f726d65645d0120206173207468652068617368206f6620746865207475706c65206f6620746865206f726967696e616c207469702060726561736f6e6020616e64207468652062656e6566696369617279206163636f756e742049442e002823203c7765696768743e61012d20436f6d706c65786974793a20604f285429602077686572652060546020697320746865206e756d626572206f6620746970706572732e206465636f64696e6720605469707065726020766563206f66206c656e677468510120206054602e20605460206973206368617267656420617320757070657220626f756e6420676976656e2062792060436f6e7461696e734c656e677468426f756e64602e205468652061637475616c20636f7374c02020646570656e6473206f6e2074686520696d706c656d656e746174696f6e206f662060543a3a54697070657273602ea82d20446252656164733a206054697073602c206054697070657273602c20607469702066696e64657260d82d2044625772697465733a2060526561736f6e73602c206054697073602c206054697070657273602c20607469702066696e646572602c23203c2f7765696768743e24736c6173685f7469700401106861736824011c543a3a486173680005309452656d6f766520616e6420736c61736820616e20616c72656164792d6f70656e207469702e00a84d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a52656a6563744f726967696e602e00f44173206120726573756c742c207468652066696e64657220697320736c617368656420616e6420746865206465706f7369747320617265206c6f73742e0084456d6974732060546970536c617368656460206966207375636365737366756c2e002823203c7765696768743efc2020605460206973206368617267656420617320757070657220626f756e6420676976656e2062792060436f6e7461696e734c656e677468426f756e64602e010120205468652061637475616c20636f737420646570656e6473206f6e2074686520696d706c656d656e746174696f6e206f662060543a3a54697070657273602e2c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632eed030c9070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173651870616c6c65741043616c6c0404540001103c7375626d69745f756e7369676e65640801307261775f736f6c7574696f6ef103017c426f783c526177536f6c7574696f6e3c536f6c7574696f6e4f663c543e3e3e00011c7769746e657373c5040158536f6c7574696f6e4f72536e617073686f7453697a65000038a45375626d6974206120736f6c7574696f6e20666f722074686520756e7369676e65642070686173652e00c8546865206469737061746368206f726967696e20666f20746869732063616c6c206d757374206265205f5f6e6f6e655f5f2e003d0154686973207375626d697373696f6e20697320636865636b6564206f6e2074686520666c792e204d6f72656f7665722c207468697320756e7369676e656420736f6c7574696f6e206973206f6e6c79550176616c696461746564207768656e207375626d697474656420746f2074686520706f6f6c2066726f6d20746865202a2a6c6f63616c2a2a206e6f64652e204566666563746976656c792c2074686973206d65616e735d0174686174206f6e6c79206163746976652076616c696461746f72732063616e207375626d69742074686973207472616e73616374696f6e207768656e20617574686f72696e67206120626c6f636b202873696d696c617240746f20616e20696e686572656e74292e005901546f2070726576656e7420616e7920696e636f727265637420736f6c7574696f6e2028616e642074687573207761737465642074696d652f776569676874292c2074686973207472616e73616374696f6e2077696c6c4d0170616e69632069662074686520736f6c7574696f6e207375626d6974746564206279207468652076616c696461746f7220697320696e76616c696420696e20616e79207761792c206566666563746976656c799c70757474696e6720746865697220617574686f72696e6720726577617264206174207269736b2e00e04e6f206465706f736974206f7220726577617264206973206173736f63696174656420776974682074686973207375626d697373696f6e2e6c7365745f6d696e696d756d5f756e747275737465645f73636f72650401406d617962655f6e6578745f73636f7265c90401544f7074696f6e3c456c656374696f6e53636f72653e000114b05365742061206e65772076616c756520666f7220604d696e696d756d556e7472757374656453636f7265602e00d84469737061746368206f726967696e206d75737420626520616c69676e656420776974682060543a3a466f7263654f726967696e602e00f05468697320636865636b2063616e206265207475726e6564206f66662062792073657474696e67207468652076616c756520746f20604e6f6e65602e747365745f656d657267656e63795f656c656374696f6e5f726573756c74040120737570706f727473cd040158537570706f7274733c543a3a4163636f756e7449643e0002205901536574206120736f6c7574696f6e20696e207468652071756575652c20746f2062652068616e646564206f757420746f2074686520636c69656e74206f6620746869732070616c6c657420696e20746865206e6578748863616c6c20746f2060456c656374696f6e50726f76696465723a3a656c656374602e004501546869732063616e206f6e6c79206265207365742062792060543a3a466f7263654f726967696e602c20616e64206f6e6c79207768656e207468652070686173652069732060456d657267656e6379602e00610154686520736f6c7574696f6e206973206e6f7420636865636b656420666f7220616e7920666561736962696c69747920616e6420697320617373756d656420746f206265207472757374776f727468792c20617320616e795101666561736962696c69747920636865636b20697473656c662063616e20696e207072696e6369706c652063617573652074686520656c656374696f6e2070726f6365737320746f206661696c202864756520746f686d656d6f72792f77656967687420636f6e73747261696e73292e187375626d69740801307261775f736f6c7574696f6ef103017c426f783c526177536f6c7574696f6e3c536f6c7574696f6e4f663c543e3e3e0001586e756d5f7369676e65645f7375626d697373696f6e7310010c7533320003349c5375626d6974206120736f6c7574696f6e20666f7220746865207369676e65642070686173652e00d0546865206469737061746368206f726967696e20666f20746869732063616c6c206d757374206265205f5f7369676e65645f5f2e005d0154686520736f6c7574696f6e20697320706f74656e7469616c6c79207175657565642c206261736564206f6e2074686520636c61696d65642073636f726520616e642070726f6365737365642061742074686520656e64506f6620746865207369676e65642070686173652e005d0141206465706f73697420697320726573657276656420616e64207265636f7264656420666f722074686520736f6c7574696f6e2e204261736564206f6e20746865206f7574636f6d652c2074686520736f6c7574696f6e15016d696768742062652072657761726465642c20736c61736865642c206f722067657420616c6c206f7220612070617274206f6620746865206465706f736974206261636b2e002823203c7765696768743eb051756575652073697a65206d7573742062652070726f7669646564206173207769746e65737320646174612e2c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ef103089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173652c526177536f6c7574696f6e04045301f503000c0120736f6c7574696f6ef50301045300011473636f7265c1040134456c656374696f6e53636f7265000114726f756e6410010c7533320000f5030840706f6c6b61646f745f72756e74696d65544e706f73436f6d70616374536f6c7574696f6e31360000400118766f74657331f90300000118766f74657332050400000118766f74657333190400000118766f74657334250400000118766f74657335310400000118766f746573363d0400000118766f74657337490400000118766f74657338550400000118766f7465733961040000011c766f74657331306d040000011c766f746573313179040000011c766f746573313285040000011c766f746573313391040000011c766f74657331349d040000011c766f7465733135a9040000011c766f7465733136b504000000f903000002fd0300fd0300000408ad010104000104000006250100050400000209040009040000040cad010d040104000d04000004080104110400110400000615040015040c3473705f61726974686d65746963287065725f7468696e677318506572553136000004002501010c753136000019040000021d04001d040000040cad0121040104002104000003020000000d0400250400000229040029040000040cad012d040104002d04000003030000000d0400310400000235040035040000040cad0139040104003904000003040000000d04003d0400000241040041040000040cad0145040104004504000003050000000d040049040000024d04004d040000040cad0151040104005104000003060000000d0400550400000259040059040000040cad015d040104005d04000003070000000d0400610400000265040065040000040cad0169040104006904000003080000000d04006d0400000271040071040000040cad0175040104007504000003090000000d040079040000027d04007d040000040cad01810401040081040000030a0000000d0400850400000289040089040000040cad018d040104008d040000030b0000000d0400910400000295040095040000040cad01990401040099040000030c0000000d04009d04000002a10400a1040000040cad01a504010400a5040000030d0000000d0400a904000002ad0400ad040000040cad01b104010400b1040000030e0000000d0400b504000002b90400b9040000040cad01bd04010400bd040000030f0000000d0400c104000003030000001800c504089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f706861736558536f6c7574696f6e4f72536e617073686f7453697a650000080118766f74657273ad01010c75333200011c74617267657473ad01010c7533320000c90404184f7074696f6e04045401c1040108104e6f6e6500000010536f6d650400c1040000010000cd04000002d10400d1040000040800d50400d504084473705f6e706f735f656c656374696f6e731c537570706f727404244163636f756e744964010000080114746f74616c18013c457874656e64656442616c616e6365000118766f74657273f401845665633c284163636f756e7449642c20457874656e64656442616c616e6365293e0000d904106c706f6c6b61646f745f72756e74696d655f70617261636861696e7334636f6e66696775726174696f6e1870616c6c65741043616c6c0404540001a4807365745f76616c69646174696f6e5f757067726164655f6672657175656e637904010c6e6577100138543a3a426c6f636b4e756d62657200000494536574207468652076616c69646174696f6e2075706772616465206672657175656e63792e707365745f76616c69646174696f6e5f757067726164655f64656c617904010c6e6577100138543a3a426c6f636b4e756d62657200010484536574207468652076616c69646174696f6e20757067726164652064656c61792e647365745f636f64655f726574656e74696f6e5f706572696f6404010c6e6577100138543a3a426c6f636b4e756d626572000204d05365742074686520616363657074616e636520706572696f6420666f7220616e20696e636c756465642063616e6469646174652e447365745f6d61785f636f64655f73697a6504010c6e657710010c753332000304dc53657420746865206d61782076616c69646174696f6e20636f64652073697a6520666f7220696e636f6d696e672075706772616465732e407365745f6d61785f706f765f73697a6504010c6e657710010c753332000404c453657420746865206d617820504f5620626c6f636b2073697a6520666f7220696e636f6d696e672075706772616465732e587365745f6d61785f686561645f646174615f73697a6504010c6e657710010c7533320005049453657420746865206d6178206865616420646174612073697a6520666f722070617261732e507365745f706172617468726561645f636f72657304010c6e657710010c753332000604b453657420746865206e756d626572206f66207061726174687265616420657865637574696f6e20636f7265732e587365745f706172617468726561645f7265747269657304010c6e657710010c753332000704d853657420746865206e756d626572206f66207265747269657320666f72206120706172746963756c617220706172617468726561642e707365745f67726f75705f726f746174696f6e5f6672657175656e637904010c6e6577100138543a3a426c6f636b4e756d626572000804d0536574207468652070617261636861696e2076616c696461746f722d67726f757020726f746174696f6e206672657175656e6379747365745f636861696e5f617661696c6162696c6974795f706572696f6404010c6e6577100138543a3a426c6f636b4e756d626572000904ac5365742074686520617661696c6162696c69747920706572696f6420666f722070617261636861696e732e787365745f7468726561645f617661696c6162696c6974795f706572696f6404010c6e6577100138543a3a426c6f636b4e756d626572000a04b05365742074686520617661696c6162696c69747920706572696f6420666f722070617261746872656164732e607365745f7363686564756c696e675f6c6f6f6b616865616404010c6e657710010c753332000b04390153657420746865207363686564756c696e67206c6f6f6b61686561642c20696e206578706563746564206e756d626572206f6620626c6f636b73206174207065616b207468726f7567687075742e6c7365745f6d61785f76616c696461746f72735f7065725f636f726504010c6e65777902012c4f7074696f6e3c7533323e000c04ec53657420746865206d6178696d756d206e756d626572206f662076616c696461746f727320746f2061737369676e20746f20616e7920636f72652e487365745f6d61785f76616c696461746f727304010c6e65777902012c4f7074696f6e3c7533323e000d040d0153657420746865206d6178696d756d206e756d626572206f662076616c696461746f727320746f2075736520696e2070617261636861696e20636f6e73656e7375732e487365745f646973707574655f706572696f6404010c6e657710013053657373696f6e496e646578000e040d0153657420746865206469737075746520706572696f642c20696e206e756d626572206f662073657373696f6e7320746f206b65657020666f722064697370757465732eb47365745f646973707574655f706f73745f636f6e636c7573696f6e5f616363657074616e63655f706572696f6404010c6e6577100138543a3a426c6f636b4e756d626572000f04c853657420746865206469737075746520706f737420636f6e636c7573696f6e20616363657074616e636520706572696f642e687365745f646973707574655f6d61785f7370616d5f736c6f747304010c6e657710010c753332001004b453657420746865206d6178696d756d206e756d626572206f662064697370757465207370616d20736c6f74732ea47365745f646973707574655f636f6e636c7573696f6e5f62795f74696d655f6f75745f706572696f6404010c6e6577100138543a3a426c6f636b4e756d626572001104b853657420746865206469737075746520636f6e636c7573696f6e2062792074696d65206f757420706572696f642e447365745f6e6f5f73686f775f736c6f747304010c6e657710010c753332001208f853657420746865206e6f2073686f7720736c6f74732c20696e206e756d626572206f66206e756d626572206f6620636f6e73656e73757320736c6f74732e4c4d757374206265206174206c6561737420312e507365745f6e5f64656c61795f7472616e6368657304010c6e657710010c7533320013049c5365742074686520746f74616c206e756d626572206f662064656c6179207472616e636865732e787365745f7a65726f74685f64656c61795f7472616e6368655f776964746804010c6e657710010c7533320014048c53657420746865207a65726f74682064656c6179207472616e6368652077696474682e507365745f6e65656465645f617070726f76616c7304010c6e657710010c753332001504dc53657420746865206e756d626572206f662076616c696461746f7273206e656564656420746f20617070726f7665206120626c6f636b2e707365745f72656c61795f7672665f6d6f64756c6f5f73616d706c657304010c6e657710010c753332001604590153657420746865206e756d626572206f662073616d706c657320746f20646f206f6620746865206052656c61795652464d6f64756c6f6020617070726f76616c2061737369676e6d656e7420637269746572696f6e2e687365745f6d61785f7570776172645f71756575655f636f756e7404010c6e657710010c7533320017042d015365747320746865206d6178696d756d206974656d7320746861742063616e2070726573656e7420696e206120757077617264206469737061746368207175657565206174206f6e63652e647365745f6d61785f7570776172645f71756575655f73697a6504010c6e657710010c75333200180465015365747320746865206d6178696d756d20746f74616c2073697a65206f66206974656d7320746861742063616e2070726573656e7420696e206120757077617264206469737061746368207175657565206174206f6e63652e747365745f6d61785f646f776e776172645f6d6573736167655f73697a6504010c6e657710010c7533320019049c5365742074686520637269746963616c20646f776e77617264206d6573736167652073697a652e707365745f756d705f736572766963655f746f74616c5f77656967687404010c6e6577200118576569676874001a043901536574732074686520736f6674206c696d697420666f7220746865207068617365206f66206469737061746368696e6720646973706174636861626c6520757077617264206d657373616765732e6c7365745f6d61785f7570776172645f6d6573736167655f73697a6504010c6e657710010c753332001b042d015365747320746865206d6178696d756d2073697a65206f6620616e20757077617264206d65737361676520746861742063616e2062652073656e7420627920612063616e6469646174652ea07365745f6d61785f7570776172645f6d6573736167655f6e756d5f7065725f63616e64696461746504010c6e657710010c753332001c0405015365747320746865206d6178696d756d206e756d626572206f66206d65737361676573207468617420612063616e6469646174652063616e20636f6e7461696e2e647365745f68726d705f6f70656e5f726571756573745f74746c04010c6e657710010c753332001d0435015365747320746865206e756d626572206f662073657373696f6e7320616674657220776869636820616e2048524d50206f70656e206368616e6e656c207265717565737420657870697265732e5c7365745f68726d705f73656e6465725f6465706f73697404010c6e657718011c42616c616e6365001e045101536574732074686520616d6f756e74206f662066756e64732074686174207468652073656e6465722073686f756c642070726f7669646520666f72206f70656e696e6720616e2048524d50206368616e6e656c2e687365745f68726d705f726563697069656e745f6465706f73697404010c6e657718011c42616c616e6365001f086101536574732074686520616d6f756e74206f662066756e647320746861742074686520726563697069656e742073686f756c642070726f7669646520666f7220616363657074696e67206f70656e696e6720616e2048524d50206368616e6e656c2e747365745f68726d705f6368616e6e656c5f6d61785f636170616369747904010c6e657710010c7533320020041d015365747320746865206d6178696d756d206e756d626572206f66206d6573736167657320616c6c6f77656420696e20616e2048524d50206368616e6e656c206174206f6e63652e7c7365745f68726d705f6368616e6e656c5f6d61785f746f74616c5f73697a6504010c6e657710010c75333200210451015365747320746865206d6178696d756d20746f74616c2073697a65206f66206d6573736167657320696e20627974657320616c6c6f77656420696e20616e2048524d50206368616e6e656c206174206f6e63652e9c7365745f68726d705f6d61785f70617261636861696e5f696e626f756e645f6368616e6e656c7304010c6e657710010c75333200220449015365747320746865206d6178696d756d206e756d626572206f6620696e626f756e642048524d50206368616e6e656c7320612070617261636861696e20697320616c6c6f77656420746f206163636570742ea07365745f68726d705f6d61785f706172617468726561645f696e626f756e645f6368616e6e656c7304010c6e657710010c7533320023044d015365747320746865206d6178696d756d206e756d626572206f6620696e626f756e642048524d50206368616e6e656c732061207061726174687265616420697320616c6c6f77656420746f206163636570742e847365745f68726d705f6368616e6e656c5f6d61785f6d6573736167655f73697a6504010c6e657710010c7533320024043d015365747320746865206d6178696d756d2073697a65206f662061206d657373616765207468617420636f756c6420657665722062652070757420696e746f20616e2048524d50206368616e6e656c2ea07365745f68726d705f6d61785f70617261636861696e5f6f7574626f756e645f6368616e6e656c7304010c6e657710010c75333200250445015365747320746865206d6178696d756d206e756d626572206f66206f7574626f756e642048524d50206368616e6e656c7320612070617261636861696e20697320616c6c6f77656420746f206f70656e2ea47365745f68726d705f6d61785f706172617468726561645f6f7574626f756e645f6368616e6e656c7304010c6e657710010c75333200260449015365747320746865206d6178696d756d206e756d626572206f66206f7574626f756e642048524d50206368616e6e656c732061207061726174687265616420697320616c6c6f77656420746f206f70656e2e987365745f68726d705f6d61785f6d6573736167655f6e756d5f7065725f63616e64696461746504010c6e657710010c75333200270435015365747320746865206d6178696d756d206e756d626572206f66206f7574626f756e642048524d50206d657373616765732063616e2062652073656e7420627920612063616e6469646174652e747365745f756d705f6d61785f696e646976696475616c5f77656967687404010c6e657720011857656967687400280431015365747320746865206d6178696d756d20616d6f756e74206f662077656967687420616e7920696e646976696475616c20757077617264206d657373616765206d617920636f6e73756d652e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632edd04106c706f6c6b61646f745f72756e74696d655f70617261636861696e73187368617265641870616c6c65741043616c6c040454000100042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ee104106c706f6c6b61646f745f72756e74696d655f70617261636861696e7324696e636c7573696f6e1870616c6c65741043616c6c040454000100042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ee504106c706f6c6b61646f745f72756e74696d655f70617261636861696e733870617261735f696e686572656e741870616c6c65741043616c6c04045400010414656e74657204011064617461e904018450617261636861696e73496e686572656e74446174613c543a3a4865616465723e0000043101456e7465722074686520706172617320696e686572656e742e20546869732077696c6c2070726f63657373206269746669656c647320616e64206261636b65642063616e646964617465732e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ee9040c4c706f6c6b61646f745f7072696d69746976657308763130496e686572656e7444617461040c484452011d02001001246269746669656c6473ed040190556e636865636b65645369676e6564417661696c6162696c6974794269746669656c64730001446261636b65645f63616e646964617465730905017c5665633c4261636b656443616e6469646174653c4844523a3a486173683e3e0001206469737075746573310501604d756c74694469737075746553746174656d656e74536574000134706172656e745f6865616465721d02010c4844520000ed04000002f10400f104104c706f6c6b61646f745f7072696d697469766573087631187369676e65643c556e636865636b65645369676e6564081c5061796c6f616401f5042c5265616c5061796c6f616401f504000c011c7061796c6f6164f504011c5061796c6f616400013c76616c696461746f725f696e6465780105013856616c696461746f72496e6465780001247369676e61747572650505014856616c696461746f725369676e61747572650000f5040c4c706f6c6b61646f745f7072696d69746976657308763150417661696c6162696c6974794269746669656c6400000400f904017c4269745665633c6269747665633a3a6f726465723a3a4c7362302c2075383e0000f90400000708fd0400fd040c18626974766563146f72646572104c7362300000000001050c4c706f6c6b61646f745f7072696d6974697665730876303856616c696461746f72496e6465780000040010010c75333200000505104c706f6c6b61646f745f7072696d6974697665730876303476616c696461746f725f617070245369676e6174757265000004005d010148737232353531393a3a5369676e6174757265000009050000020d05000d050c4c706f6c6b61646f745f7072696d6974697665730876313c4261636b656443616e6469646174650404480124000c012463616e64696461746511050170436f6d6d697474656443616e646964617465526563656970743c483e00013876616c69646974795f766f746573290501605665633c56616c69646974794174746573746174696f6e3e00014476616c696461746f725f696e6469636573f904017c4269745665633c6269747665633a3a6f726465723a3a4c7362302c2075383e000011050c4c706f6c6b61646f745f7072696d69746976657308763164436f6d6d697474656443616e6469646174655265636569707404044801240008012864657363726970746f724d01015843616e64696461746544657363726970746f723c483e00012c636f6d6d69746d656e74731505015043616e646964617465436f6d6d69746d656e7473000015050c4c706f6c6b61646f745f7072696d6974697665730876315043616e646964617465436f6d6d69746d656e747304044e01100018013c7570776172645f6d65737361676573c50101485665633c5570776172644d6573736167653e00014c686f72697a6f6e74616c5f6d65737361676573190501705665633c4f7574626f756e6448726d704d6573736167653c49643e3e00014c6e65775f76616c69646174696f6e5f636f6465210501584f7074696f6e3c56616c69646174696f6e436f64653e000124686561645f6461746169010120486561644461746100016c70726f6365737365645f646f776e776172645f6d6573736167657310010c75333200013868726d705f77617465726d61726b1001044e000019050000021d05001d050860706f6c6b61646f745f636f72655f7072696d6974697665734c4f7574626f756e6448726d704d6573736167650408496401510100080124726563697069656e745101010849640001106461746128015073705f7374643a3a7665633a3a5665633c75383e0000210504184f7074696f6e0404540125050108104e6f6e6500000010536f6d6504002505000001000025050c48706f6c6b61646f745f70617261636861696e287072696d6974697665733856616c69646174696f6e436f64650000040028011c5665633c75383e000029050000022d05002d050c4c706f6c6b61646f745f7072696d6974697665730876304c56616c69646974794174746573746174696f6e00010820496d706c6963697404000505014856616c696461746f725369676e6174757265000100204578706c6963697404000505014856616c696461746f725369676e617475726500020000310500000235050035050c4c706f6c6b61646f745f7072696d6974697665730876314c4469737075746553746174656d656e7453657400000c013863616e6469646174655f686173683905013443616e6469646174654861736800011c73657373696f6e10013053657373696f6e496e64657800012873746174656d656e74733d0501ec5665633c284469737075746553746174656d656e742c2056616c696461746f72496e6465782c2056616c696461746f725369676e6174757265293e000039050860706f6c6b61646f745f636f72655f7072696d6974697665733443616e64696461746548617368000004002401104861736800003d0500000241050041050000040c4505010505050045050c4c706f6c6b61646f745f7072696d697469766573087631404469737075746553746174656d656e740001081456616c696404004905016456616c69644469737075746553746174656d656e744b696e640000001c496e76616c696404004d05016c496e76616c69644469737075746553746174656d656e744b696e640001000049050c4c706f6c6b61646f745f7072696d6974697665730876316456616c69644469737075746553746174656d656e744b696e64000110204578706c696369740000003c4261636b696e675365636f6e646564040024011048617368000100304261636b696e6756616c696404002401104861736800020040417070726f76616c436865636b696e67000300004d050c4c706f6c6b61646f745f7072696d6974697665730876316c496e76616c69644469737075746553746174656d656e744b696e64000104204578706c69636974000000005105106c706f6c6b61646f745f72756e74696d655f70617261636861696e731470617261731870616c6c65741043616c6c04045400011458666f7263655f7365745f63757272656e745f636f646508011070617261510101185061726149640001206e65775f636f64652505013856616c69646174696f6e436f6465000004f8536574207468652073746f7261676520666f72207468652070617261636861696e2076616c69646174696f6e20636f646520696d6d6564696174656c792e58666f7263655f7365745f63757272656e745f6865616408011070617261510101185061726149640001206e65775f686561646901012048656164446174610001040101536574207468652073746f7261676520666f72207468652063757272656e742070617261636861696e2068656164206461746120696d6d6564696174656c792e6c666f7263655f7363686564756c655f636f64655f757067726164650c011070617261510101185061726149640001206e65775f636f64652505013856616c69646174696f6e436f646500014c72656c61795f706172656e745f6e756d626572100138543a3a426c6f636b4e756d6265720002042d015363686564756c6520616e207570677261646520617320696620697420776173207363686564756c656420696e2074686520676976656e2072656c617920706172656e7420626c6f636b2e4c666f7263655f6e6f74655f6e65775f6865616408011070617261510101185061726149640001206e65775f686561646901012048656164446174610003041d014e6f74652061206e657720626c6f636b206865616420666f7220706172612077697468696e2074686520636f6e74657874206f66207468652063757272656e7420626c6f636b2e48666f7263655f71756575655f616374696f6e040110706172615101011850617261496400040cf850757420612070617261636861696e206469726563746c7920696e746f20746865206e6578742073657373696f6e277320616374696f6e2071756575652ef457652063616e277420717565756520697420616e7920736f6f6e6572207468616e207468697320776974686f757420676f696e6720696e746f2074686538696e697469616c697a65722e2e2e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e5505106c706f6c6b61646f745f72756e74696d655f70617261636861696e732c696e697469616c697a65721870616c6c65741043616c6c04045400010434666f7263655f617070726f766504011475705f746f10012c426c6f636b4e756d62657200000c390149737375652061207369676e616c20746f2074686520636f6e73656e73757320656e67696e6520746f20666f726369626c79206163742061732074686f75676820616c6c2070617261636861696e5101626c6f636b7320696e20616c6c2072656c617920636861696e20626c6f636b7320757020746f20616e6420696e636c7564696e672074686520676976656e206e756d62657220696e207468652063757272656e74a0636861696e206172652076616c696420616e642073686f756c642062652066696e616c697a65642e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e5905106c706f6c6b61646f745f72756e74696d655f70617261636861696e730c646d701870616c6c65741043616c6c040454000100042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e5d05106c706f6c6b61646f745f72756e74696d655f70617261636861696e730c756d701870616c6c65741043616c6c04045400010448736572766963655f6f766572776569676874080114696e64657820013c4f766572776569676874496e6465780001307765696768745f6c696d6974200118576569676874000030ac5365727669636520612073696e676c65206f76657277656967687420757077617264206d6573736167652e00c02d20606f726967696e603a204d75737420706173732060457865637574654f7665727765696768744f726967696e602ee82d2060696e646578603a2054686520696e646578206f6620746865206f766572776569676874206d65737361676520746f20736572766963652e1d012d20607765696768745f6c696d6974603a2054686520616d6f756e74206f66207765696768742074686174206d65737361676520657865637574696f6e206d61792074616b652e001c4572726f72733adc2d2060556e6b6e6f776e4d657373616765496e646578603a204d657373616765206f662060696e6465786020697320756e6b6e6f776e2e2d012d20605765696768744f7665724c696d6974603a204d65737361676520657865637574696f6e206d6179207573652067726561746572207468616e20607765696768745f6c696d6974602e001c4576656e74733a8c2d20604f7665727765696768745365727669636564603a204f6e20737563636573732e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e6105106c706f6c6b61646f745f72756e74696d655f70617261636861696e731068726d701870616c6c65741043616c6c04045400011c5868726d705f696e69745f6f70656e5f6368616e6e656c0c0124726563697069656e745101011850617261496400015470726f706f7365645f6d61785f636170616369747910010c75333200016470726f706f7365645f6d61785f6d6573736167655f73697a6510010c7533320000284d01496e697469617465206f70656e696e672061206368616e6e656c2066726f6d20612070617261636861696e20746f206120676976656e20726563697069656e74207769746820676976656e206368616e6e656c2c706172616d65746572732e0059012d206070726f706f7365645f6d61785f636170616369747960202d2073706563696669657320686f77206d616e79206d657373616765732063616e20626520696e20746865206368616e6e656c206174206f6e63652e2d012d206070726f706f7365645f6d61785f6d6573736167655f73697a6560202d2073706563696669657320746865206d6178696d756d2073697a65206f6620746865206d657373616765732e0011015468657365206e756d62657273206172652061207375626a65637420746f207468652072656c61792d636861696e20636f6e66696775726174696f6e206c696d6974732e005101546865206368616e6e656c2063616e206265206f70656e6564206f6e6c792061667465722074686520726563697069656e7420636f6e6669726d7320697420616e64206f6e6c79206f6e20612073657373696f6e1c6368616e67652e6068726d705f6163636570745f6f70656e5f6368616e6e656c04011873656e6465725101011850617261496400010cf041636365707420612070656e64696e67206f70656e206368616e6e656c20726571756573742066726f6d2074686520676976656e2073656e6465722e00f4546865206368616e6e656c2077696c6c206265206f70656e6564206f6e6c79206f6e20746865206e6578742073657373696f6e20626f756e646172792e4868726d705f636c6f73655f6368616e6e656c0401286368616e6e656c5f69648901013448726d704368616e6e656c49640002105501496e69746961746520756e696c61746572616c20636c6f73696e67206f662061206368616e6e656c2e20546865206f726967696e206d75737420626520656974686572207468652073656e646572206f722074686598726563697069656e7420696e20746865206368616e6e656c206265696e6720636c6f7365642e00c054686520636c6f737572652063616e206f6e6c792068617070656e206f6e20612073657373696f6e206368616e67652e40666f7263655f636c65616e5f68726d7004011070617261510101185061726149640003141901546869732065787472696e7369632074726967676572732074686520636c65616e7570206f6620616c6c207468652048524d502073746f72616765206974656d7320746861742101612070617261206d617920686176652e204e6f726d616c6c7920746869732068617070656e73206f6e6365207065722073657373696f6e2c20627574207468697320616c6c6f77730101796f7520746f20747269676765722074686520636c65616e757020696d6d6564696174656c7920666f7220612073706563696669632070617261636861696e2e00504f726967696e206d75737420626520526f6f742e5c666f7263655f70726f636573735f68726d705f6f70656e000410a4466f7263652070726f636573732048524d50206f70656e206368616e6e656c2072657175657374732e0005014966207468657265206172652070656e64696e672048524d50206f70656e206368616e6e656c2072657175657374732c20796f752063616e207573652074686973cc66756e6374696f6e2070726f6365737320616c6c206f662074686f736520726571756573747320696d6d6564696174656c792e60666f7263655f70726f636573735f68726d705f636c6f7365000510a8466f7263652070726f636573732048524d5020636c6f7365206368616e6e656c2072657175657374732e0009014966207468657265206172652070656e64696e672048524d5020636c6f7365206368616e6e656c2072657175657374732c20796f752063616e207573652074686973cc66756e6374696f6e2070726f6365737320616c6c206f662074686f736520726571756573747320696d6d6564696174656c792e6068726d705f63616e63656c5f6f70656e5f726571756573740401286368616e6e656c5f69648901013448726d704368616e6e656c49640006145d01546869732063616e63656c7320612070656e64696e67206f70656e206368616e6e656c20726571756573742e2049742063616e2062652063616e63656c656420626520656974686572206f66207468652073656e64657219016f722074686520726563697069656e7420666f72207468617420726571756573742e20546865206f726967696e206d75737420626520656974686572206f662074686f73652e0055015468652063616e63656c6c696e672068617070656e7320696d6d6564696174656c792e204974206973206e6f7420706f737369626c6520746f2063616e63656c20746865207265717565737420696620697420697344616c72656164792061636365707465642e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e6505105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e3c70617261735f7265676973747261721870616c6c65741043616c6c0404540001182072656769737465720c010869645101011850617261496400013067656e657369735f6865616469010120486561644461746100013c76616c69646174696f6e5f636f64652505013856616c69646174696f6e436f6465000038f852656769737465722068656164206461746120616e642076616c69646174696f6e20636f646520666f72206120726573657276656420506172612049642e0030232320417267756d656e7473c02d20606f726967696e603a204d7573742062652063616c6c6564206279206120605369676e656460206f726967696e2e2d012d20606964603a2054686520706172612049442e204d757374206265206f776e65642f6d616e616765642062792074686520606f726967696e60207369676e696e67206163636f756e742e01012d206067656e657369735f68656164603a205468652067656e6573697320686561642064617461206f66207468652070617261636861696e2f7468726561642e25012d206076616c69646174696f6e5f636f6465603a2054686520696e697469616c2076616c69646174696f6e20636f6465206f66207468652070617261636861696e2f7468726561642e00402323204465706f736974732f466565739501546865206f726967696e207369676e6564206163636f756e74206d7573742072657365727665206120636f72726573706f6e64696e67206465706f73697420666f722074686520726567697374726174696f6e2e20416e797468696e6720616c7265616479d872657365727665642070726576696f75736c7920666f7220746869732070617261204944206973206163636f756e74656420666f722e00242323204576656e7473d454686520605265676973746572656460206576656e7420697320656d697474656420696e2063617365206f6620737563636573732e38666f7263655f726567697374657214010c77686f000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e00010869645101011850617261496400013067656e657369735f6865616469010120486561644461746100013c76616c69646174696f6e5f636f64652505013856616c69646174696f6e436f6465000118dc466f7263652074686520726567697374726174696f6e206f6620612050617261204964206f6e207468652072656c617920636861696e2e00b8546869732066756e6374696f6e206d7573742062652063616c6c6564206279206120526f6f74206f726967696e2e001901546865206465706f7369742074616b656e2063616e2062652073706563696669656420666f72207468697320726567697374726174696f6e2e20416e79206050617261496460190163616e20626520726567697374657265642c20696e636c7564696e67207375622d3130303020494473207768696368206172652053797374656d2050617261636861696e732e286465726567697374657204010869645101011850617261496400020c050144657265676973746572206120506172612049642c2066726565696e6720616c6c206461746120616e642072657475726e696e6720616e79206465706f7369742e007d015468652063616c6c6572206d75737420626520526f6f742c2074686520607061726160206f776e65722c206f72207468652060706172616020697473656c662e205468652070617261206d757374206265206120706172617468726561642e10737761700801086964510101185061726149640001146f746865725101011850617261496400032cd85377617020612070617261636861696e207769746820616e6f746865722070617261636861696e206f7220706172617468726561642e000101546865206f726967696e206d75737420626520526f6f742c2074686520607061726160206f776e65722c206f72207468652060706172616020697473656c662e00610154686520737761702077696c6c2068617070656e206f6e6c7920696620746865726520697320616c726561647920616e206f70706f7369746520737761702070656e64696e672e204966207468657265206973206e6f742c590174686520737761702077696c6c2062652073746f72656420696e207468652070656e64696e67207377617073206d61702c20726561647920666f722061206c6174657220636f6e6669726d61746f727920737761702e005d01546865206050617261496460732072656d61696e206d617070656420746f207468652073616d652068656164206461746120616e6420636f646520736f2065787465726e616c20636f64652063616e2072656c79206f6e3d01605061726149646020746f2062652061206c6f6e672d7465726d206964656e746966696572206f662061206e6f74696f6e616c202270617261636861696e222e20486f77657665722c20746865697255017363686564756c696e6720696e666f2028692e652e2077686574686572207468657927726520612070617261746872656164206f722070617261636861696e292c2061756374696f6e20696e666f726d6174696f6e94616e64207468652061756374696f6e206465706f736974206172652073776974636865642e44666f7263655f72656d6f76655f6c6f636b04011070617261510101185061726149640004100d0152656d6f76652061206d616e61676572206c6f636b2066726f6d206120706172612e20546869732077696c6c20616c6c6f7720746865206d616e61676572206f662061350170726576696f75736c79206c6f636b6564207061726120746f2064657265676973746572206f7220737761702061207061726120776974686f7574207573696e6720676f7665726e616e63652e009843616e206f6e6c792062652063616c6c65642062792074686520526f6f74206f726967696e2e1c72657365727665000538945265736572766520612050617261204964206f6e207468652072656c617920636861696e2e004d01546869732066756e6374696f6e2077696c6c20726573657276652061206e6577205061726120496420746f206265206f776e65642f6d616e6167656420627920746865206f726967696e206163636f756e742e7d01546865206f726967696e206163636f756e742069732061626c6520746f2072656769737465722068656164206461746120616e642076616c69646174696f6e20636f6465207573696e67206072656769737465726020746f2063726561746581016120706172617468726561642e205573696e672074686520536c6f74732070616c6c65742c206120706172617468726561642063616e207468656e20626520757067726164656420746f2067657420612070617261636861696e20736c6f742e0030232320417267756d656e747379012d20606f726967696e603a204d7573742062652063616c6c6564206279206120605369676e656460206f726967696e2e204265636f6d657320746865206d616e616765722f6f776e6572206f6620746865206e657720706172612049442e00402323204465706f736974732f466565732101546865206f726967696e206d75737420726573657276652061206465706f736974206f662060506172614465706f7369746020666f722074686520726567697374726174696f6e2e00242323204576656e74736d015468652060526573657276656460206576656e7420697320656d697474656420696e2063617365206f6620737563636573732c2077686963682070726f76696465732074686520494420726573657276656420666f72207573652e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e6905105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e14736c6f74731870616c6c65741043616c6c04045400010c2c666f7263655f6c6561736514011070617261510101185061726149640001186c6561736572000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000130706572696f645f626567696e1001404c65617365506572696f644f663c543e000130706572696f645f636f756e741001404c65617365506572696f644f663c543e00001069014a757374206120636f6e6e65637420696e746f2074686520606c656173655f6f7574602063616c6c2c20696e206361736520526f6f742077616e747320746f20666f72636520736f6d65206c6561736520746f2068617070656ee0696e646570656e64656e746c79206f6620616e79206f74686572206f6e2d636861696e206d656368616e69736d20746f207573652069742e009843616e206f6e6c792062652063616c6c65642062792074686520526f6f74206f726967696e2e40636c6561725f616c6c5f6c6561736573040110706172615101011850617261496400010c4d01436c65617220616c6c206c656173657320666f72206120506172612049642c20726566756e64696e6720616e79206465706f73697473206261636b20746f20746865206f726967696e616c206f776e6572732e009843616e206f6e6c792062652063616c6c65642062792074686520526f6f74206f726967696e2e3c747269676765725f6f6e626f617264040110706172615101011850617261496400021c250154727920746f206f6e626f61726420612070617261636861696e2074686174206861732061206c6561736520666f72207468652063757272656e74206c6561736520706572696f642e004501546869732066756e6374696f6e2063616e2062652075736566756c2069662074686572652077617320736f6d6520737461746520697373756520776974682061207061726120746861742073686f756c64390168617665206f6e626f61726465642c206275742077617320756e61626c6520746f2e204173206c6f6e67206173207468657920686176652061206c6561736520706572696f642c2077652063616e6c6c6574207468656d206f6e626f6172642066726f6d20686572652e00cc4f726967696e206d757374206265207369676e65642c206275742063616e2062652063616c6c656420627920616e796f6e652e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e6d05105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e2061756374696f6e731870616c6c65741043616c6c04045400010c2c6e65775f61756374696f6e0801206475726174696f6ead010138543a3a426c6f636b4e756d6265720001486c656173655f706572696f645f696e646578ad0101404c65617365506572696f644f663c543e000014544372656174652061206e65772061756374696f6e2e005101546869732063616e206f6e6c792068617070656e207768656e2074686572652069736e277420616c726561647920616e2061756374696f6e20696e2070726f677265737320616e64206d6179206f6e6c79206265250163616c6c65642062792074686520726f6f74206f726967696e2e20416363657074732074686520606475726174696f6e60206f6620746869732061756374696f6e20616e64207468655901606c656173655f706572696f645f696e64657860206f662074686520696e697469616c206c6561736520706572696f64206f662074686520666f757220746861742061726520746f2062652061756374696f6e65642e0c626964140110706172617105011850617261496400013461756374696f6e5f696e646578ad01013041756374696f6e496e64657800012866697273745f736c6f74ad0101404c65617365506572696f644f663c543e0001246c6173745f736c6f74ad0101404c65617365506572696f644f663c543e000118616d6f756e74cc013042616c616e63654f663c543e00014049014d616b652061206e6577206269642066726f6d20616e206163636f756e742028696e636c7564696e6720612070617261636861696e206163636f756e742920666f72206465706c6f79696e672061206e65772870617261636861696e2e0059014d756c7469706c652073696d756c74616e656f757320626964732066726f6d207468652073616d65206269646465722061726520616c6c6f776564206f6e6c79206173206c6f6e6720617320616c6c206163746976653d0162696473206f7665726c61702065616368206f746865722028692e652e20617265206d757475616c6c79206578636c7573697665292e20426964732063616e6e6f742062652072656461637465642e0055012d20607375626020697320746865207375622d6269646465722049442c20616c6c6f77696e6720666f72206d756c7469706c6520636f6d706574696e67206269647320746f206265206d6164652062792028616e647066756e64656420627929207468652073616d65206163636f756e742e4d012d206061756374696f6e5f696e646578602069732074686520696e646578206f66207468652061756374696f6e20746f20626964206f6e2e2053686f756c64206a757374206265207468652070726573656e746876616c7565206f66206041756374696f6e436f756e746572602e49012d206066697273745f736c6f746020697320746865206669727374206c6561736520706572696f6420696e646578206f66207468652072616e676520746f20626964206f6e2e20546869732069732074686509016162736f6c757465206c6561736520706572696f6420696e6465782076616c75652c206e6f7420616e2061756374696f6e2d7370656369666963206f66667365742e41012d20606c6173745f736c6f746020697320746865206c617374206c6561736520706572696f6420696e646578206f66207468652072616e676520746f20626964206f6e2e20546869732069732074686509016162736f6c757465206c6561736520706572696f6420696e6465782076616c75652c206e6f7420616e2061756374696f6e2d7370656369666963206f66667365742e49012d2060616d6f756e74602069732074686520616d6f756e7420746f2062696420746f2062652068656c64206173206465706f73697420666f72207468652070617261636861696e2073686f756c6420746865c86269642077696e2e205468697320616d6f756e742069732068656c64207468726f7567686f7574207468652072616e67652e3863616e63656c5f61756374696f6e00020c7843616e63656c20616e20696e2d70726f67726573732061756374696f6e2e008843616e206f6e6c792062652063616c6c656420627920526f6f74206f726967696e2e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e71050000065101007505105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e2463726f77646c6f616e1870616c6c65741043616c6c04045400012018637265617465180114696e6465787105011850617261496400010c636170cc013042616c616e63654f663c543e00013066697273745f706572696f64ad0101404c65617365506572696f644f663c543e00012c6c6173745f706572696f64ad0101404c65617365506572696f644f663c543e00010c656e64ad010138543a3a426c6f636b4e756d62657200012076657269666965727905014c4f7074696f6e3c4d756c74695369676e65723e00001069014372656174652061206e65772063726f77646c6f616e696e672063616d706169676e20666f7220612070617261636861696e20736c6f7420776974682074686520676976656e206c6561736520706572696f642072616e67652e005d0154686973206170706c6965732061206c6f636b20746f20796f75722070617261636861696e20636f6e66696775726174696f6e2c20656e737572696e6720746861742069742063616e6e6f74206265206368616e676564646279207468652070617261636861696e206d616e616765722e28636f6e747269627574650c0114696e6465787105011850617261496400011476616c7565cc013042616c616e63654f663c543e0001247369676e6174757265890501584f7074696f6e3c4d756c74695369676e61747572653e0001085101436f6e7472696275746520746f20612063726f77642073616c652e20546869732077696c6c207472616e7366657220736f6d652062616c616e6365206f76657220746f2066756e6420612070617261636861696e5101736c6f742e2049742077696c6c20626520776974686472617761626c65207768656e207468652063726f77646c6f616e2068617320656e64656420616e64207468652066756e64732061726520756e757365642e20776974686472617708010c77686f000130543a3a4163636f756e744964000114696e64657871050118506172614964000244c057697468647261772066756c6c2062616c616e6365206f66206120737065636966696320636f6e7472696275746f722e00c04f726967696e206d757374206265207369676e65642c206275742063616e20636f6d652066726f6d20616e796f6e652e00ad015468652066756e64206d7573742062652065697468657220696e2c206f7220726561647920666f722c207265746972656d656e742e20466f7220612066756e6420746f206265202a696e2a207265746972656d656e742c207468656e20746865207265746972656d656e74f8666c6167206d757374206265207365742e20466f7220612066756e6420746f20626520726561647920666f72207265746972656d656e742c207468656e3a9c2d206974206d757374206e6f7420616c726561647920626520696e207265746972656d656e743b4d012d2074686520616d6f756e74206f66207261697365642066756e6473206d75737420626520626967676572207468616e20746865205f667265655f2062616c616e6365206f6620746865206163636f756e743b342d20616e64206569746865723abc20202d2074686520626c6f636b206e756d626572206d757374206265206174206c656173742060656e64603b206f722d0120202d207468652063757272656e74206c6561736520706572696f64206d7573742062652067726561746572207468616e207468652066756e64277320606c6173745f706572696f64602e006d01496e207468697320636173652c207468652066756e642773207265746972656d656e7420666c61672069732073657420616e64206974732060656e646020697320726573657420746f207468652063757272656e7420626c6f636b1c6e756d6265722e00f02d206077686f603a20546865206163636f756e742077686f736520636f6e747269627574696f6e2073686f756c642062652077697468647261776e2e19012d2060696e646578603a205468652070617261636861696e20746f2077686f73652063726f77646c6f616e2074686520636f6e747269627574696f6e20776173206d6164652e18726566756e64040114696e64657871050118506172614964000314e04175746f6d61746963616c6c7920726566756e6420636f6e7472696275746f7273206f6620616e20656e6465642063726f77646c6f616e2e210144756520746f20776569676874207265737472696374696f6e732c20746869732066756e6374696f6e206d6179206e65656420746f2062652063616c6c6564206d756c7469706c65490174696d657320746f2066756c6c7920726566756e6420616c6c2075736572732e2057652077696c6c20726566756e64206052656d6f76654b6579734c696d69746020757365727320617420612074696d652e00c04f726967696e206d757374206265207369676e65642c206275742063616e20636f6d652066726f6d20616e796f6e652e20646973736f6c7665040114696e64657871050118506172614964000404550152656d6f766520612066756e6420616674657220746865207265746972656d656e7420706572696f642068617320656e64656420616e6420616c6c2066756e64732068617665206265656e2072657475726e65642e1065646974180114696e6465787105011850617261496400010c636170cc013042616c616e63654f663c543e00013066697273745f706572696f64ad0101404c65617365506572696f644f663c543e00012c6c6173745f706572696f64ad0101404c65617365506572696f644f663c543e00010c656e64ad010138543a3a426c6f636b4e756d62657200012076657269666965727905014c4f7074696f6e3c4d756c74695369676e65723e00050cd0456469742074686520636f6e66696775726174696f6e20666f7220616e20696e2d70726f67726573732063726f77646c6f616e2e008843616e206f6e6c792062652063616c6c656420627920526f6f74206f726967696e2e206164645f6d656d6f080114696e646578510101185061726149640001106d656d6f28011c5665633c75383e00060cec41646420616e206f7074696f6e616c206d656d6f20746f20616e206578697374696e672063726f77646c6f616e20636f6e747269627574696f6e2e002d014f726967696e206d757374206265205369676e65642c20616e64207468652075736572206d757374206861766520636f6e747269627574656420746f207468652063726f77646c6f616e2e10706f6b65040114696e6465785101011850617261496400070c74506f6b65207468652066756e6420696e746f20604e657752616973656000dc4f726967696e206d757374206265205369676e65642c20616e64207468652066756e6420686173206e6f6e2d7a65726f2072616973652e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e790504184f7074696f6e040454017d050108104e6f6e6500000010536f6d6504007d0500000100007d05082873705f72756e74696d652c4d756c74695369676e657200010c1c456432353531390400b0013c656432353531393a3a5075626c69630000001c537232353531390400bc013c737232353531393a3a5075626c696300010014456364736104008105013465636473613a3a5075626c69630002000081050c1c73705f636f7265146563647361185075626c696300000400850501205b75383b2033335d00008505000003210000000800890504184f7074696f6e040454018d050108104e6f6e6500000010536f6d6504008d0500000100008d05082873705f72756e74696d65384d756c74695369676e617475726500010c1c456432353531390400ad020148656432353531393a3a5369676e61747572650000001c5372323535313904005d010148737232353531393a3a5369676e617475726500010014456364736104009105014065636473613a3a5369676e61747572650002000091050c1c73705f636f7265146563647361245369676e617475726500000400110301205b75383b2036355d000095050840706f6c6b61646f745f72756e74696d65304f726967696e43616c6c65720001141873797374656d0400990501746672616d655f73797374656d3a3a4f726967696e3c52756e74696d653e0000001c436f756e63696c04009d0501010170616c6c65745f636f6c6c6563746976653a3a4f726967696e3c52756e74696d652c2070616c6c65745f636f6c6c6563746976653a3a496e7374616e6365313e000f0048546563686e6963616c436f6d6d69747465650400a10501010170616c6c65745f636f6c6c6563746976653a3a4f726967696e3c52756e74696d652c2070616c6c65745f636f6c6c6563746976653a3a496e7374616e6365323e0010004050617261636861696e734f726967696e0400a505016470617261636861696e735f6f726967696e3a3a4f726967696e00320010566f69640400a90501110173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a566f696400040000990508306672616d655f73797374656d245261774f726967696e04244163636f756e7449640100010c10526f6f74000000185369676e656404000001244163636f756e744964000100104e6f6e65000200009d05084470616c6c65745f636f6c6c656374697665245261774f726967696e08244163636f756e7449640100044900010c1c4d656d62657273080010012c4d656d626572436f756e74000010012c4d656d626572436f756e74000000184d656d62657204000001244163636f756e744964000100205f5068616e746f6d00020000a105084470616c6c65745f636f6c6c656374697665245261774f726967696e08244163636f756e7449640100044900010c1c4d656d62657273080010012c4d656d626572436f756e74000010012c4d656d626572436f756e74000000184d656d62657204000001244163636f756e744964000100205f5068616e746f6d00020000a505106c706f6c6b61646f745f72756e74696d655f70617261636861696e73186f726967696e1870616c6c6574184f726967696e0001042450617261636861696e04005101011850617261496400000000a905081c73705f636f726510566f696400010000ad05084070616c6c65745f7363686564756c65722052656c656173657300010808563100000008563200010000b1050c4070616c6c65745f7363686564756c65721870616c6c6574144572726f72040454000110404661696c6564546f5363686564756c65000004644661696c656420746f207363686564756c6520612063616c6c204e6f74466f756e640001047c43616e6e6f742066696e6420746865207363686564756c65642063616c6c2e5c546172676574426c6f636b4e756d626572496e50617374000204a4476976656e2074617267657420626c6f636b206e756d62657220697320696e2074686520706173742e4852657363686564756c654e6f4368616e6765000304f052657363686564756c65206661696c6564206265636175736520697420646f6573206e6f74206368616e6765207363686564756c65642074696d652e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909b50510346672616d655f737570706f72741c73746f72616765407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401b905045300000400bd0501185665633c543e0000b9050000040825022000bd05000002b90500c10510346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e6465645665630804540104045300000400c50501185665633c543e0000c5050000020400c90504184f7074696f6e04045401040108104e6f6e6500000010536f6d650400040000010000cd05084473705f636f6e73656e7375735f62616265584261626545706f6368436f6e66696775726174696f6e00000801046335020128287536342c2075363429000134616c6c6f7765645f736c6f747339020130416c6c6f776564536c6f74730000d1050c2c70616c6c65745f626162651870616c6c6574144572726f7204045400010c60496e76616c696445717569766f636174696f6e50726f6f660000043101416e2065717569766f636174696f6e2070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e60496e76616c69644b65794f776e65727368697050726f6f66000104310141206b6579206f776e6572736869702070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e584475706c69636174654f6666656e63655265706f727400020415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909d5050000040c0018e800d9050c3870616c6c65745f696e64696365731870616c6c6574144572726f720404540001142c4e6f7441737369676e65640000048c54686520696e64657820776173206e6f7420616c72656164792061737369676e65642e204e6f744f776e6572000104a454686520696e6465782069732061737369676e656420746f20616e6f74686572206163636f756e742e14496e5573650002047054686520696e64657820776173206e6f7420617661696c61626c652e2c4e6f745472616e73666572000304c854686520736f7572636520616e642064657374696e6174696f6e206163636f756e747320617265206964656e746963616c2e245065726d616e656e74000404d054686520696e646578206973207065726d616e656e7420616e64206d6179206e6f742062652066726565642f6368616e6765642e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909dd0510346672616d655f737570706f72741c73746f72616765407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401e105045300000400e90501185665633c543e0000e105083c70616c6c65745f62616c616e6365732c42616c616e63654c6f636b041c42616c616e63650118000c01086964f50101384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e636500011c726561736f6e73e505011c526561736f6e730000e505083c70616c6c65745f62616c616e6365731c526561736f6e7300010c0c466565000000104d6973630001000c416c6c00020000e905000002e10500ed0510346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e64656456656308045401f105045300000400f50501185665633c543e0000f105083c70616c6c65745f62616c616e6365732c52657365727665446174610844526573657276654964656e74696669657201f5011c42616c616e63650118000801086964f5010144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e63650000f505000002f10500f905083c70616c6c65745f62616c616e6365732052656c65617365730001081856315f305f300000001856325f305f3000010000fd050c3c70616c6c65745f62616c616e6365731870616c6c6574144572726f720804540004490001203856657374696e6742616c616e63650000049856657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c7565544c69717569646974795265737472696374696f6e73000104c44163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c4c496e73756666696369656e7442616c616e63650002047442616c616e636520746f6f206c6f7720746f2073656e642076616c7565484578697374656e7469616c4465706f736974000304e856616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f736974244b656570416c6976650004048c5472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e745c4578697374696e6756657374696e675363686564756c65000504c8412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742c446561644163636f756e740006048842656e6566696369617279206163636f756e74206d757374207072652d65786973743c546f6f4d616e795265736572766573000704ac4e756d626572206f66206e616d656420726573657276657320657863656564204d6178526573657276657304bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a09090901060c3473705f61726974686d657469632c66697865645f706f696e7424466978656455313238000004001801107531323800000506086870616c6c65745f7472616e73616374696f6e5f7061796d656e742052656c6561736573000108245631416e6369656e740000000856320001000009060000020d06000d060c346672616d655f737570706f72741c7765696768747358576569676874546f466565436f656666696369656e74041c42616c616e6365011800100134636f6566665f696e746567657218011c42616c616e6365000128636f6566665f66726163b901011c50657262696c6c0001206e65676174697665e80110626f6f6c0001186465677265650801087538000011060000021506001506084470616c6c65745f617574686f727368697038556e636c65456e7472794974656d0c2c426c6f636b4e756d62657201101048617368012418417574686f72010001083c496e636c7573696f6e486569676874040010012c426c6f636b4e756d62657200000014556e636c650800240110486173680000f10201384f7074696f6e3c417574686f723e0001000019060c4470616c6c65745f617574686f72736869701870616c6c6574144572726f7204045400011c48496e76616c6964556e636c65506172656e740000048854686520756e636c6520706172656e74206e6f7420696e2074686520636861696e2e40556e636c6573416c726561647953657400010480556e636c657320616c72656164792073657420696e2074686520626c6f636b2e34546f6f4d616e79556e636c657300020440546f6f206d616e7920756e636c65732e3047656e65736973556e636c650003045454686520756e636c652069732067656e657369732e30546f6f48696768556e636c650004047c54686520756e636c6520697320746f6f206869676820696e20636861696e2e50556e636c65416c7265616479496e636c756465640005047854686520756e636c6520697320616c726561647920696e636c756465642e204f6c64556e636c65000604b454686520756e636c652069736e277420726563656e7420656e6f75676820746f20626520696e636c756465642e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a0909091d06083870616c6c65745f7374616b696e67345374616b696e674c656467657208244163636f756e74496401001c42616c616e636501180014011473746173680001244163636f756e744964000114746f74616ccc011c42616c616e6365000118616374697665cc011c42616c616e6365000124756e6c6f636b696e67210601645665633c556e6c6f636b4368756e6b3c42616c616e63653e3e00013c636c61696d65645f72657761726473750201345665633c457261496e6465783e000021060000022506002506083870616c6c65745f7374616b696e672c556e6c6f636b4368756e6b041c42616c616e636501180008011476616c7565cc011c42616c616e636500010c657261ad010120457261496e64657800002906083870616c6c65745f7374616b696e672c4e6f6d696e6174696f6e7304244163636f756e7449640100000c011c74617267657473dc01385665633c4163636f756e7449643e0001307375626d69747465645f696e100120457261496e64657800012873757070726573736564e80110626f6f6c00002d06083870616c6c65745f7374616b696e6734416374697665457261496e666f0000080114696e646578100120457261496e6465780001147374617274d501012c4f7074696f6e3c7536343e00003106000004081000003506083870616c6c65745f7374616b696e673c457261526577617264506f696e747304244163636f756e744964010000080114746f74616c10012c526577617264506f696e74000128696e646976696475616c3906018042547265654d61703c4163636f756e7449642c20526577617264506f696e743e00003906042042547265654d617008044b0100045601100004003d060000003d060000024106004106000004080010004506083870616c6c65745f7374616b696e671c466f7263696e67000110284e6f74466f7263696e6700000020466f7263654e657700010024466f7263654e6f6e650002002c466f726365416c776179730003000049060000024d06004d06083870616c6c65745f7374616b696e6738556e6170706c696564536c61736808244163636f756e74496401001c42616c616e636501180014012476616c696461746f720001244163636f756e74496400010c6f776e18011c42616c616e63650001186f7468657273f401645665633c284163636f756e7449642c2042616c616e6365293e0001247265706f7274657273dc01385665633c4163636f756e7449643e0001187061796f757418011c42616c616e63650000510600000408b901180055060c3870616c6c65745f7374616b696e6720736c617368696e6734536c617368696e675370616e7300001001287370616e5f696e6465781001245370616e496e6465780001286c6173745f7374617274100120457261496e6465780001486c6173745f6e6f6e7a65726f5f736c617368100120457261496e6465780001147072696f72750201345665633c457261496e6465783e000059060c3870616c6c65745f7374616b696e6720736c617368696e67285370616e5265636f7264041c42616c616e636501180008011c736c617368656418011c42616c616e6365000120706169645f6f757418011c42616c616e636500005d06083870616c6c65745f7374616b696e672052656c65617365730001203456315f305f30416e6369656e740000001856325f305f300001001856335f305f300002001856345f305f300003001856355f305f300004001856365f305f300005001856375f305f300006001856385f305f30000700006106103870616c6c65745f7374616b696e671870616c6c65741870616c6c6574144572726f7204045400015c344e6f74436f6e74726f6c6c6572000004644e6f74206120636f6e74726f6c6c6572206163636f756e742e204e6f745374617368000104504e6f742061207374617368206163636f756e742e34416c7265616479426f6e64656400020460537461736820697320616c726561647920626f6e6465642e34416c726561647950616972656400030474436f6e74726f6c6c657220697320616c7265616479207061697265642e30456d7074795461726765747300040460546172676574732063616e6e6f7420626520656d7074792e384475706c6963617465496e646578000504404475706c696361746520696e6465782e44496e76616c6964536c617368496e64657800060484536c617368207265636f726420696e646578206f7574206f6620626f756e64732e40496e73756666696369656e74426f6e64000704cc43616e206e6f7420626f6e6420776974682076616c7565206c657373207468616e206d696e696d756d2072657175697265642e304e6f4d6f72654368756e6b730008049043616e206e6f74207363686564756c65206d6f726520756e6c6f636b206368756e6b732e344e6f556e6c6f636b4368756e6b000904a043616e206e6f74207265626f6e6420776974686f757420756e6c6f636b696e67206368756e6b732e3046756e646564546172676574000a04c8417474656d7074696e6720746f2074617267657420612073746173682074686174207374696c6c206861732066756e64732e48496e76616c6964457261546f526577617264000b0458496e76616c69642065726120746f207265776172642e68496e76616c69644e756d6265724f664e6f6d696e6174696f6e73000c0478496e76616c6964206e756d626572206f66206e6f6d696e6174696f6e732e484e6f74536f72746564416e64556e69717565000d04804974656d7320617265206e6f7420736f7274656420616e6420756e697175652e38416c7265616479436c61696d6564000e0409015265776172647320666f72207468697320657261206861766520616c7265616479206265656e20636c61696d656420666f7220746869732076616c696461746f722e54496e636f7272656374486973746f72794465707468000f04c0496e636f72726563742070726576696f757320686973746f727920646570746820696e7075742070726f76696465642e58496e636f7272656374536c617368696e675370616e73001004b0496e636f7272656374206e756d626572206f6620736c617368696e67207370616e732070726f76696465642e2042616453746174650011043901496e7465726e616c20737461746520686173206265636f6d6520736f6d65686f7720636f7272757074656420616e6420746865206f7065726174696f6e2063616e6e6f7420636f6e74696e75652e38546f6f4d616e795461726765747300120494546f6f206d616e79206e6f6d696e6174696f6e207461726765747320737570706c6965642e244261645461726765740013043d0141206e6f6d696e6174696f6e207461726765742077617320737570706c69656420746861742077617320626c6f636b6564206f72206f7468657277697365206e6f7420612076616c696461746f722e4043616e6e6f744368696c6c4f74686572001404550154686520757365722068617320656e6f75676820626f6e6420616e6420746875732063616e6e6f74206265206368696c6c656420666f72636566756c6c7920627920616e2065787465726e616c20706572736f6e2e44546f6f4d616e794e6f6d696e61746f72730015084d0154686572652061726520746f6f206d616e79206e6f6d696e61746f727320696e207468652073797374656d2e20476f7665726e616e6365206e6565647320746f2061646a75737420746865207374616b696e67b473657474696e677320746f206b656570207468696e6773207361666520666f72207468652072756e74696d652e44546f6f4d616e7956616c696461746f72730016084d0154686572652061726520746f6f206d616e792076616c696461746f727320696e207468652073797374656d2e20476f7665726e616e6365206e6565647320746f2061646a75737420746865207374616b696e67b473657474696e677320746f206b656570207468696e6773207361666520666f72207468652072756e74696d652e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a09090965060c2873705f7374616b696e671c6f6666656e6365384f6666656e636544657461696c7308205265706f727465720100204f6666656e64657201c4000801206f6666656e646572c401204f6666656e6465720001247265706f7274657273dc01345665633c5265706f727465723e00006906000004089828006d06000002710600710600000408008502007506000004087906280079060c1c73705f636f72651863727970746f244b65795479706549640000040038011c5b75383b20345d00007d060c3870616c6c65745f73657373696f6e1870616c6c6574144572726f7204045400011430496e76616c696450726f6f6600000460496e76616c6964206f776e6572736869702070726f6f662e5c4e6f4173736f63696174656456616c696461746f7249640001049c4e6f206173736f6369617465642076616c696461746f7220494420666f72206163636f756e742e344475706c6963617465644b65790002046452656769737465726564206475706c6963617465206b65792e184e6f4b657973000304a44e6f206b65797320617265206173736f63696174656420776974682074686973206163636f756e742e244e6f4163636f756e7400040419014b65792073657474696e67206163636f756e74206973206e6f74206c6976652c20736f206974277320696d706f737369626c6520746f206173736f6369617465206b6579732e04744572726f7220666f72207468652073657373696f6e2070616c6c65742e8106083870616c6c65745f6772616e6470612c53746f726564537461746504044e01100110104c6976650000003050656e64696e6750617573650801307363686564756c65645f61741001044e00011464656c61791001044e000100185061757365640002003450656e64696e67526573756d650801307363686564756c65645f61741001044e00011464656c61791001044e000300008506083870616c6c65745f6772616e6470614c53746f72656450656e64696e674368616e676508044e0110144c696d697400001001307363686564756c65645f61741001044e00011464656c61791001044e0001406e6578745f617574686f7269746965738906016c426f756e646564417574686f726974794c6973743c4c696d69743e000118666f72636564790201244f7074696f6e3c4e3e0000890610346672616d655f737570706f72741c73746f72616765407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401a8045300000400a401185665633c543e00008d060c3870616c6c65745f6772616e6470611870616c6c6574144572726f7204045400011c2c50617573654661696c65640000080501417474656d707420746f207369676e616c204752414e445041207061757365207768656e2074686520617574686f72697479207365742069736e2774206c697665a42865697468657220706175736564206f7220616c72656164792070656e64696e67207061757365292e30526573756d654661696c65640001081101417474656d707420746f207369676e616c204752414e44504120726573756d65207768656e2074686520617574686f72697479207365742069736e277420706175736564a028656974686572206c697665206f7220616c72656164792070656e64696e6720726573756d65292e344368616e676550656e64696e67000204e8417474656d707420746f207369676e616c204752414e445041206368616e67652077697468206f6e6520616c72656164792070656e64696e672e1c546f6f536f6f6e000304bc43616e6e6f74207369676e616c20666f72636564206368616e676520736f20736f6f6e206166746572206c6173742e60496e76616c69644b65794f776e65727368697050726f6f66000404310141206b6579206f776e6572736869702070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e60496e76616c696445717569766f636174696f6e50726f6f660005043101416e2065717569766f636174696f6e2070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e584475706c69636174654f6666656e63655265706f727400060415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909910610346672616d655f737570706f72741c73746f72616765407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401b8045300000400950601185665633c543e00009506000002b800990610346672616d655f737570706f727418747261697473106d69736334577261707065724f7061717565040454019d06000800ad010000009d0601045400009d06084070616c6c65745f696d5f6f6e6c696e6564426f756e6465644f70617175654e6574776f726b53746174650c4c506565724964456e636f64696e674c696d697400584d756c746941646472456e636f64696e674c696d697400384164647265737365734c696d6974000008011c706565725f6964a106019c5765616b426f756e6465645665633c75382c20506565724964456e636f64696e674c696d69743e00014865787465726e616c5f616464726573736573a506012d015765616b426f756e6465645665633c5765616b426f756e6465645665633c75382c204d756c746941646472456e636f64696e674c696d69743e2c204164647265737365734c696d69740a3e0000a10610346672616d655f737570706f72741c73746f72616765407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401080453000004002801185665633c543e0000a50610346672616d655f737570706f72741c73746f72616765407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401a106045300000400a90601185665633c543e0000a906000002a10600ad060c4070616c6c65745f696d5f6f6e6c696e651870616c6c6574144572726f7204045400010828496e76616c69644b6579000004604e6f6e206578697374656e74207075626c6963206b65792e4c4475706c696361746564486561727462656174000104544475706c696361746564206865617274626561742e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909b106000002b50600b5060000040c10240000b90600000408dc1800bd06084070616c6c65745f64656d6f637261637938507265696d6167655374617475730c244163636f756e74496401001c42616c616e636501182c426c6f636b4e756d626572011001081c4d697373696e67040010012c426c6f636b4e756d62657200000024417661696c61626c651401106461746128011c5665633c75383e00012070726f76696465720001244163636f756e74496400011c6465706f73697418011c42616c616e636500011473696e636510012c426c6f636b4e756d6265720001186578706972797902014c4f7074696f6e3c426c6f636b4e756d6265723e00010000c1060c4070616c6c65745f64656d6f6372616379147479706573385265666572656e64756d496e666f0c2c426c6f636b4e756d6265720110104861736801241c42616c616e6365011801081c4f6e676f696e670400c50601b05265666572656e64756d5374617475733c426c6f636b4e756d6265722c20486173682c2042616c616e63653e0000002046696e6973686564080120617070726f766564e80110626f6f6c00010c656e6410012c426c6f636b4e756d62657200010000c5060c4070616c6c65745f64656d6f6372616379147479706573405265666572656e64756d5374617475730c2c426c6f636b4e756d6265720110104861736801241c42616c616e636501180014010c656e6410012c426c6f636b4e756d62657200013470726f706f73616c5f68617368240110486173680001247468726573686f6c64e00134566f74655468726573686f6c6400011464656c617910012c426c6f636b4e756d62657200011474616c6c79c906013854616c6c793c42616c616e63653e0000c9060c4070616c6c65745f64656d6f63726163791474797065731454616c6c79041c42616c616e63650118000c01106179657318011c42616c616e63650001106e61797318011c42616c616e636500011c7475726e6f757418011c42616c616e63650000cd060c4070616c6c65745f64656d6f637261637910766f746518566f74696e670c1c42616c616e63650118244163636f756e74496401002c426c6f636b4e756d62657201100108184469726563740c0114766f746573d10601b05665633c285265666572656e64756d496e6465782c204163636f756e74566f74653c42616c616e63653e293e00012c64656c65676174696f6e73d906015044656c65676174696f6e733c42616c616e63653e0001147072696f72dd06017c5072696f724c6f636b3c426c6f636b4e756d6265722c2042616c616e63653e0000002844656c65676174696e6714011c62616c616e636518011c42616c616e63650001187461726765740001244163636f756e744964000128636f6e76696374696f6ee9020128436f6e76696374696f6e00012c64656c65676174696f6e73d906015044656c65676174696f6e733c42616c616e63653e0001147072696f72dd06017c5072696f724c6f636b3c426c6f636b4e756d6265722c2042616c616e63653e00010000d106000002d50600d5060000040810e10200d9060c4070616c6c65745f64656d6f63726163791474797065732c44656c65676174696f6e73041c42616c616e6365011800080114766f74657318011c42616c616e636500011c6361706974616c18011c42616c616e63650000dd060c4070616c6c65745f64656d6f637261637910766f7465245072696f724c6f636b082c426c6f636b4e756d62657201101c42616c616e6365011800080010012c426c6f636b4e756d626572000018011c42616c616e63650000e1060000040824e000e5060000040810dc00e906084070616c6c65745f64656d6f63726163792052656c656173657300010408563100000000ed060c4070616c6c65745f64656d6f63726163791870616c6c6574144572726f720404540001702056616c75654c6f770000043456616c756520746f6f206c6f773c50726f706f73616c4d697373696e670001045c50726f706f73616c20646f6573206e6f742065786973743c416c726561647943616e63656c65640002049443616e6e6f742063616e63656c207468652073616d652070726f706f73616c207477696365444475706c696361746550726f706f73616c0003045450726f706f73616c20616c7265616479206d6164654c50726f706f73616c426c61636b6c69737465640004046850726f706f73616c207374696c6c20626c61636b6c6973746564444e6f7453696d706c654d616a6f72697479000504a84e6578742065787465726e616c2070726f706f73616c206e6f742073696d706c65206d616a6f726974792c496e76616c69644861736800060430496e76616c69642068617368284e6f50726f706f73616c000704504e6f2065787465726e616c2070726f706f73616c34416c72656164795665746f6564000804984964656e74697479206d6179206e6f74207665746f20612070726f706f73616c207477696365444475706c6963617465507265696d61676500090458507265696d61676520616c7265616479206e6f7465642c4e6f74496d6d696e656e74000a04304e6f7420696d6d696e656e7420546f6f4561726c79000b0424546f6f206561726c7920496d6d696e656e74000c0420496d6d696e656e743c507265696d6167654d697373696e67000d0448507265696d616765206e6f7420666f756e64445265666572656e64756d496e76616c6964000e0484566f746520676976656e20666f7220696e76616c6964207265666572656e64756d3c507265696d616765496e76616c6964000f0440496e76616c696420707265696d6167652c4e6f6e6557616974696e67001004504e6f2070726f706f73616c732077616974696e67204e6f74566f746572001104c454686520676976656e206163636f756e7420646964206e6f7420766f7465206f6e20746865207265666572656e64756d2e304e6f5065726d697373696f6e001204c8546865206163746f7220686173206e6f207065726d697373696f6e20746f20636f6e647563742074686520616374696f6e2e44416c726561647944656c65676174696e6700130488546865206163636f756e7420697320616c72656164792064656c65676174696e672e44496e73756666696369656e7446756e6473001404fc546f6f206869676820612062616c616e6365207761732070726f7669646564207468617420746865206163636f756e742063616e6e6f74206166666f72642e344e6f7444656c65676174696e67001504a0546865206163636f756e74206973206e6f742063757272656e746c792064656c65676174696e672e28566f74657345786973740016085501546865206163636f756e742063757272656e746c792068617320766f74657320617474616368656420746f20697420616e6420746865206f7065726174696f6e2063616e6e6f74207375636365656420756e74696ce87468657365206172652072656d6f7665642c20656974686572207468726f7567682060756e766f746560206f722060726561705f766f7465602e44496e7374616e744e6f74416c6c6f776564001704d854686520696e7374616e74207265666572656e64756d206f726967696e2069732063757272656e746c7920646973616c6c6f7765642e204e6f6e73656e73650018049444656c65676174696f6e20746f206f6e6573656c66206d616b6573206e6f2073656e73652e3c57726f6e675570706572426f756e6400190450496e76616c696420757070657220626f756e642e3c4d6178566f74657352656163686564001a04804d6178696d756d206e756d626572206f6620766f74657320726561636865642e40546f6f4d616e7950726f706f73616c73001b04904d6178696d756d206e756d626572206f662070726f706f73616c7320726561636865642e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909f10610346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e6465645665630804540124045300000400a10101185665633c543e0000f506084470616c6c65745f636f6c6c65637469766514566f74657308244163636f756e74496401002c426c6f636b4e756d626572011000140114696e64657810013450726f706f73616c496e6465780001247468726573686f6c6410012c4d656d626572436f756e7400011061796573dc01385665633c4163636f756e7449643e0001106e617973dc01385665633c4163636f756e7449643e00010c656e6410012c426c6f636b4e756d6265720000f9060c4470616c6c65745f636f6c6c6563746976651870616c6c6574144572726f72080454000449000128244e6f744d656d6265720000045c4163636f756e74206973206e6f742061206d656d626572444475706c696361746550726f706f73616c0001047c4475706c69636174652070726f706f73616c73206e6f7420616c6c6f7765643c50726f706f73616c4d697373696e670002044c50726f706f73616c206d7573742065786973742857726f6e67496e646578000304404d69736d61746368656420696e646578344475706c6963617465566f7465000404584475706c696361746520766f74652069676e6f72656448416c7265616479496e697469616c697a6564000504804d656d626572732061726520616c726561647920696e697469616c697a65642120546f6f4561726c79000604010154686520636c6f73652063616c6c20776173206d61646520746f6f206561726c792c206265666f72652074686520656e64206f662074686520766f74696e672e40546f6f4d616e7950726f706f73616c73000704fc54686572652063616e206f6e6c792062652061206d6178696d756d206f6620604d617850726f706f73616c7360206163746976652070726f706f73616c732e4c57726f6e6750726f706f73616c576569676874000804d054686520676976656e2077656967687420626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e4c57726f6e6750726f706f73616c4c656e677468000904d054686520676976656e206c656e67746820626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909fd0610346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e6465645665630804540124045300000400a10101185665633c543e000001070c4470616c6c65745f636f6c6c6563746976651870616c6c6574144572726f72080454000449000128244e6f744d656d6265720000045c4163636f756e74206973206e6f742061206d656d626572444475706c696361746550726f706f73616c0001047c4475706c69636174652070726f706f73616c73206e6f7420616c6c6f7765643c50726f706f73616c4d697373696e670002044c50726f706f73616c206d7573742065786973742857726f6e67496e646578000304404d69736d61746368656420696e646578344475706c6963617465566f7465000404584475706c696361746520766f74652069676e6f72656448416c7265616479496e697469616c697a6564000504804d656d626572732061726520616c726561647920696e697469616c697a65642120546f6f4561726c79000604010154686520636c6f73652063616c6c20776173206d61646520746f6f206561726c792c206265666f72652074686520656e64206f662074686520766f74696e672e40546f6f4d616e7950726f706f73616c73000704fc54686572652063616e206f6e6c792062652061206d6178696d756d206f6620604d617850726f706f73616c7360206163746976652070726f706f73616c732e4c57726f6e6750726f706f73616c576569676874000804d054686520676976656e2077656967687420626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e4c57726f6e6750726f706f73616c4c656e677468000904d054686520676976656e206c656e67746820626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a09090905070000020907000907086470616c6c65745f656c656374696f6e735f70687261676d656e2853656174486f6c64657208244163636f756e74496401001c42616c616e63650118000c010c77686f0001244163636f756e7449640001147374616b6518011c42616c616e636500011c6465706f73697418011c42616c616e636500000d07086470616c6c65745f656c656374696f6e735f70687261676d656e14566f74657208244163636f756e74496401001c42616c616e63650118000c0114766f746573dc01385665633c4163636f756e7449643e0001147374616b6518011c42616c616e636500011c6465706f73697418011c42616c616e6365000011070c6470616c6c65745f656c656374696f6e735f70687261676d656e1870616c6c6574144572726f7204045400014430556e61626c65546f566f7465000004c043616e6e6f7420766f7465207768656e206e6f2063616e64696461746573206f72206d656d626572732065786973742e1c4e6f566f746573000104944d75737420766f746520666f72206174206c65617374206f6e652063616e6469646174652e30546f6f4d616e79566f7465730002048443616e6e6f7420766f7465206d6f7265207468616e2063616e646964617465732e504d6178696d756d566f74657345786365656465640003049843616e6e6f7420766f7465206d6f7265207468616e206d6178696d756d20616c6c6f7765642e284c6f7742616c616e6365000404c443616e6e6f7420766f74652077697468207374616b65206c657373207468616e206d696e696d756d2062616c616e63652e3c556e61626c65546f506179426f6e6400050478566f7465722063616e206e6f742070617920766f74696e6720626f6e642e2c4d7573744265566f746572000604404d757374206265206120766f7465722e285265706f727453656c660007044c43616e6e6f74207265706f72742073656c662e4c4475706c69636174656443616e646964617465000804804475706c6963617465642063616e646964617465207375626d697373696f6e2e304d656d6265725375626d6974000904884d656d6265722063616e6e6f742072652d7375626d69742063616e6469646163792e3852756e6e657255705375626d6974000a048852756e6e65722063616e6e6f742072652d7375626d69742063616e6469646163792e68496e73756666696369656e7443616e64696461746546756e6473000b049443616e64696461746520646f6573206e6f74206861766520656e6f7567682066756e64732e244e6f744d656d626572000c04344e6f742061206d656d6265722e48496e76616c69645769746e65737344617461000d04e05468652070726f766964656420636f756e74206f66206e756d626572206f662063616e6469646174657320697320696e636f72726563742e40496e76616c6964566f7465436f756e74000e04cc5468652070726f766964656420636f756e74206f66206e756d626572206f6620766f74657320697320696e636f72726563742e44496e76616c696452656e6f756e63696e67000f04fc5468652072656e6f756e63696e67206f726967696e2070726573656e74656420612077726f6e67206052656e6f756e63696e676020706172616d657465722e48496e76616c69645265706c6163656d656e74001004fc50726564696374696f6e20726567617264696e67207265706c6163656d656e74206166746572206d656d6265722072656d6f76616c2069732077726f6e672e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a09090915070c4470616c6c65745f6d656d626572736869701870616c6c6574144572726f7208045400044900010834416c72656164794d656d62657200000444416c72656164792061206d656d6265722e244e6f744d656d626572000104344e6f742061206d656d6265722e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a0909091907083c70616c6c65745f74726561737572792050726f706f73616c08244163636f756e74496401001c42616c616e636501180010012070726f706f7365720001244163636f756e74496400011476616c756518011c42616c616e636500012c62656e65666963696172790001244163636f756e744964000110626f6e6418011c42616c616e636500001d0710346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e6465645665630804540110045300000400750201185665633c543e000021070c3473705f61726974686d65746963287065725f7468696e67731c5065726d696c6c0000040010010c7533320000250708346672616d655f737570706f72742050616c6c6574496400000400f501011c5b75383b20385d000029070c3c70616c6c65745f74726561737572791870616c6c6574144572726f7208045400044900010c70496e73756666696369656e7450726f706f7365727342616c616e63650000047850726f706f73657227732062616c616e636520697320746f6f206c6f772e30496e76616c6964496e646578000104904e6f2070726f706f73616c206f7220626f756e7479206174207468617420696e6465782e40546f6f4d616e79417070726f76616c7300020480546f6f206d616e7920617070726f76616c7320696e207468652071756575652e04784572726f7220666f72207468652074726561737572792070616c6c65742e2d07105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e18636c61696d731870616c6c6574144572726f7204045400011860496e76616c6964457468657265756d5369676e61747572650000046c496e76616c696420457468657265756d207369676e61747572652e405369676e65724861734e6f436c61696d00010478457468657265756d206164647265737320686173206e6f20636c61696d2e4053656e6465724861734e6f436c61696d000204b04163636f756e742049442073656e64696e67207472616e73616374696f6e20686173206e6f20636c61696d2e30506f74556e646572666c6f77000308610154686572652773206e6f7420656e6f75676820696e2074686520706f7420746f20706179206f757420736f6d6520756e76657374656420616d6f756e742e2047656e6572616c6c7920696d706c6965732061206c6f676963186572726f722e40496e76616c696453746174656d656e740004049041206e65656465642073746174656d656e7420776173206e6f7420696e636c756465642e4c56657374656442616c616e6365457869737473000504a4546865206163636f756e7420616c7265616479206861732061207665737465642062616c616e63652e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909310710346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e646564566563080454012903045300000400350701185665633c543e000035070000022903003907083870616c6c65745f76657374696e672052656c6561736573000108085630000000085631000100003d070c3870616c6c65745f76657374696e671870616c6c6574144572726f72040454000114284e6f7456657374696e6700000484546865206163636f756e7420676976656e206973206e6f742076657374696e672e5441744d617856657374696e675363686564756c65730001082501546865206163636f756e7420616c72656164792068617320604d617856657374696e675363686564756c65736020636f756e74206f66207363686564756c657320616e642074687573510163616e6e6f742061646420616e6f74686572206f6e652e20436f6e7369646572206d657267696e67206578697374696e67207363686564756c657320696e206f7264657220746f2061646420616e6f746865722e24416d6f756e744c6f770002040501416d6f756e74206265696e67207472616e7366657272656420697320746f6f206c6f7720746f2063726561746520612076657374696e67207363686564756c652e605363686564756c65496e6465784f75744f66426f756e6473000304d0416e20696e64657820776173206f7574206f6620626f756e6473206f66207468652076657374696e67207363686564756c65732e54496e76616c69645363686564756c65506172616d730004040d014661696c656420746f206372656174652061206e6577207363686564756c65206265636175736520736f6d6520706172616d657465722077617320696e76616c69642e04744572726f7220666f72207468652076657374696e672070616c6c65742e41070c3870616c6c65745f7574696c6974791870616c6c6574144572726f7204045400010430546f6f4d616e7943616c6c730000045c546f6f206d616e792063616c6c7320626174636865642e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a09090945070c3c70616c6c65745f6964656e7469747914747970657330526567697374726174696f6e0c1c42616c616e63650118344d61784a756467656d656e7473004c4d61784164646974696f6e616c4669656c647300000c01286a756467656d656e7473490701fc426f756e6465645665633c28526567697374726172496e6465782c204a756467656d656e743c42616c616e63653e292c204d61784a756467656d656e74733e00011c6465706f73697418011c42616c616e6365000110696e666f390301844964656e74697479496e666f3c4d61784164646974696f6e616c4669656c64733e0000490710346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e646564566563080454014d07045300000400510701185665633c543e00004d070000040810d1030051070000024d070055070000040818590700590710346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e6465645665630804540100045300000400dc01185665633c543e00005d0710346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e646564566563080454016107045300000400690701185665633c543e0000610704184f7074696f6e0404540165070108104e6f6e6500000010536f6d6504006507000001000065070c3c70616c6c65745f6964656e7469747914747970657334526567697374726172496e666f081c42616c616e63650118244163636f756e7449640100000c011c6163636f756e740001244163636f756e74496400010c66656518011c42616c616e63650001186669656c6473c90301384964656e746974794669656c6473000069070000026107006d070c3c70616c6c65745f6964656e746974791870616c6c6574144572726f7204045400014048546f6f4d616e795375624163636f756e74730000045c546f6f206d616e7920737562732d6163636f756e74732e204e6f74466f756e64000104504163636f756e742069736e277420666f756e642e204e6f744e616d6564000204504163636f756e742069736e2774206e616d65642e28456d707479496e64657800030430456d70747920696e6465782e284665654368616e6765640004043c466565206973206368616e6765642e284e6f4964656e74697479000504484e6f206964656e7469747920666f756e642e3c537469636b794a756467656d656e7400060444537469636b79206a756467656d656e742e384a756467656d656e74476976656e000704404a756467656d656e7420676976656e2e40496e76616c69644a756467656d656e7400080448496e76616c6964206a756467656d656e742e30496e76616c6964496e6465780009045454686520696e64657820697320696e76616c69642e34496e76616c6964546172676574000a04585468652074617267657420697320696e76616c69642e34546f6f4d616e794669656c6473000b046c546f6f206d616e79206164646974696f6e616c206669656c64732e44546f6f4d616e7952656769737472617273000c04e84d6178696d756d20616d6f756e74206f66207265676973747261727320726561636865642e2043616e6e6f742061646420616e79206d6f72652e38416c7265616479436c61696d6564000d04704163636f756e7420494420697320616c7265616479206e616d65642e184e6f74537562000e047053656e646572206973206e6f742061207375622d6163636f756e742e204e6f744f776e6564000f04885375622d6163636f756e742069736e2774206f776e65642062792073656e6465722e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a09090971070000040875071800750710346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e6465645665630804540179070453000004007d0701185665633c543e00007907083070616c6c65745f70726f78793c50726f7879446566696e6974696f6e0c244163636f756e74496401002450726f7879547970650121012c426c6f636b4e756d6265720110000c012064656c65676174650001244163636f756e74496400012870726f78795f747970652101012450726f78795479706500011464656c617910012c426c6f636b4e756d62657200007d0700000279070081070000040885071800850710346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e6465645665630804540189070453000004008d0701185665633c543e00008907083070616c6c65745f70726f787930416e6e6f756e63656d656e740c244163636f756e7449640100104861736801242c426c6f636b4e756d6265720110000c01107265616c0001244163636f756e74496400012463616c6c5f686173682401104861736800011868656967687410012c426c6f636b4e756d62657200008d0700000289070091070c3070616c6c65745f70726f78791870616c6c6574144572726f720404540001201c546f6f4d616e79000004210154686572652061726520746f6f206d616e792070726f786965732072656769737465726564206f7220746f6f206d616e7920616e6e6f756e63656d656e74732070656e64696e672e204e6f74466f756e640001047450726f787920726567697374726174696f6e206e6f7420666f756e642e204e6f7450726f7879000204cc53656e646572206973206e6f7420612070726f7879206f6620746865206163636f756e7420746f2062652070726f786965642e2c556e70726f787961626c650003042101412063616c6c20776869636820697320696e636f6d70617469626c652077697468207468652070726f7879207479706527732066696c7465722077617320617474656d707465642e244475706c69636174650004046c4163636f756e7420697320616c726561647920612070726f78792e304e6f5065726d697373696f6e000504150143616c6c206d6179206e6f74206265206d6164652062792070726f78792062656361757365206974206d617920657363616c617465206974732070726976696c656765732e2c556e616e6e6f756e636564000604d0416e6e6f756e63656d656e742c206966206d61646520617420616c6c2c20776173206d61646520746f6f20726563656e746c792e2c4e6f53656c6650726f78790007046443616e6e6f74206164642073656c662061732070726f78792e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a0909099507000004080004009907083c70616c6c65745f6d756c7469736967204d756c74697369670c2c426c6f636b4e756d62657201101c42616c616e63650118244163636f756e7449640100001001107768656e2d01015854696d65706f696e743c426c6f636b4e756d6265723e00011c6465706f73697418011c42616c616e63650001246465706f7369746f720001244163636f756e744964000124617070726f76616c73dc01385665633c4163636f756e7449643e00009d070000040c28001800a1070c3c70616c6c65745f6d756c74697369671870616c6c6574144572726f72040454000138404d696e696d756d5468726573686f6c640000047c5468726573686f6c64206d7573742062652032206f7220677265617465722e3c416c7265616479417070726f766564000104ac43616c6c20697320616c726561647920617070726f7665642062792074686973207369676e61746f72792e444e6f417070726f76616c734e65656465640002049c43616c6c20646f65736e2774206e65656420616e7920286d6f72652920617070726f76616c732e44546f6f4665775369676e61746f72696573000304a854686572652061726520746f6f20666577207369676e61746f7269657320696e20746865206c6973742e48546f6f4d616e795369676e61746f72696573000404ac54686572652061726520746f6f206d616e79207369676e61746f7269657320696e20746865206c6973742e545369676e61746f726965734f75744f664f726465720005040d01546865207369676e61746f7269657320776572652070726f7669646564206f7574206f66206f726465723b20746865792073686f756c64206265206f7264657265642e4c53656e646572496e5369676e61746f726965730006040d015468652073656e6465722077617320636f6e7461696e656420696e20746865206f74686572207369676e61746f726965733b2069742073686f756c646e27742062652e204e6f74466f756e64000704dc4d756c7469736967206f7065726174696f6e206e6f7420666f756e64207768656e20617474656d7074696e6720746f2063616e63656c2e204e6f744f776e65720008042d014f6e6c7920746865206163636f756e742074686174206f726967696e616c6c79206372656174656420746865206d756c74697369672069732061626c6520746f2063616e63656c2069742e2c4e6f54696d65706f696e740009041d014e6f2074696d65706f696e742077617320676976656e2c2079657420746865206d756c7469736967206f7065726174696f6e20697320616c726561647920756e6465727761792e3857726f6e6754696d65706f696e74000a042d014120646966666572656e742074696d65706f696e742077617320676976656e20746f20746865206d756c7469736967206f7065726174696f6e207468617420697320756e6465727761792e4c556e657870656374656454696d65706f696e74000b04f4412074696d65706f696e742077617320676976656e2c20796574206e6f206d756c7469736967206f7065726174696f6e20697320756e6465727761792e3c4d6178576569676874546f6f4c6f77000c04d0546865206d6178696d756d2077656967687420696e666f726d6174696f6e2070726f76696465642077617320746f6f206c6f772e34416c726561647953746f726564000d04a0546865206461746120746f2062652073746f72656420697320616c72656164792073746f7265642e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909a507083c70616c6c65745f626f756e7469657318426f756e74790c244163636f756e74496401001c42616c616e636501182c426c6f636b4e756d62657201100018012070726f706f7365720001244163636f756e74496400011476616c756518011c42616c616e636500010c66656518011c42616c616e636500013c63757261746f725f6465706f73697418011c42616c616e6365000110626f6e6418011c42616c616e6365000118737461747573a9070190426f756e74795374617475733c4163636f756e7449642c20426c6f636b4e756d6265723e0000a907083c70616c6c65745f626f756e7469657330426f756e747953746174757308244163636f756e74496401002c426c6f636b4e756d626572011001182050726f706f73656400000020417070726f7665640001001846756e6465640002003c43757261746f7250726f706f73656404011c63757261746f720001244163636f756e7449640003001841637469766508011c63757261746f720001244163636f756e7449640001287570646174655f64756510012c426c6f636b4e756d6265720004003450656e64696e675061796f75740c011c63757261746f720001244163636f756e74496400012c62656e65666963696172790001244163636f756e744964000124756e6c6f636b5f617410012c426c6f636b4e756d62657200050000ad070c3c70616c6c65745f626f756e746965731870616c6c6574144572726f7204045400012470496e73756666696369656e7450726f706f7365727342616c616e63650000047850726f706f73657227732062616c616e636520697320746f6f206c6f772e30496e76616c6964496e646578000104904e6f2070726f706f73616c206f7220626f756e7479206174207468617420696e6465782e30526561736f6e546f6f4269670002048454686520726561736f6e20676976656e206973206a75737420746f6f206269672e40556e65787065637465645374617475730003048054686520626f756e74792073746174757320697320756e65787065637465642e385265717569726543757261746f720004045c5265717569726520626f756e74792063757261746f722e30496e76616c696456616c756500050454496e76616c696420626f756e74792076616c75652e28496e76616c69644665650006044c496e76616c696420626f756e7479206665652e3450656e64696e675061796f75740007086c4120626f756e7479207061796f75742069732070656e64696e672ef8546f2063616e63656c2074686520626f756e74792c20796f75206d75737420756e61737369676e20616e6420736c617368207468652063757261746f722e245072656d6174757265000804450154686520626f756e746965732063616e6e6f7420626520636c61696d65642f636c6f73656420626563617573652069742773207374696c6c20696e2074686520636f756e74646f776e20706572696f642e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909b107082c70616c6c65745f746970731c4f70656e54697010244163636f756e74496401001c42616c616e636501182c426c6f636b4e756d626572011010486173680124001c0118726561736f6e2401104861736800010c77686f0001244163636f756e74496400011866696e6465720001244163636f756e74496400011c6465706f73697418011c42616c616e6365000118636c6f7365737902014c4f7074696f6e3c426c6f636b4e756d6265723e00011074697073f401645665633c284163636f756e7449642c2042616c616e6365293e00012c66696e646572735f666565e80110626f6f6c0000b5070c2c70616c6c65745f746970731870616c6c6574144572726f7204045400011830526561736f6e546f6f4269670000048454686520726561736f6e20676976656e206973206a75737420746f6f206269672e30416c72656164794b6e6f776e00010488546865207469702077617320616c726561647920666f756e642f737461727465642e28556e6b6e6f776e5469700002046054686520746970206861736820697320756e6b6e6f776e2e244e6f7446696e6465720003041d01546865206163636f756e7420617474656d7074696e6720746f20726574726163742074686520746970206973206e6f74207468652066696e646572206f6620746865207469702e245374696c6c4f70656e0004042901546865207469702063616e6e6f7420626520636c61696d65642f636c6f736564206265636175736520746865726520617265206e6f7420656e6f7567682074697070657273207965742e245072656d61747572650005043101546865207469702063616e6e6f7420626520636c61696d65642f636c6f73656420626563617573652069742773207374696c6c20696e2074686520636f756e74646f776e20706572696f642e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909b907089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173651450686173650408426e011001100c4f6666000000185369676e656400010020556e7369676e65640400bd07012828626f6f6c2c20426e2900020024456d657267656e637900030000bd0700000408e81000c107089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f7068617365345265616479536f6c7574696f6e0404410100000c0120737570706f727473cd04012c537570706f7274733c413e00011473636f7265c1040134456c656374696f6e53636f726500011c636f6d707574653d01013c456c656374696f6e436f6d707574650000c507089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f706861736534526f756e64536e617073686f74040441010000080118766f74657273c90701705665633c28412c20566f74655765696768742c205665633c413e293e00011c74617267657473dc01185665633c413e0000c907000002cd0700cd070000040c0020dc00d10710346672616d655f737570706f72741c73746f7261676544626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b01c10404560110045300000400d507013842547265654d61703c4b2c20563e0000d507042042547265654d617008044b01c10404560110000400d907000000d907000002dd0700dd0700000408c1041000e1070c9070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f7068617365187369676e6564405369676e65645375626d697373696f6e0c244163636f756e74496401001c42616c616e6365011820536f6c7574696f6e01f5030010010c77686f0001244163636f756e74496400011c6465706f73697418011c42616c616e63650001307261775f736f6c7574696f6ef1030154526177536f6c7574696f6e3c536f6c7574696f6e3e00011872657761726418011c42616c616e63650000e5070c9070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173651870616c6c6574144572726f7204045400012c6850726544697370617463684561726c795375626d697373696f6e000004645375626d697373696f6e2077617320746f6f206561726c792e6c507265446973706174636857726f6e6757696e6e6572436f756e740001048857726f6e67206e756d626572206f662077696e6e6572732070726573656e7465642e6450726544697370617463685765616b5375626d697373696f6e000204905375626d697373696f6e2077617320746f6f207765616b2c2073636f72652d776973652e3c5369676e6564517565756546756c6c0003044901546865207175657565207761732066756c6c2c20616e642074686520736f6c7574696f6e20776173206e6f7420626574746572207468616e20616e79206f6620746865206578697374696e67206f6e65732e585369676e656443616e6e6f745061794465706f73697400040494546865206f726967696e206661696c656420746f2070617920746865206465706f7369742e505369676e6564496e76616c69645769746e657373000504a05769746e657373206461746120746f20646973706174636861626c6520697320696e76616c69642e4c5369676e6564546f6f4d756368576569676874000604b8546865207369676e6564207375626d697373696f6e20636f6e73756d657320746f6f206d756368207765696768743c4f637743616c6c57726f6e67457261000704984f4357207375626d697474656420736f6c7574696f6e20666f722077726f6e6720726f756e645c4d697373696e67536e617073686f744d65746164617461000804a8536e617073686f74206d657461646174612073686f756c6420657869737420627574206469646e27742e58496e76616c69645375626d697373696f6e496e646578000904d06053656c663a3a696e736572745f7375626d697373696f6e602072657475726e656420616e20696e76616c696420696e6465782e3843616c6c4e6f74416c6c6f776564000a04985468652063616c6c206973206e6f7420616c6c6f776564206174207468697320706f696e742e040d014572726f72206f66207468652070616c6c657420746861742063616e2062652072657475726e656420696e20726573706f6e736520746f20646973706174636865732ee9070c6c706f6c6b61646f745f72756e74696d655f70617261636861696e7334636f6e66696775726174696f6e44486f7374436f6e66696775726174696f6e042c426c6f636b4e756d626572011000a001346d61785f636f64655f73697a6510010c7533320001486d61785f686561645f646174615f73697a6510010c7533320001586d61785f7570776172645f71756575655f636f756e7410010c7533320001546d61785f7570776172645f71756575655f73697a6510010c75333200015c6d61785f7570776172645f6d6573736167655f73697a6510010c7533320001906d61785f7570776172645f6d6573736167655f6e756d5f7065725f63616e64696461746510010c75333200018868726d705f6d61785f6d6573736167655f6e756d5f7065725f63616e64696461746510010c75333200017076616c69646174696f6e5f757067726164655f6672657175656e637910012c426c6f636b4e756d62657200016076616c69646174696f6e5f757067726164655f64656c617910012c426c6f636b4e756d6265720001306d61785f706f765f73697a6510010c7533320001646d61785f646f776e776172645f6d6573736167655f73697a6510010c753332000160756d705f736572766963655f746f74616c5f77656967687420011857656967687400019068726d705f6d61785f70617261636861696e5f6f7574626f756e645f6368616e6e656c7310010c75333200019468726d705f6d61785f706172617468726561645f6f7574626f756e645f6368616e6e656c7310010c75333200014c68726d705f73656e6465725f6465706f73697418011c42616c616e636500015868726d705f726563697069656e745f6465706f73697418011c42616c616e636500016468726d705f6368616e6e656c5f6d61785f636170616369747910010c75333200016c68726d705f6368616e6e656c5f6d61785f746f74616c5f73697a6510010c75333200018c68726d705f6d61785f70617261636861696e5f696e626f756e645f6368616e6e656c7310010c75333200019068726d705f6d61785f706172617468726561645f696e626f756e645f6368616e6e656c7310010c75333200017468726d705f6368616e6e656c5f6d61785f6d6573736167655f73697a6510010c753332000154636f64655f726574656e74696f6e5f706572696f6410012c426c6f636b4e756d626572000140706172617468726561645f636f72657310010c753332000148706172617468726561645f7265747269657310010c75333200016067726f75705f726f746174696f6e5f6672657175656e637910012c426c6f636b4e756d626572000164636861696e5f617661696c6162696c6974795f706572696f6410012c426c6f636b4e756d6265720001687468726561645f617661696c6162696c6974795f706572696f6410012c426c6f636b4e756d6265720001507363686564756c696e675f6c6f6f6b616865616410010c75333200015c6d61785f76616c696461746f72735f7065725f636f72657902012c4f7074696f6e3c7533323e0001386d61785f76616c696461746f72737902012c4f7074696f6e3c7533323e000138646973707574655f706572696f6410013053657373696f6e496e6465780001a4646973707574655f706f73745f636f6e636c7573696f6e5f616363657074616e63655f706572696f6410012c426c6f636b4e756d626572000158646973707574655f6d61785f7370616d5f736c6f747310010c753332000194646973707574655f636f6e636c7573696f6e5f62795f74696d655f6f75745f706572696f6410012c426c6f636b4e756d6265720001346e6f5f73686f775f736c6f747310010c7533320001406e5f64656c61795f7472616e6368657310010c7533320001687a65726f74685f64656c61795f7472616e6368655f776964746810010c7533320001406e65656465645f617070726f76616c7310010c75333200016072656c61795f7672665f6d6f64756c6f5f73616d706c657310010c753332000164756d705f6d61785f696e646976696475616c5f7765696768742001185765696768740000ed07106c706f6c6b61646f745f72756e74696d655f70617261636861696e7334636f6e66696775726174696f6e1870616c6c6574144572726f720404540001043c496e76616c69644e657756616c7565000004dc546865206e65772076616c756520666f72206120636f6e66696775726174696f6e20706172616d6574657220697320696e76616c69642e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909f107000002010500f507000002890200f9070c6c706f6c6b61646f745f72756e74696d655f70617261636861696e7324696e636c7573696f6e68417661696c6162696c6974794269746669656c645265636f726404044e0110000801206269746669656c64f5040150417661696c6162696c6974794269746669656c640001307375626d69747465645f61741001044e0000fd070c6c706f6c6b61646f745f72756e74696d655f70617261636861696e7324696e636c7573696f6e7043616e64696461746550656e64696e67417661696c6162696c6974790804480124044e011000200110636f72656d010124436f7265496e646578000110686173683905013443616e6469646174654861736800012864657363726970746f724d01015843616e64696461746544657363726970746f723c483e000148617661696c6162696c6974795f766f746573f90401604269745665633c4269744f726465724c7362302c2075383e00011c6261636b657273f90401604269745665633c4269744f726465724c7362302c2075383e00014c72656c61795f706172656e745f6e756d6265721001044e0001406261636b65645f696e5f6e756d6265721001044e0001346261636b696e675f67726f75707101012847726f7570496e64657800000108106c706f6c6b61646f745f72756e74696d655f70617261636861696e7324696e636c7573696f6e1870616c6c6574144572726f720404540001644457726f6e674269746669656c6453697a65000004a8417661696c6162696c697479206269746669656c642068617320756e65787065637465642073697a652e704269746669656c644475706c69636174654f72556e6f7264657265640001044d014d756c7469706c65206269746669656c6473207375626d69747465642062792073616d652076616c696461746f72206f722076616c696461746f7273206f7574206f66206f7264657220627920696e6465782e6456616c696461746f72496e6465784f75744f66426f756e64730002047856616c696461746f7220696e646578206f7574206f6620626f756e64732e60496e76616c69644269746669656c645369676e617475726500030444496e76616c6964207369676e617475726550556e7363686564756c656443616e646964617465000404ac43616e646964617465207375626d6974746564206275742070617261206e6f74207363686564756c65642e8043616e6469646174655363686564756c65644265666f72655061726146726565000504310143616e646964617465207363686564756c656420646573706974652070656e64696e672063616e64696461746520616c7265616479206578697374696e6720666f722074686520706172612e3457726f6e67436f6c6c61746f72000604ac43616e64696461746520696e636c756465642077697468207468652077726f6e6720636f6c6c61746f722e4c5363686564756c65644f75744f664f72646572000704745363686564756c656420636f726573206f7574206f66206f726465722e404865616444617461546f6f4c61726765000804a448656164206461746120657863656564732074686520636f6e66696775726564206d6178696d756d2e505072656d6174757265436f64655570677261646500090464436f64652075706772616465207072656d61747572656c792e3c4e6577436f6465546f6f4c61726765000a04604f757470757420636f646520697320746f6f206c617267656c43616e6469646174654e6f74496e506172656e74436f6e74657874000b048043616e646964617465206e6f7420696e20706172656e7420636f6e746578742e5c556e6f63637570696564426974496e4269746669656c64000c042101546865206269746669656c6420636f6e7461696e732061206269742072656c6174696e6720746f20616e20756e61737369676e656420617661696c6162696c69747920636f72652e44496e76616c696447726f7570496e646578000d049c496e76616c69642067726f757020696e64657820696e20636f72652061737369676e6d656e742e4c496e73756666696369656e744261636b696e67000e0490496e73756666696369656e7420286e6f6e2d6d616a6f7269747929206261636b696e672e38496e76616c69644261636b696e67000f04e4496e76616c69642028626164207369676e61747572652c20756e6b6e6f776e2076616c696461746f722c206574632e29206261636b696e672e444e6f74436f6c6c61746f725369676e656400100468436f6c6c61746f7220646964206e6f74207369676e20506f562e6856616c69646174696f6e44617461486173684d69736d61746368001104c45468652076616c69646174696f6e2064617461206861736820646f6573206e6f74206d617463682065787065637465642e34496e7465726e616c4572726f720012040501496e7465726e616c206572726f72206f6e6c792072657475726e6564207768656e20636f6d70696c6564207769746820646562756720617373657274696f6e732e80496e636f7272656374446f776e776172644d65737361676548616e646c696e67001304d854686520646f776e77617264206d657373616765207175657565206973206e6f742070726f63657373656420636f72726563746c792e54496e76616c69645570776172644d657373616765730014041d014174206c65617374206f6e6520757077617264206d6573736167652073656e7420646f6573206e6f7420706173732074686520616363657074616e63652063726974657269612e6048726d7057617465726d61726b4d697368616e646c696e6700150411015468652063616e646964617465206469646e277420666f6c6c6f77207468652072756c6573206f662048524d502077617465726d61726b20616476616e63656d656e742e4c496e76616c69644f7574626f756e6448726d70001604d45468652048524d50206d657373616765732073656e74206279207468652063616e646964617465206973206e6f742076616c69642e64496e76616c696456616c69646174696f6e436f646548617368001704dc5468652076616c69646174696f6e20636f64652068617368206f66207468652063616e646964617465206973206e6f742076616c69642e4050617261486561644d69736d6174636800180899015468652060706172615f6865616460206861736820696e207468652063616e6469646174652064657363726970746f7220646f65736e2774206d61746368207468652068617368206f66207468652061637475616c2070617261206865616420696e2074686530636f6d6d69746d656e74732e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a0909090508106c706f6c6b61646f745f72756e74696d655f70617261636861696e733870617261735f696e686572656e741870616c6c6574144572726f7204045400010c64546f6f4d616e79496e636c7573696f6e496e686572656e7473000004cc496e636c7573696f6e20696e686572656e742063616c6c6564206d6f7265207468616e206f6e63652070657220626c6f636b2e4c496e76616c6964506172656e7448656164657200010855015468652068617368206f6620746865207375626d697474656420706172656e742068656164657220646f65736e277420636f72726573706f6e6420746f2074686520736176656420626c6f636b2068617368206f662c74686520706172656e742e6443616e646964617465436f6e636c75646564496e76616c6964000204b844697370757465642063616e64696461746520746861742077617320636f6e636c7564656420696e76616c69642e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a0909090908000002f107000d080c6c706f6c6b61646f745f72756e74696d655f70617261636861696e73247363686564756c65725050617261746872656164436c61696d517565756500000801147175657565110801545665633c517565756564506172617468726561643e0001406e6578745f636f72655f6f666673657410010c7533320000110800000215080015080c6c706f6c6b61646f745f72756e74696d655f70617261636861696e73247363686564756c657240517565756564506172617468726561640000080114636c61696d1908013c50617261746872656164456e74727900012c636f72655f6f666673657410010c753332000019080c4c706f6c6b61646f745f7072696d6974697665730876313c50617261746872656164456e7472790000080114636c61696d1d08013c50617261746872656164436c61696d00011c7265747269657310010c75333200001d080c4c706f6c6b61646f745f7072696d6974697665730876313c50617261746872656164436c61696d00000800510101084964000055010128436f6c6c61746f72496400002108000002250800250804184f7074696f6e0404540129080108104e6f6e6500000010536f6d6504002908000001000029080c4c706f6c6b61646f745f7072696d69746976657308763130436f72654f63637570696564000108285061726174687265616404001908013c50617261746872656164456e7472790000002450617261636861696e000100002d08000002510100310800000235080035080c6c706f6c6b61646f745f72756e74696d655f70617261636861696e73247363686564756c657238436f726541737369676e6d656e740000100110636f72656d010124436f7265496e64657800011c706172615f6964510101185061726149640001106b696e643908013841737369676e6d656e744b696e6400012467726f75705f6964787101012847726f7570496e646578000039080c6c706f6c6b61646f745f72756e74696d655f70617261636861696e73247363686564756c65723841737369676e6d656e744b696e640001082450617261636861696e0000002850617261746872656164080055010128436f6c6c61746f724964000010010c753332000100003d080c6c706f6c6b61646f745f72756e74696d655f70617261636861696e7314706172617334506172614c6966656379636c6500011c284f6e626f617264696e6700000028506172617468726561640001002450617261636861696e0002004c557067726164696e675061726174687265616400030050446f776e67726164696e6750617261636861696e000400544f6666626f617264696e6750617261746872656164000500504f6666626f617264696e6750617261636861696e000600004108000004085101100045080c6c706f6c6b61646f745f72756e74696d655f70617261636861696e73147061726173405061726150617374436f64654d65746104044e011000080134757067726164655f74696d6573490801605665633c5265706c6163656d656e7454696d65733c4e3e3e00012c6c6173745f7072756e6564790201244f7074696f6e3c4e3e000049080000024d08004d080c6c706f6c6b61646f745f72756e74696d655f70617261636861696e73147061726173405265706c6163656d656e7454696d657304044e01100008012c65787065637465645f61741001044e0001306163746976617465645f61741001044e0000510800000241080055080c4c706f6c6b61646f745f7072696d6974697665730876313855706772616465476f41686561640001081441626f72740000001c476f41686561640001000059080c4c706f6c6b61646f745f7072696d69746976657308763148557067726164655265737472696374696f6e0001041c50726573656e74000000005d080c6c706f6c6b61646f745f72756e74696d655f70617261636861696e731470617261733c5061726147656e657369734172677300000c013067656e657369735f6865616469010120486561644461746100013c76616c69646174696f6e5f636f64652505013856616c69646174696f6e436f646500012470617261636861696ee80110626f6f6c00006108106c706f6c6b61646f745f72756e74696d655f70617261636861696e731470617261731870616c6c6574144572726f72040454000114344e6f74526567697374657265640000049450617261206973206e6f74207265676973746572656420696e206f75722073797374656d2e3443616e6e6f744f6e626f6172640001041501506172612063616e6e6f74206265206f6e626f6172646564206265636175736520697420697320616c726561647920747261636b6564206279206f75722073797374656d2e3843616e6e6f744f6666626f6172640002049c506172612063616e6e6f74206265206f6666626f617264656420617420746869732074696d652e3443616e6e6f74557067726164650003049c506172612063616e6e6f7420626520757067726164656420746f20612070617261636861696e2e3c43616e6e6f74446f776e6772616465000404a8506172612063616e6e6f7420626520646f776e67726164656420746f206120706172617468726561642e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909650800000269080069080c6c706f6c6b61646f745f72756e74696d655f70617261636861696e732c696e697469616c697a657254427566666572656453657373696f6e4368616e676500000c012876616c696461746f7273f50701405665633c56616c696461746f7249643e000118717565756564f50701405665633c56616c696461746f7249643e00013473657373696f6e5f696e64657810013053657373696f6e496e64657800006d0800000271080071080860706f6c6b61646f745f636f72655f7072696d69746976657358496e626f756e64446f776e776172644d657373616765042c426c6f636b4e756d62657201100008011c73656e745f617410012c426c6f636b4e756d62657200010c6d736728013c446f776e776172644d6573736167650000750800000408510128007908106c706f6c6b61646f745f72756e74696d655f70617261636861696e730c756d701870616c6c6574144572726f720404540001084c556e6b6e6f776e4d657373616765496e6465780000048c546865206d65737361676520696e64657820676976656e20697320756e6b6e6f776e2e3c5765696768744f7665724c696d6974000104310154686520616d6f756e74206f662077656967687420676976656e20697320706f737369626c79206e6f7420656e6f75676820666f7220657865637574696e6720746865206d6573736167652e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a0909097d080c6c706f6c6b61646f745f72756e74696d655f70617261636861696e731068726d705848726d704f70656e4368616e6e656c526571756573740000180124636f6e6669726d6564e80110626f6f6c0001105f61676510013053657373696f6e496e64657800013873656e6465725f6465706f73697418011c42616c616e63650001406d61785f6d6573736167655f73697a6510010c7533320001306d61785f636170616369747910010c7533320001386d61785f746f74616c5f73697a6510010c7533320000810800000289010085080c6c706f6c6b61646f745f72756e74696d655f70617261636861696e731068726d702c48726d704368616e6e656c00002001306d61785f636170616369747910010c7533320001386d61785f746f74616c5f73697a6510010c7533320001406d61785f6d6573736167655f73697a6510010c7533320001246d73675f636f756e7410010c753332000128746f74616c5f73697a6510010c7533320001206d71635f68656164890801304f7074696f6e3c486173683e00013873656e6465725f6465706f73697418011c42616c616e6365000144726563697069656e745f6465706f73697418011c42616c616e63650000890804184f7074696f6e04045401240108104e6f6e6500000010536f6d6504002400000100008d0800000291080091080860706f6c6b61646f745f636f72655f7072696d69746976657348496e626f756e6448726d704d657373616765042c426c6f636b4e756d62657201100008011c73656e745f617410012c426c6f636b4e756d6265720001106461746128015073705f7374643a3a7665633a3a5665633c75383e00009508000002990800990800000408102d08009d08106c706f6c6b61646f745f72756e74696d655f70617261636861696e731068726d701870616c6c6574144572726f72040454000148544f70656e48726d704368616e6e656c546f53656c66000004c45468652073656e64657220747269656420746f206f70656e2061206368616e6e656c20746f207468656d73656c7665732e7c4f70656e48726d704368616e6e656c496e76616c6964526563697069656e740001048854686520726563697069656e74206973206e6f7420612076616c696420706172612e6c4f70656e48726d704368616e6e656c5a65726f43617061636974790002047c54686520726571756573746564206361706163697479206973207a65726f2e8c4f70656e48726d704368616e6e656c4361706163697479457863656564734c696d6974000304c05468652072657175657374656420636170616369747920657863656564732074686520676c6f62616c206c696d69742e784f70656e48726d704368616e6e656c5a65726f4d65737361676553697a65000404a054686520726571756573746564206d6178696d756d206d6573736167652073697a6520697320302e984f70656e48726d704368616e6e656c4d65737361676553697a65457863656564734c696d69740005042901546865206f70656e20726571756573742072657175657374656420746865206d6573736167652073697a65207468617420657863656564732074686520676c6f62616c206c696d69742e704f70656e48726d704368616e6e656c416c726561647945786973747300060468546865206368616e6e656c20616c7265616479206578697374737c4f70656e48726d704368616e6e656c416c7265616479526571756573746564000704d0546865726520697320616c72656164792061207265717565737420746f206f70656e207468652073616d65206368616e6e656c2e704f70656e48726d704368616e6e656c4c696d697445786365656465640008041d015468652073656e64657220616c72656164792068617320746865206d6178696d756d206e756d626572206f6620616c6c6f776564206f7574626f756e64206368616e6e656c732e7041636365707448726d704368616e6e656c446f65736e744578697374000904e0546865206368616e6e656c2066726f6d207468652073656e64657220746f20746865206f726967696e20646f65736e27742065786973742e8441636365707448726d704368616e6e656c416c7265616479436f6e6669726d6564000a0484546865206368616e6e656c20697320616c726561647920636f6e6669726d65642e7841636365707448726d704368616e6e656c4c696d69744578636565646564000b04250154686520726563697069656e7420616c72656164792068617320746865206d6178696d756d206e756d626572206f6620616c6c6f77656420696e626f756e64206368616e6e656c732e70436c6f736548726d704368616e6e656c556e617574686f72697a6564000c045501546865206f726967696e20747269657320746f20636c6f73652061206368616e6e656c207768657265206974206973206e656974686572207468652073656e646572206e6f722074686520726563697069656e742e6c436c6f736548726d704368616e6e656c446f65736e744578697374000d049c546865206368616e6e656c20746f20626520636c6f73656420646f65736e27742065786973742e7c436c6f736548726d704368616e6e656c416c7265616479556e646572776179000e04bc546865206368616e6e656c20636c6f7365207265717565737420697320616c7265616479207265717565737465642e8443616e63656c48726d704f70656e4368616e6e656c556e617574686f72697a6564000f045d0143616e63656c696e6720697320726571756573746564206279206e656974686572207468652073656e646572206e6f7220726563697069656e74206f6620746865206f70656e206368616e6e656c20726571756573742e684f70656e48726d704368616e6e656c446f65736e7445786973740010047c546865206f70656e207265717565737420646f65736e27742065786973742e7c4f70656e48726d704368616e6e656c416c7265616479436f6e6669726d65640011042d0143616e6e6f742063616e63656c20616e2048524d50206f70656e206368616e6e656c2072657175657374206265636175736520697420697320616c726561647920636f6e6669726d65642e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909a1080000028d0200a5080c4c706f6c6b61646f745f7072696d6974697665730876312c53657373696f6e496e666f000028012876616c696461746f7273f50701405665633c56616c696461746f7249643e000138646973636f766572795f6b657973a90801645665633c417574686f72697479446973636f7665727949643e00013c61737369676e6d656e745f6b657973a10801445665633c41737369676e6d656e7449643e00014076616c696461746f725f67726f757073090801605665633c5665633c56616c696461746f72496e6465783e3e00011c6e5f636f72657310010c7533320001687a65726f74685f64656c61795f7472616e6368655f776964746810010c75333200016072656c61795f7672665f6d6f64756c6f5f73616d706c657310010c7533320001406e5f64656c61795f7472616e6368657310010c7533320001346e6f5f73686f775f736c6f747310010c7533320001406e65656465645f617070726f76616c7310010c7533320000a908000002910200ad080c5c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e3c70617261735f7265676973747261722050617261496e666f081c4163636f756e7401001c42616c616e63650118000c011c6d616e6167657200011c4163636f756e7400011c6465706f73697418011c42616c616e63650001186c6f636b6564e80110626f6f6c0000b108105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e3c70617261735f7265676973747261721870616c6c6574144572726f72040454000130344e6f745265676973746572656400000464546865204944206973206e6f7420726567697374657265642e44416c7265616479526567697374657265640001047454686520494420697320616c726561647920726567697374657265642e204e6f744f776e65720002049c5468652063616c6c6572206973206e6f7420746865206f776e6572206f6620746869732049642e30436f6465546f6f4c617267650003045c496e76616c6964207061726120636f64652073697a652e404865616444617461546f6f4c6172676500040470496e76616c69642070617261206865616420646174612073697a652e304e6f7450617261636861696e0005046050617261206973206e6f7420612050617261636861696e2e344e6f74506172617468726561640006046450617261206973206e6f74206120506172617468726561642e4043616e6e6f74446572656769737465720007045843616e6e6f74206465726567697374657220706172613c43616e6e6f74446f776e6772616465000804d043616e6e6f74207363686564756c6520646f776e6772616465206f662070617261636861696e20746f20706172617468726561643443616e6e6f7455706772616465000904c843616e6e6f74207363686564756c652075706772616465206f66207061726174687265616420746f2070617261636861696e28506172614c6f636b6564000a04790150617261206973206c6f636b65642066726f6d206d616e6970756c6174696f6e20627920746865206d616e616765722e204d757374207573652070617261636861696e206f722072656c617920636861696e20676f7665726e616e63652e2c4e6f745265736572766564000b04d054686520494420676976656e20666f7220726567697374726174696f6e20686173206e6f74206265656e2072657365727665642e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909b508000002b90800b90804184f7074696f6e04045401f80108104e6f6e6500000010536f6d650400f80000010000bd08105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e14736c6f74731870616c6c6574144572726f7204045400010844506172614e6f744f6e626f617264696e670000048c5468652070617261636861696e204944206973206e6f74206f6e626f617264696e672e284c656173654572726f720001048854686572652077617320616e206572726f72207769746820746865206c656173652e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909c1080000040800510100c50800000324000000c90800c90804184f7074696f6e04045401cd080108104e6f6e6500000010536f6d650400cd080000010000cd080000040c0051011800d108105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e2061756374696f6e731870616c6c6574144572726f7204045400011c4441756374696f6e496e50726f677265737300000490546869732061756374696f6e20697320616c726561647920696e2070726f67726573732e444c65617365506572696f64496e5061737400010480546865206c6561736520706572696f6420697320696e2074686520706173742e44506172614e6f74526567697374657265640002045850617261206973206e6f742072656769737465726564444e6f7443757272656e7441756374696f6e000304584e6f7420612063757272656e742061756374696f6e2e284e6f7441756374696f6e0004043c4e6f7420616e2061756374696f6e2e3041756374696f6e456e6465640005046841756374696f6e2068617320616c726561647920656e6465642e40416c72656164794c65617365644f7574000604d8546865207061726120697320616c7265616479206c6561736564206f757420666f722070617274206f6620746869732072616e67652e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909d5080c5c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e2463726f77646c6f616e2046756e64496e666f10244163636f756e74496401001c42616c616e636501182c426c6f636b4e756d62657201102c4c65617365506572696f640110002801246465706f7369746f720001244163636f756e74496400012076657269666965727905014c4f7074696f6e3c4d756c74695369676e65723e00011c6465706f73697418011c42616c616e636500011872616973656418011c42616c616e636500010c656e6410012c426c6f636b4e756d62657200010c63617018011c42616c616e63650001446c6173745f636f6e747269627574696f6ed90801744c617374436f6e747269627574696f6e3c426c6f636b4e756d6265723e00013066697273745f706572696f6410012c4c65617365506572696f6400012c6c6173745f706572696f6410012c4c65617365506572696f64000128747269655f696e64657810012454726965496e6465780000d9080c5c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e2463726f77646c6f616e404c617374436f6e747269627574696f6e042c426c6f636b4e756d6265720110010c144e6576657200000024507265456e64696e67040010010c75333200010018456e64696e67040010012c426c6f636b4e756d62657200020000dd08105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e2463726f77646c6f616e1870616c6c6574144572726f7204045400015c444669727374506572696f64496e50617374000004f45468652063757272656e74206c6561736520706572696f64206973206d6f7265207468616e20746865206669727374206c6561736520706572696f642e644669727374506572696f64546f6f466172496e4675747572650001041101546865206669727374206c6561736520706572696f64206e6565647320746f206174206c65617374206265206c657373207468616e203320606d61785f76616c7565602e6c4c617374506572696f644265666f72654669727374506572696f64000204e84c617374206c6561736520706572696f64206d7573742062652067726561746572207468616e206669727374206c6561736520706572696f642e604c617374506572696f64546f6f466172496e4675747572650003042d01546865206c617374206c6561736520706572696f642063616e6e6f74206265206d6f7265207468616e203320706572696f64732061667465722074686520666972737420706572696f642e3c43616e6e6f74456e64496e5061737400040445015468652063616d706169676e20656e6473206265666f7265207468652063757272656e7420626c6f636b206e756d6265722e2054686520656e64206d75737420626520696e20746865206675747572652e44456e64546f6f466172496e467574757265000504c054686520656e64206461746520666f7220746869732063726f77646c6f616e206973206e6f742073656e7369626c652e204f766572666c6f770006045854686572652077617320616e206f766572666c6f772e50436f6e747269627574696f6e546f6f536d616c6c000704e854686520636f6e747269627574696f6e207761732062656c6f7720746865206d696e696d756d2c20604d696e436f6e747269627574696f6e602e34496e76616c69645061726149640008044c496e76616c69642066756e6420696e6465782e2c436170457863656564656400090490436f6e747269627574696f6e7320657863656564206d6178696d756d20616d6f756e742e58436f6e747269627574696f6e506572696f644f766572000a04a854686520636f6e747269627574696f6e20706572696f642068617320616c726561647920656e6465642e34496e76616c69644f726967696e000b048c546865206f726967696e206f6620746869732063616c6c20697320696e76616c69642e304e6f7450617261636861696e000c04c8546869732063726f77646c6f616e20646f6573206e6f7420636f72726573706f6e6420746f20612070617261636861696e2e2c4c65617365416374697665000d041501546869732070617261636861696e206c65617365206973207374696c6c2061637469766520616e64207265746972656d656e742063616e6e6f742079657420626567696e2e404269644f724c65617365416374697665000e043101546869732070617261636861696e277320626964206f72206c65617365206973207374696c6c2061637469766520616e642077697468647261772063616e6e6f742079657420626567696e2e3046756e644e6f74456e646564000f04805468652063726f77646c6f616e20686173206e6f742079657420656e6465642e3c4e6f436f6e747269627574696f6e73001004d0546865726520617265206e6f20636f6e747269627574696f6e732073746f72656420696e20746869732063726f77646c6f616e2e484e6f745265616479546f446973736f6c766500110475015468652063726f77646c6f616e206973206e6f7420726561647920746f20646973736f6c76652e20506f74656e7469616c6c79207374696c6c20686173206120736c6f74206f7220696e207265746972656d656e7420706572696f642e40496e76616c69645369676e617475726500120448496e76616c6964207369676e61747572652e304d656d6f546f6f4c617267650013047c5468652070726f7669646564206d656d6f20697320746f6f206c617267652e44416c7265616479496e4e65775261697365001404845468652066756e6420697320616c726561647920696e20604e65775261697365604856726644656c6179496e50726f6772657373001504b44e6f20636f6e747269627574696f6e7320616c6c6f77656420647572696e6720746865205652462064656c6179344e6f4c65617365506572696f640016042d0141206c6561736520706572696f6420686173206e6f742073746172746564207965742c2064756520746f20616e206f666673657420696e20746865207374617274696e6720626c6f636b2e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909e108102873705f72756e74696d651c67656e657269634c756e636865636b65645f65787472696e73696348556e636865636b656445787472696e736963101c41646472657373014d021043616c6c010902245369676e6174757265018d0514457874726101e50800040028000000e50800000420e908ed08f108f508fd0801090509090900e90810306672616d655f73797374656d28657874656e73696f6e7348636865636b5f737065635f76657273696f6e40436865636b5370656356657273696f6e04045400000000ed0810306672616d655f73797374656d28657874656e73696f6e7340636865636b5f74785f76657273696f6e38436865636b547856657273696f6e04045400000000f10810306672616d655f73797374656d28657874656e73696f6e7334636865636b5f67656e6573697330436865636b47656e6573697304045400000000f50810306672616d655f73797374656d28657874656e73696f6e733c636865636b5f6d6f7274616c69747938436865636b4d6f7274616c69747904045400000400f908010c4572610000f908102873705f72756e74696d651c67656e657269630c6572610c4572610001010420496d6d6f7274616c0000001c4d6f7274616c31040008000001001c4d6f7274616c32040008000002001c4d6f7274616c33040008000003001c4d6f7274616c34040008000004001c4d6f7274616c35040008000005001c4d6f7274616c36040008000006001c4d6f7274616c37040008000007001c4d6f7274616c38040008000008001c4d6f7274616c3904000800000900204d6f7274616c313004000800000a00204d6f7274616c313104000800000b00204d6f7274616c313204000800000c00204d6f7274616c313304000800000d00204d6f7274616c313404000800000e00204d6f7274616c313504000800000f00204d6f7274616c313604000800001000204d6f7274616c313704000800001100204d6f7274616c313804000800001200204d6f7274616c313904000800001300204d6f7274616c323004000800001400204d6f7274616c323104000800001500204d6f7274616c323204000800001600204d6f7274616c323304000800001700204d6f7274616c323404000800001800204d6f7274616c323504000800001900204d6f7274616c323604000800001a00204d6f7274616c323704000800001b00204d6f7274616c323804000800001c00204d6f7274616c323904000800001d00204d6f7274616c333004000800001e00204d6f7274616c333104000800001f00204d6f7274616c333204000800002000204d6f7274616c333304000800002100204d6f7274616c333404000800002200204d6f7274616c333504000800002300204d6f7274616c333604000800002400204d6f7274616c333704000800002500204d6f7274616c333804000800002600204d6f7274616c333904000800002700204d6f7274616c343004000800002800204d6f7274616c343104000800002900204d6f7274616c343204000800002a00204d6f7274616c343304000800002b00204d6f7274616c343404000800002c00204d6f7274616c343504000800002d00204d6f7274616c343604000800002e00204d6f7274616c343704000800002f00204d6f7274616c343804000800003000204d6f7274616c343904000800003100204d6f7274616c353004000800003200204d6f7274616c353104000800003300204d6f7274616c353204000800003400204d6f7274616c353304000800003500204d6f7274616c353404000800003600204d6f7274616c353504000800003700204d6f7274616c353604000800003800204d6f7274616c353704000800003900204d6f7274616c353804000800003a00204d6f7274616c353904000800003b00204d6f7274616c363004000800003c00204d6f7274616c363104000800003d00204d6f7274616c363204000800003e00204d6f7274616c363304000800003f00204d6f7274616c363404000800004000204d6f7274616c363504000800004100204d6f7274616c363604000800004200204d6f7274616c363704000800004300204d6f7274616c363804000800004400204d6f7274616c363904000800004500204d6f7274616c373004000800004600204d6f7274616c373104000800004700204d6f7274616c373204000800004800204d6f7274616c373304000800004900204d6f7274616c373404000800004a00204d6f7274616c373504000800004b00204d6f7274616c373604000800004c00204d6f7274616c373704000800004d00204d6f7274616c373804000800004e00204d6f7274616c373904000800004f00204d6f7274616c383004000800005000204d6f7274616c383104000800005100204d6f7274616c383204000800005200204d6f7274616c383304000800005300204d6f7274616c383404000800005400204d6f7274616c383504000800005500204d6f7274616c383604000800005600204d6f7274616c383704000800005700204d6f7274616c383804000800005800204d6f7274616c383904000800005900204d6f7274616c393004000800005a00204d6f7274616c393104000800005b00204d6f7274616c393204000800005c00204d6f7274616c393304000800005d00204d6f7274616c393404000800005e00204d6f7274616c393504000800005f00204d6f7274616c393604000800006000204d6f7274616c393704000800006100204d6f7274616c393804000800006200204d6f7274616c393904000800006300244d6f7274616c31303004000800006400244d6f7274616c31303104000800006500244d6f7274616c31303204000800006600244d6f7274616c31303304000800006700244d6f7274616c31303404000800006800244d6f7274616c31303504000800006900244d6f7274616c31303604000800006a00244d6f7274616c31303704000800006b00244d6f7274616c31303804000800006c00244d6f7274616c31303904000800006d00244d6f7274616c31313004000800006e00244d6f7274616c31313104000800006f00244d6f7274616c31313204000800007000244d6f7274616c31313304000800007100244d6f7274616c31313404000800007200244d6f7274616c31313504000800007300244d6f7274616c31313604000800007400244d6f7274616c31313704000800007500244d6f7274616c31313804000800007600244d6f7274616c31313904000800007700244d6f7274616c31323004000800007800244d6f7274616c31323104000800007900244d6f7274616c31323204000800007a00244d6f7274616c31323304000800007b00244d6f7274616c31323404000800007c00244d6f7274616c31323504000800007d00244d6f7274616c31323604000800007e00244d6f7274616c31323704000800007f00244d6f7274616c31323804000800008000244d6f7274616c31323904000800008100244d6f7274616c31333004000800008200244d6f7274616c31333104000800008300244d6f7274616c31333204000800008400244d6f7274616c31333304000800008500244d6f7274616c31333404000800008600244d6f7274616c31333504000800008700244d6f7274616c31333604000800008800244d6f7274616c31333704000800008900244d6f7274616c31333804000800008a00244d6f7274616c31333904000800008b00244d6f7274616c31343004000800008c00244d6f7274616c31343104000800008d00244d6f7274616c31343204000800008e00244d6f7274616c31343304000800008f00244d6f7274616c31343404000800009000244d6f7274616c31343504000800009100244d6f7274616c31343604000800009200244d6f7274616c31343704000800009300244d6f7274616c31343804000800009400244d6f7274616c31343904000800009500244d6f7274616c31353004000800009600244d6f7274616c31353104000800009700244d6f7274616c31353204000800009800244d6f7274616c31353304000800009900244d6f7274616c31353404000800009a00244d6f7274616c31353504000800009b00244d6f7274616c31353604000800009c00244d6f7274616c31353704000800009d00244d6f7274616c31353804000800009e00244d6f7274616c31353904000800009f00244d6f7274616c3136300400080000a000244d6f7274616c3136310400080000a100244d6f7274616c3136320400080000a200244d6f7274616c3136330400080000a300244d6f7274616c3136340400080000a400244d6f7274616c3136350400080000a500244d6f7274616c3136360400080000a600244d6f7274616c3136370400080000a700244d6f7274616c3136380400080000a800244d6f7274616c3136390400080000a900244d6f7274616c3137300400080000aa00244d6f7274616c3137310400080000ab00244d6f7274616c3137320400080000ac00244d6f7274616c3137330400080000ad00244d6f7274616c3137340400080000ae00244d6f7274616c3137350400080000af00244d6f7274616c3137360400080000b000244d6f7274616c3137370400080000b100244d6f7274616c3137380400080000b200244d6f7274616c3137390400080000b300244d6f7274616c3138300400080000b400244d6f7274616c3138310400080000b500244d6f7274616c3138320400080000b600244d6f7274616c3138330400080000b700244d6f7274616c3138340400080000b800244d6f7274616c3138350400080000b900244d6f7274616c3138360400080000ba00244d6f7274616c3138370400080000bb00244d6f7274616c3138380400080000bc00244d6f7274616c3138390400080000bd00244d6f7274616c3139300400080000be00244d6f7274616c3139310400080000bf00244d6f7274616c3139320400080000c000244d6f7274616c3139330400080000c100244d6f7274616c3139340400080000c200244d6f7274616c3139350400080000c300244d6f7274616c3139360400080000c400244d6f7274616c3139370400080000c500244d6f7274616c3139380400080000c600244d6f7274616c3139390400080000c700244d6f7274616c3230300400080000c800244d6f7274616c3230310400080000c900244d6f7274616c3230320400080000ca00244d6f7274616c3230330400080000cb00244d6f7274616c3230340400080000cc00244d6f7274616c3230350400080000cd00244d6f7274616c3230360400080000ce00244d6f7274616c3230370400080000cf00244d6f7274616c3230380400080000d000244d6f7274616c3230390400080000d100244d6f7274616c3231300400080000d200244d6f7274616c3231310400080000d300244d6f7274616c3231320400080000d400244d6f7274616c3231330400080000d500244d6f7274616c3231340400080000d600244d6f7274616c3231350400080000d700244d6f7274616c3231360400080000d800244d6f7274616c3231370400080000d900244d6f7274616c3231380400080000da00244d6f7274616c3231390400080000db00244d6f7274616c3232300400080000dc00244d6f7274616c3232310400080000dd00244d6f7274616c3232320400080000de00244d6f7274616c3232330400080000df00244d6f7274616c3232340400080000e000244d6f7274616c3232350400080000e100244d6f7274616c3232360400080000e200244d6f7274616c3232370400080000e300244d6f7274616c3232380400080000e400244d6f7274616c3232390400080000e500244d6f7274616c3233300400080000e600244d6f7274616c3233310400080000e700244d6f7274616c3233320400080000e800244d6f7274616c3233330400080000e900244d6f7274616c3233340400080000ea00244d6f7274616c3233350400080000eb00244d6f7274616c3233360400080000ec00244d6f7274616c3233370400080000ed00244d6f7274616c3233380400080000ee00244d6f7274616c3233390400080000ef00244d6f7274616c3234300400080000f000244d6f7274616c3234310400080000f100244d6f7274616c3234320400080000f200244d6f7274616c3234330400080000f300244d6f7274616c3234340400080000f400244d6f7274616c3234350400080000f500244d6f7274616c3234360400080000f600244d6f7274616c3234370400080000f700244d6f7274616c3234380400080000f800244d6f7274616c3234390400080000f900244d6f7274616c3235300400080000fa00244d6f7274616c3235310400080000fb00244d6f7274616c3235320400080000fc00244d6f7274616c3235330400080000fd00244d6f7274616c3235340400080000fe00244d6f7274616c3235350400080000ff0000fd0810306672616d655f73797374656d28657874656e73696f6e732c636865636b5f6e6f6e636528436865636b4e6f6e636504045400000400ad010120543a3a496e6465780000010910306672616d655f73797374656d28657874656e73696f6e7330636865636b5f7765696768742c436865636b576569676874040454000000000509086870616c6c65745f7472616e73616374696f6e5f7061796d656e74604368617267655472616e73616374696f6e5061796d656e7404045400000400cc013042616c616e63654f663c543e000009090c5c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e18636c61696d734850726576616c696461746541747465737473040454000000000d090840706f6c6b61646f745f72756e74696d651c52756e74696d6500000000b81853797374656d011853797374656d401c4163636f756e7401010402000c4101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e74000010040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e2c426c6f636b57656967687401001c600000000000000000000000000000000000000000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e000010040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b486173680101040510248000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101040510280400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d6265720100101000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801002480000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e1844696765737401002c040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e7473010048040010a0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e005901204e4f54453a20546869732073746f72616765206974656d206973206578706c696369746c7920756e626f756e6465642073696e6365206974206973206e6576657220696e74656e64656420746f2062652072656164642066726f6d2077697468696e207468652072756e74696d652e284576656e74436f756e74010010100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f706963730101040224a5010400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e004d01205468652076616c756520686173207468652074797065206028543a3a426c6f636b4e756d6265722c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000a90104000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e740100e80400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e740100e80400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e506861736500009d01040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e01b50101541830426c6f636b57656967687473c901850100f2052a0100000000204aa9d1010000405973070000000001c0766c8f58010000010098f73e5d010000010000000000000000405973070000000001c0febef9cc0100000100204aa9d1010000010088526a74000000405973070000000000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e677468d9013000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e74101060090000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e204462576569676874e1014040787d010000000000e1f505000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6ee501490320706f6c6b61646f743c7061726974792d706f6c6b61646f7400000000962300000000000038df6acb689907609b0300000037e397fc7c91f5e40100000040fe3ad401f8959a05000000d2bc9897eed08f1503000000f78b278be53f454c02000000af2c0297a23e6d3d0100000049eaaf1b548a0cb00100000091d5df18b0d2cf5801000000ed99c5acb25eedf503000000cbca25e39f14238702000000687ad44ad37f03c201000000ab3c0572291feb8b01000000bc9d89904f5b923f0100000037c8bb1350a9a2a801000000080000000484204765742074686520636861696e27732063757272656e742076657273696f6e2e2853533538507265666978250108000014a8205468652064657369676e61746564205353383520707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e01f90100245363686564756c657201245363686564756c65720c184167656e64610101040510fd010400044d01204974656d7320746f2062652065786563757465642c20696e64657865642062792074686520626c6f636b206e756d626572207468617420746865792073686f756c64206265206578656375746564206f6e2e184c6f6f6b75700001040528740400040101204c6f6f6b75702066726f6d206964656e7469747920746f2074686520626c6f636b206e756d62657220616e6420696e646578206f6620746865207461736b2e3853746f7261676556657273696f6e0100ad0504000c7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e0098204e6577206e6574776f726b732073746172742077697468206c6173742076657273696f6e2e010d02017008344d6178696d756d576569676874202000806e877401000008450120546865206d6178696d756d207765696768742074686174206d6179206265207363686564756c65642070657220626c6f636b20666f7220616e7920646973706174636861626c6573206f66206c657373a4207072696f72697479207468616e20607363686564756c653a3a484152445f444541444c494e45602e504d61785363686564756c6564506572426c6f636b101032000000081d0120546865206d6178696d756d206e756d626572206f66207363686564756c65642063616c6c7320696e2074686520717565756520666f7220612073696e676c6520626c6f636b2edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e01b105011042616265011042616265402845706f6368496e64657801002020000000000000000004542043757272656e742065706f636820696e6465782e2c417574686f7269746965730100b5050400046c2043757272656e742065706f636820617574686f7269746965732e2c47656e65736973536c6f740100290220000000000000000008f82054686520736c6f74206174207768696368207468652066697273742065706f63682061637475616c6c7920737461727465642e205468697320697320309020756e74696c2074686520666972737420626c6f636b206f662074686520636861696e2e2c43757272656e74536c6f740100290220000000000000000004542043757272656e7420736c6f74206e756d6265722e2852616e646f6d6e65737301000480000000000000000000000000000000000000000000000000000000000000000028b8205468652065706f63682072616e646f6d6e65737320666f7220746865202a63757272656e742a2065706f63682e002c20232053656375726974790005012054686973204d555354204e4f54206265207573656420666f722067616d626c696e672c2061732069742063616e20626520696e666c75656e6365642062792061f8206d616c6963696f75732076616c696461746f7220696e207468652073686f7274207465726d2e204974204d4159206265207573656420696e206d616e7915012063727970746f677261706869632070726f746f636f6c732c20686f77657665722c20736f206c6f6e67206173206f6e652072656d656d6265727320746861742074686973150120286c696b652065766572797468696e6720656c7365206f6e2d636861696e29206974206973207075626c69632e20466f72206578616d706c652c2069742063616e206265050120757365642077686572652061206e756d626572206973206e656564656420746861742063616e6e6f742068617665206265656e2063686f73656e20627920616e0d01206164766572736172792c20666f7220707572706f7365732073756368206173207075626c69632d636f696e207a65726f2d6b6e6f776c656467652070726f6f66732e6050656e64696e6745706f6368436f6e6669674368616e67650000310204000461012050656e64696e672065706f636820636f6e66696775726174696f6e206368616e676520746861742077696c6c206265206170706c696564207768656e20746865206e6578742065706f636820697320656e61637465642e384e65787452616e646f6d6e657373010004800000000000000000000000000000000000000000000000000000000000000000045c204e6578742065706f63682072616e646f6d6e6573732e3c4e657874417574686f7269746965730100b50504000460204e6578742065706f636820617574686f7269746965732e305365676d656e74496e6465780100101000000000247c2052616e646f6d6e65737320756e64657220636f6e737472756374696f6e2e00f4205765206d616b6520612074726164656f6666206265747765656e2073746f7261676520616363657373657320616e64206c697374206c656e6774682e01012057652073746f72652074686520756e6465722d636f6e737472756374696f6e2072616e646f6d6e65737320696e207365676d656e7473206f6620757020746f942060554e4445525f434f4e535452554354494f4e5f5345474d454e545f4c454e475448602e00ec204f6e63652061207365676d656e7420726561636865732074686973206c656e6774682c20776520626567696e20746865206e657874206f6e652e090120576520726573657420616c6c207365676d656e747320616e642072657475726e20746f206030602061742074686520626567696e6e696e67206f662065766572791c2065706f63682e44556e646572436f6e737472756374696f6e0101040510c10504000415012054574f582d4e4f54453a20605365676d656e74496e6465786020697320616e20696e6372656173696e6720696e74656765722c20736f2074686973206973206f6b61792e2c496e697469616c697a65640000c90504000801012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e292077686963682069732060536f6d65601d01206966207065722d626c6f636b20696e697469616c697a6174696f6e2068617320616c7265616479206265656e2063616c6c656420666f722063757272656e7420626c6f636b2e4c417574686f7256726652616e646f6d6e6573730100c90504001015012054686973206669656c642073686f756c6420616c7761797320626520706f70756c6174656420647572696e6720626c6f636b2070726f63657373696e6720756e6c6573731901207365636f6e6461727920706c61696e20736c6f74732061726520656e61626c65642028776869636820646f6e277420636f6e7461696e206120565246206f7574707574292e0051012049742069732073657420696e20606f6e5f696e697469616c697a65602c206265666f72652069742077696c6c20636f6e7461696e207468652076616c75652066726f6d20746865206c61737420626c6f636b2e2845706f63685374617274010074200000000000000000145d012054686520626c6f636b206e756d62657273207768656e20746865206c61737420616e642063757272656e742065706f6368206861766520737461727465642c20726573706563746976656c7920604e2d316020616e641420604e602e4901204e4f54453a20576520747261636b207468697320697320696e206f7264657220746f20616e6e6f746174652074686520626c6f636b206e756d626572207768656e206120676976656e20706f6f6c206f66590120656e74726f7079207761732066697865642028692e652e20697420776173206b6e6f776e20746f20636861696e206f6273657276657273292e2053696e63652065706f6368732061726520646566696e656420696e590120736c6f74732c207768696368206d617920626520736b69707065642c2074686520626c6f636b206e756d62657273206d6179206e6f74206c696e6520757020776974682074686520736c6f74206e756d626572732e204c6174656e657373010010100000000014d820486f77206c617465207468652063757272656e7420626c6f636b20697320636f6d706172656420746f2069747320706172656e742e001501205468697320656e74727920697320706f70756c617465642061732070617274206f6620626c6f636b20657865637574696f6e20616e6420697320636c65616e65642075701101206f6e20626c6f636b2066696e616c697a6174696f6e2e205175657279696e6720746869732073746f7261676520656e747279206f757473696465206f6620626c6f636bb020657865637574696f6e20636f6e746578742073686f756c6420616c77617973207969656c64207a65726f2e2c45706f6368436f6e6669670000cd0504000861012054686520636f6e66696775726174696f6e20666f72207468652063757272656e742065706f63682e2053686f756c64206e6576657220626520604e6f6e656020617320697420697320696e697469616c697a656420696e242067656e657369732e3c4e65787445706f6368436f6e6669670000cd050400082d012054686520636f6e66696775726174696f6e20666f7220746865206e6578742065706f63682c20604e6f6e65602069662074686520636f6e6669672077696c6c206e6f74206368616e6765e82028796f752063616e2066616c6c6261636b20746f206045706f6368436f6e6669676020696e737465616420696e20746861742063617365292e011502000c3445706f63684475726174696f6e202060090000000000000cec2054686520616d6f756e74206f662074696d652c20696e20736c6f74732c207468617420656163682065706f63682073686f756c64206c6173742e1901204e4f54453a2043757272656e746c79206974206973206e6f7420706f737369626c6520746f206368616e6765207468652065706f6368206475726174696f6e20616674657221012074686520636861696e2068617320737461727465642e20417474656d7074696e6720746f20646f20736f2077696c6c20627269636b20626c6f636b2070726f64756374696f6e2e444578706563746564426c6f636b54696d652020701700000000000014050120546865206578706563746564206176657261676520626c6f636b2074696d6520617420776869636820424142452073686f756c64206265206372656174696e67110120626c6f636b732e2053696e636520424142452069732070726f626162696c6973746963206974206973206e6f74207472697669616c20746f20666967757265206f75740501207768617420746865206578706563746564206176657261676520626c6f636b2074696d652073686f756c64206265206261736564206f6e2074686520736c6f740901206475726174696f6e20616e642074686520736563757269747920706172616d657465722060636020287768657265206031202d20636020726570726573656e7473a0207468652070726f626162696c697479206f66206120736c6f74206265696e6720656d707479292e384d6178417574686f7269746965731010a08601000488204d6178206e756d626572206f6620617574686f72697469657320616c6c6f77656401d105022454696d657374616d70012454696d657374616d70080c4e6f7701002020000000000000000004902043757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e244469645570646174650100e8040004b420446964207468652074696d657374616d7020676574207570646174656420696e207468697320626c6f636b3f013d020004344d696e696d756d506572696f642020b80b000000000000104d0120546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e204265776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a5d0120706572696f6420746861742074686520626c6f636b2070726f64756374696f6e206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c5d012067656e6572616c6c7920776f726b2077697468207468697320746f2064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20652e672e20466f7220417572612c2069742077696c6c206265a020646f75626c65207468697320706572696f64206f6e2064656661756c742073657474696e67732e00031c496e6469636573011c496e646963657304204163636f756e74730001040210d5050400048820546865206c6f6f6b75702066726f6d20696e64657820746f206163636f756e742e0145020184041c4465706f736974184000e8764817000000000000000000000004ac20546865206465706f736974206e656564656420666f7220726573657276696e6720616e20696e6465782e01d905042042616c616e636573012042616c616e6365731434546f74616c49737375616e6365010018400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e1c4163636f756e740101040200140101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c6c205468652062616c616e6365206f6620616e206163636f756e742e004101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b730101040200dd05040008b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e2052657365727665730101040200ed05040004a4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e3853746f7261676556657273696f6e0100f90504000c7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e00a020546869732069732073657420746f2076322e302e3020666f72206e6577206e6574776f726b732e01490201880c484578697374656e7469616c4465706f736974184000e40b5402000000000000000000000004d420546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d61784c6f636b7310103200000008f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e2c4d61785265736572766573101032000000040d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e01fd0505485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c6965720100010640000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e0100050604000000000c485472616e73616374696f6e42797465466565184040420f00000000000000000000000000040d01205468652066656520746f206265207061696420666f72206d616b696e672061207472616e73616374696f6e3b20746865207065722d6279746520706f7274696f6e2e604f7065726174696f6e616c4665654d756c7469706c696572080405545901204120666565206d756c6974706c69657220666f7220604f7065726174696f6e616c602065787472696e7369637320746f20636f6d7075746520227669727475616c207469702220746f20626f6f73742074686569722c20607072696f7269747960004d0120546869732076616c7565206973206d756c7469706c656420627920746865206066696e616c5f6665656020746f206f627461696e206120227669727475616c20746970222074686174206973206c61746572f420616464656420746f20612074697020636f6d706f6e656e7420696e20726567756c617220607072696f72697479602063616c63756c6174696f6e732e4d01204974206d65616e732074686174206120604e6f726d616c60207472616e73616374696f6e2063616e2066726f6e742d72756e20612073696d696c61726c792d73697a656420604f7065726174696f6e616c6041012065787472696e736963202877697468206e6f20746970292c20627920696e636c7564696e672061207469702076616c75652067726561746572207468616e20746865207669727475616c207469702e003c20606060727573742c69676e6f726540202f2f20466f7220604e6f726d616c608c206c6574207072696f72697479203d207072696f726974795f63616c6328746970293b0054202f2f20466f7220604f7065726174696f6e616c601101206c6574207669727475616c5f746970203d2028696e636c7573696f6e5f666565202b2074697029202a204f7065726174696f6e616c4665654d756c7469706c6965723bc4206c6574207072696f72697479203d207072696f726974795f63616c6328746970202b207669727475616c5f746970293b1020606060005101204e6f746520746861742073696e636520776520757365206066696e616c5f6665656020746865206d756c7469706c696572206170706c69657320616c736f20746f2074686520726567756c61722060746970605d012073656e74207769746820746865207472616e73616374696f6e2e20536f2c206e6f74206f6e6c7920646f657320746865207472616e73616374696f6e206765742061207072696f726974792062756d702062617365646101206f6e207468652060696e636c7573696f6e5f666565602c2062757420776520616c736f20616d706c6966792074686520696d70616374206f662074697073206170706c69656420746f20604f7065726174696f6e616c6038207472616e73616374696f6e732e2c576569676874546f46656509065c040000000000000000000000000000000000b4c4040001040d012054686520706f6c796e6f6d69616c2074686174206973206170706c69656420696e206f7264657220746f20646572697665206665652066726f6d207765696768742e002028417574686f72736869700128417574686f72736869700c18556e636c6573010011060400041c20556e636c657318417574686f720000000400046420417574686f72206f662063757272656e7420626c6f636b2e30446964536574556e636c65730100e8040004bc205768657468657220756e636c6573207765726520616c72656164792073657420696e207468697320626c6f636b2e015502000440556e636c6547656e65726174696f6e731010000000000ccc20546865206e756d626572206f6620626c6f636b73206261636b2077652073686f756c642061636365707420756e636c65732ee42054686973206d65616e7320746861742077652077696c6c206465616c207769746820756e636c652d706172656e7473207468617420617265942060556e636c6547656e65726174696f6e73202b203160206265666f726520606e6f77602e011906061c5374616b696e67011c5374616b696e679430486973746f7279446570746801001010540000001c8c204e756d626572206f66206572617320746f206b65657020696e20686973746f72792e00390120496e666f726d6174696f6e206973206b65707420666f72206572617320696e20605b63757272656e745f657261202d20686973746f72795f64657074683b2063757272656e745f6572615d602e006101204d757374206265206d6f7265207468616e20746865206e756d626572206f6620657261732064656c617965642062792073657373696f6e206f74686572776973652e20492e652e2061637469766520657261206d757374390120616c7761797320626520696e20686973746f72792e20492e652e20606163746976655f657261203e2063757272656e745f657261202d20686973746f72795f646570746860206d757374206265302067756172616e746565642e3856616c696461746f72436f756e74010010100000000004a82054686520696465616c206e756d626572206f66207374616b696e67207061727469636970616e74732e544d696e696d756d56616c696461746f72436f756e740100101000000000044101204d696e696d756d206e756d626572206f66207374616b696e67207061727469636970616e7473206265666f726520656d657267656e637920636f6e646974696f6e732061726520696d706f7365642e34496e76756c6e657261626c65730100dc04000c590120416e792076616c696461746f72732074686174206d6179206e6576657220626520736c6173686564206f7220666f726369626c79206b69636b65642e20497427732061205665632073696e636520746865792772654d01206561737920746f20696e697469616c697a6520616e642074686520706572666f726d616e636520686974206973206d696e696d616c2028776520657870656374206e6f206d6f7265207468616e20666f7572ac20696e76756c6e657261626c65732920616e64207265737472696374656420746f20746573746e6574732e18426f6e6465640001040500000400040101204d61702066726f6d20616c6c206c6f636b65642022737461736822206163636f756e747320746f2074686520636f6e74726f6c6c6572206163636f756e742e404d696e4e6f6d696e61746f72426f6e64010018400000000000000000000000000000000004210120546865206d696e696d756d2061637469766520626f6e6420746f206265636f6d6520616e64206d61696e7461696e2074686520726f6c65206f662061206e6f6d696e61746f722e404d696e56616c696461746f72426f6e64010018400000000000000000000000000000000004210120546865206d696e696d756d2061637469766520626f6e6420746f206265636f6d6520616e64206d61696e7461696e2074686520726f6c65206f6620612076616c696461746f722e184c656467657200010402001d060400044501204d61702066726f6d20616c6c2028756e6c6f636b6564292022636f6e74726f6c6c657222206163636f756e747320746f2074686520696e666f20726567617264696e6720746865207374616b696e672e14506179656501010405006102040004e42057686572652074686520726577617264207061796d656e742073686f756c64206265206d6164652e204b657965642062792073746173682e2856616c696461746f7273010104050065020800000c450120546865206d61702066726f6d202877616e6e616265292076616c696461746f72207374617368206b657920746f2074686520707265666572656e636573206f6620746861742076616c696461746f722e004901205768656e207570646174696e6720746869732073746f72616765206974656d2c20796f75206d75737420616c736f20757064617465207468652060436f756e746572466f7256616c696461746f7273602e50436f756e746572466f7256616c696461746f72730100101000000000042101204120747261636b657220746f206b65657020636f756e74206f6620746865206e756d626572206f66206974656d7320696e20746865206056616c696461746f727360206d61702e484d617856616c696461746f7273436f756e7400001004000c310120546865206d6178696d756d2076616c696461746f7220636f756e74206265666f72652077652073746f7020616c6c6f77696e67206e65772076616c696461746f727320746f206a6f696e2e00d0205768656e20746869732076616c7565206973206e6f74207365742c206e6f206c696d6974732061726520656e666f726365642e284e6f6d696e61746f72730001040500290604000c650120546865206d61702066726f6d206e6f6d696e61746f72207374617368206b657920746f2074686520736574206f66207374617368206b657973206f6620616c6c2076616c696461746f727320746f206e6f6d696e6174652e004901205768656e207570646174696e6720746869732073746f72616765206974656d2c20796f75206d75737420616c736f20757064617465207468652060436f756e746572466f724e6f6d696e61746f7273602e50436f756e746572466f724e6f6d696e61746f72730100101000000000042101204120747261636b657220746f206b65657020636f756e74206f6620746865206e756d626572206f66206974656d7320696e2074686520604e6f6d696e61746f727360206d61702e484d61784e6f6d696e61746f7273436f756e7400001004000c310120546865206d6178696d756d206e6f6d696e61746f7220636f756e74206265666f72652077652073746f7020616c6c6f77696e67206e65772076616c696461746f727320746f206a6f696e2e00d0205768656e20746869732076616c7565206973206e6f74207365742c206e6f206c696d6974732061726520656e666f726365642e2843757272656e744572610000100400105c205468652063757272656e742065726120696e6465782e006501205468697320697320746865206c617465737420706c616e6e6564206572612c20646570656e64696e67206f6e20686f77207468652053657373696f6e2070616c6c657420717565756573207468652076616c696461746f7280207365742c206974206d6967687420626520616374697665206f72206e6f742e2441637469766545726100002d06040010d820546865206163746976652065726120696e666f726d6174696f6e2c20697420686f6c647320696e64657820616e642073746172742e0059012054686520616374697665206572612069732074686520657261206265696e672063757272656e746c792072657761726465642e2056616c696461746f7220736574206f66207468697320657261206d757374206265ac20657175616c20746f205b6053657373696f6e496e746572666163653a3a76616c696461746f7273605d2e5445726173537461727453657373696f6e496e6465780001040510100400103101205468652073657373696f6e20696e646578206174207768696368207468652065726120737461727420666f7220746865206c6173742060484953544f52595f44455054486020657261732e006101204e6f74653a205468697320747261636b7320746865207374617274696e672073657373696f6e2028692e652e2073657373696f6e20696e646578207768656e20657261207374617274206265696e672061637469766529f020666f7220746865206572617320696e20605b43757272656e74457261202d20484953544f52595f44455054482c2043757272656e744572615d602e2c457261735374616b65727301010805053106c80c0000001878204578706f73757265206f662076616c696461746f72206174206572612e0061012054686973206973206b65796564206669727374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00a82049732069742072656d6f7665642061667465722060484953544f52595f44455054486020657261732e4101204966207374616b657273206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e20656d707479206578706f737572652069732072657475726e65642e48457261735374616b657273436c697070656401010805053106c80c0000002c9820436c6970706564204578706f73757265206f662076616c696461746f72206174206572612e00590120546869732069732073696d696c617220746f205b60457261735374616b657273605d20627574206e756d626572206f66206e6f6d696e61746f7273206578706f736564206973207265647563656420746f20746865dc2060543a3a4d61784e6f6d696e61746f72526577617264656450657256616c696461746f72602062696767657374207374616b6572732e1d0120284e6f74653a20746865206669656c642060746f74616c6020616e6420606f776e60206f6620746865206578706f737572652072656d61696e7320756e6368616e676564292ef42054686973206973207573656420746f206c696d69742074686520692f6f20636f737420666f7220746865206e6f6d696e61746f72207061796f75742e005d012054686973206973206b657965642066697374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00a82049732069742072656d6f7665642061667465722060484953544f52595f44455054486020657261732e4101204966207374616b657273206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e20656d707479206578706f737572652069732072657475726e65642e484572617356616c696461746f7250726566730101080505310665020800001411012053696d696c617220746f2060457261735374616b657273602c207468697320686f6c64732074686520707265666572656e636573206f662076616c696461746f72732e0061012054686973206973206b65796564206669727374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00a82049732069742072656d6f7665642061667465722060484953544f52595f44455054486020657261732e4c4572617356616c696461746f7252657761726400010405101804000c09012054686520746f74616c2076616c696461746f7220657261207061796f757420666f7220746865206c6173742060484953544f52595f44455054486020657261732e0021012045726173207468617420686176656e27742066696e697368656420796574206f7220686173206265656e2072656d6f76656420646f65736e27742068617665207265776172642e4045726173526577617264506f696e74730101040510350614000000000008ac205265776172647320666f7220746865206c6173742060484953544f52595f44455054486020657261732e250120496620726577617264206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e2030207265776172642069732072657475726e65642e3845726173546f74616c5374616b65010104051018400000000000000000000000000000000008ec2054686520746f74616c20616d6f756e74207374616b656420666f7220746865206c6173742060484953544f52595f44455054486020657261732e1d0120496620746f74616c206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e2030207374616b652069732072657475726e65642e20466f7263654572610100450604000454204d6f6465206f662065726120666f7263696e672e4c536c6173685265776172644672616374696f6e0100b90110000000000cf8205468652070657263656e74616765206f662074686520736c617368207468617420697320646973747269627574656420746f207265706f72746572732e00e4205468652072657374206f662074686520736c61736865642076616c75652069732068616e646c6564206279207468652060536c617368602e4c43616e63656c6564536c6173685061796f757401001840000000000000000000000000000000000815012054686520616d6f756e74206f662063757272656e637920676976656e20746f207265706f7274657273206f66206120736c617368206576656e7420776869636820776173ec2063616e63656c65642062792065787472616f7264696e6172792063697263756d7374616e6365732028652e672e20676f7665726e616e6365292e40556e6170706c696564536c617368657301010405104906040004c420416c6c20756e6170706c69656420736c61736865732074686174206172652071756575656420666f72206c617465722e28426f6e646564457261730100a50104001025012041206d617070696e672066726f6d207374696c6c2d626f6e646564206572617320746f207468652066697273742073657373696f6e20696e646578206f662074686174206572612e00c8204d75737420636f6e7461696e7320696e666f726d6174696f6e20666f72206572617320666f72207468652072616e67653abc20605b6163746976655f657261202d20626f756e64696e675f6475726174696f6e3b206163746976655f6572615d604c56616c696461746f72536c617368496e457261000108050531065106040008450120416c6c20736c617368696e67206576656e7473206f6e2076616c696461746f72732c206d61707065642062792065726120746f20746865206869676865737420736c6173682070726f706f7274696f6e7020616e6420736c6173682076616c7565206f6620746865206572612e4c4e6f6d696e61746f72536c617368496e4572610001080505310618040004610120416c6c20736c617368696e67206576656e7473206f6e206e6f6d696e61746f72732c206d61707065642062792065726120746f20746865206869676865737420736c6173682076616c7565206f6620746865206572612e34536c617368696e675370616e73000104050055060400048c20536c617368696e67207370616e7320666f72207374617368206163636f756e74732e245370616e536c6173680101040541065906800000000000000000000000000000000000000000000000000000000000000000083d01205265636f72647320696e666f726d6174696f6e2061626f757420746865206d6178696d756d20736c617368206f6620612073746173682077697468696e206120736c617368696e67207370616e2cb82061732077656c6c20617320686f77206d7563682072657761726420686173206265656e2070616964206f75742e584561726c69657374556e6170706c696564536c617368000010040004fc20546865206561726c696573742065726120666f72207768696368207765206861766520612070656e64696e672c20756e6170706c69656420736c6173682e5443757272656e74506c616e6e656453657373696f6e01001010000000000ce820546865206c61737420706c616e6e65642073657373696f6e207363686564756c6564206279207468652073657373696f6e2070616c6c65742e0071012054686973206973206261736963616c6c7920696e2073796e632077697468207468652063616c6c20746f205b6070616c6c65745f73657373696f6e3a3a53657373696f6e4d616e616765723a3a6e65775f73657373696f6e605d2e3853746f7261676556657273696f6e01005d06040710cc2054727565206966206e6574776f726b20686173206265656e20757067726164656420746f20746869732076657273696f6e2e7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e00a020546869732069732073657420746f2076372e302e3020666f72206e6577206e6574776f726b732e384368696c6c5468726573686f6c640000710204000c510120546865207468726573686f6c6420666f72207768656e2075736572732063616e2073746172742063616c6c696e6720606368696c6c5f6f746865726020666f72206f746865722076616c696461746f7273202f5901206e6f6d696e61746f72732e20546865207468726573686f6c6420697320636f6d706172656420746f207468652061637475616c206e756d626572206f662076616c696461746f7273202f206e6f6d696e61746f72732901202860436f756e74466f722a602920696e207468652073797374656d20636f6d706172656420746f2074686520636f6e66696775726564206d61782028604d61782a436f756e7460292e015d020190143853657373696f6e735065724572611010060000000470204e756d626572206f662073657373696f6e7320706572206572612e3c426f6e64696e674475726174696f6e10101c00000004e4204e756d626572206f6620657261732074686174207374616b65642066756e6473206d7573742072656d61696e20626f6e64656420666f722e48536c61736844656665724475726174696f6e10101b000000100101204e756d626572206f662065726173207468617420736c6173686573206172652064656665727265642062792c20616674657220636f6d7075746174696f6e2e000d0120546869732073686f756c64206265206c657373207468616e2074686520626f6e64696e67206475726174696f6e2e2053657420746f203020696620736c617368657315012073686f756c64206265206170706c69656420696d6d6564696174656c792c20776974686f7574206f70706f7274756e69747920666f7220696e74657276656e74696f6e2e804d61784e6f6d696e61746f72526577617264656450657256616c696461746f7210100001000010f820546865206d6178696d756d206e756d626572206f66206e6f6d696e61746f727320726577617264656420666f7220656163682076616c696461746f722e00510120466f7220656163682076616c696461746f72206f6e6c79207468652060244d61784e6f6d696e61746f72526577617264656450657256616c696461746f72602062696767657374207374616b6572732063616e390120636c61696d207468656972207265776172642e2054686973207573656420746f206c696d69742074686520692f6f20636f737420666f7220746865206e6f6d696e61746f72207061796f75742e384d61784e6f6d696e6174696f6e731010100000000001610607204f6666656e63657301204f6666656e6365730c1c5265706f72747300010405246506040004490120546865207072696d61727920737472756374757265207468617420686f6c647320616c6c206f6666656e6365207265636f726473206b65796564206279207265706f7274206964656e746966696572732e58436f6e63757272656e745265706f727473496e64657801010805056906a1010400042901204120766563746f72206f66207265706f727473206f66207468652073616d65206b696e6420746861742068617070656e6564206174207468652073616d652074696d6520736c6f742e485265706f72747342794b696e64496e646578010104059828040018110120456e756d65726174657320616c6c207265706f727473206f662061206b696e6420616c6f6e672077697468207468652074696d6520746865792068617070656e65642e00bc20416c6c207265706f7274732061726520736f72746564206279207468652074696d65206f66206f6666656e63652e004901204e6f74652074686174207468652061637475616c2074797065206f662074686973206d617070696e6720697320605665633c75383e602c207468697320697320626563617573652076616c756573206f66690120646966666572656e7420747970657320617265206e6f7420737570706f7274656420617420746865206d6f6d656e7420736f2077652061726520646f696e6720746865206d616e75616c2073657269616c697a6174696f6e2e00019400000828486973746f726963616c0000000000211c53657373696f6e011c53657373696f6e1c2856616c696461746f72730100dc0400047c205468652063757272656e7420736574206f662076616c696461746f72732e3043757272656e74496e646578010010100000000004782043757272656e7420696e646578206f66207468652073657373696f6e2e345175657565644368616e6765640100e8040008390120547275652069662074686520756e6465726c79696e672065636f6e6f6d6963206964656e746974696573206f7220776569676874696e6720626568696e64207468652076616c696461746f7273a420686173206368616e67656420696e20746865207175657565642076616c696461746f72207365742e285175657565644b65797301006d060400083d012054686520717565756564206b65797320666f7220746865206e6578742073657373696f6e2e205768656e20746865206e6578742073657373696f6e20626567696e732c207468657365206b657973e02077696c6c206265207573656420746f2064657465726d696e65207468652076616c696461746f7227732073657373696f6e206b6579732e4844697361626c656456616c696461746f72730100750204000c8020496e6469636573206f662064697361626c65642076616c696461746f72732e003501205468652073657420697320636c6561726564207768656e20606f6e5f73657373696f6e5f656e64696e67602072657475726e732061206e657720736574206f66206964656e7469746965732e204e6578744b657973000104050085020400049c20546865206e6578742073657373696f6e206b65797320666f7220612076616c696461746f722e204b65794f776e657200010405750600040004090120546865206f776e6572206f662061206b65792e20546865206b65792069732074686520604b657954797065496460202b2074686520656e636f646564206b65792e018102019c00017d06091c4772616e647061011c4772616e647061181453746174650100810604000490205374617465206f66207468652063757272656e7420617574686f72697479207365742e3450656e64696e674368616e676500008506040004c42050656e64696e67206368616e67653a20287369676e616c65642061742c207363686564756c6564206368616e6765292e284e657874466f72636564000010040004bc206e65787420626c6f636b206e756d6265722077686572652077652063616e20666f7263652061206368616e67652e1c5374616c6c65640000740400049020607472756560206966207765206172652063757272656e746c79207374616c6c65642e3043757272656e745365744964010020200000000000000000085d0120546865206e756d626572206f66206368616e6765732028626f746820696e207465726d73206f66206b65797320616e6420756e6465726c79696e672065636f6e6f6d696320726573706f6e736962696c697469657329c420696e20746865202273657422206f66204772616e6470612076616c696461746f72732066726f6d2067656e657369732e30536574496453657373696f6e00010405201004001059012041206d617070696e672066726f6d206772616e6470612073657420494420746f2074686520696e646578206f6620746865202a6d6f737420726563656e742a2073657373696f6e20666f722077686963682069747368206d656d62657273207765726520726573706f6e7369626c652e00b82054574f582d4e4f54453a2060536574496460206973206e6f7420756e646572207573657220636f6e74726f6c2e01950201a004384d6178417574686f7269746965731010a0860100045c204d617820417574686f72697469657320696e20757365018d060b20496d4f6e6c696e650120496d4f6e6c696e651038486561727462656174416674657201001010000000002c1d012054686520626c6f636b206e756d6265722061667465722077686963682069742773206f6b20746f2073656e64206865617274626561747320696e207468652063757272656e74242073657373696f6e2e0025012041742074686520626567696e6e696e67206f6620656163682073657373696f6e20776520736574207468697320746f20612076616c756520746861742073686f756c642066616c6c350120726f7567686c7920696e20746865206d6964646c65206f66207468652073657373696f6e206475726174696f6e2e20546865206964656120697320746f206669727374207761697420666f721901207468652076616c696461746f727320746f2070726f64756365206120626c6f636b20696e207468652063757272656e742073657373696f6e2c20736f207468617420746865a820686561727462656174206c61746572206f6e2077696c6c206e6f74206265206e65636573736172792e00390120546869732076616c75652077696c6c206f6e6c79206265207573656420617320612066616c6c6261636b206966207765206661696c20746f2067657420612070726f7065722073657373696f6e2d012070726f677265737320657374696d6174652066726f6d20604e65787453657373696f6e526f746174696f6e602c2061732074686f736520657374696d617465732073686f756c642062650101206d6f7265206163637572617465207468656e207468652076616c75652077652063616c63756c61746520666f7220604865617274626561744166746572602e104b65797301009106040004d0205468652063757272656e7420736574206f66206b6579732074686174206d61792069737375652061206865617274626561742e4852656365697665644865617274626561747300010805057499060400083d0120466f7220656163682073657373696f6e20696e6465782c207765206b6565702061206d617070696e67206f66202753657373696f6e496e6465786020616e64206041757468496e6465786020746fb02060577261707065724f70617175653c426f756e6465644f70617175654e6574776f726b53746174653e602e38417574686f726564426c6f636b730101080505310610100000000008150120466f7220656163682073657373696f6e20696e6465782c207765206b6565702061206d617070696e67206f66206056616c696461746f7249643c543e6020746f20746865c8206e756d626572206f6620626c6f636b7320617574686f7265642062792074686520676976656e20617574686f726974792e01c10201b40440556e7369676e65645072696f726974792020ffffffffffffffff10f0204120636f6e66696775726174696f6e20666f722062617365207072696f72697479206f6620756e7369676e6564207472616e73616374696f6e732e0015012054686973206973206578706f73656420736f20746861742069742063616e2062652074756e656420666f7220706172746963756c61722072756e74696d652c207768656eb4206d756c7469706c652070616c6c6574732073656e6420756e7369676e6564207472616e73616374696f6e732e01ad060c48417574686f72697479446973636f7665727900000000000d2444656d6f6372616379012444656d6f6372616379383c5075626c696350726f70436f756e74010010100000000004f420546865206e756d626572206f6620287075626c6963292070726f706f73616c7320746861742068617665206265656e206d61646520736f206661722e2c5075626c696350726f70730100b106040004210120546865207075626c69632070726f706f73616c732e20556e736f727465642e20546865207365636f6e64206974656d206973207468652070726f706f73616c277320686173682e244465706f7369744f660001040510b90604000c842054686f73652077686f2068617665206c6f636b65642061206465706f7369742e00d82054574f582d4e4f54453a20536166652c20617320696e6372656173696e6720696e7465676572206b6579732061726520736166652e24507265696d616765730001040624bd060400086101204d6170206f662068617368657320746f207468652070726f706f73616c20707265696d6167652c20616c6f6e6720776974682077686f207265676973746572656420697420616e64207468656972206465706f7369742ee42054686520626c6f636b206e756d6265722069732074686520626c6f636b20617420776869636820697420776173206465706f73697465642e3c5265666572656e64756d436f756e74010010100000000004310120546865206e6578742066726565207265666572656e64756d20696e6465782c20616b6120746865206e756d626572206f66207265666572656e6461207374617274656420736f206661722e344c6f77657374556e62616b6564010010100000000008250120546865206c6f77657374207265666572656e64756d20696e64657820726570726573656e74696e6720616e20756e62616b6564207265666572656e64756d2e20457175616c20746fdc20605265666572656e64756d436f756e74602069662074686572652069736e2774206120756e62616b6564207265666572656e64756d2e405265666572656e64756d496e666f4f660001040510c10604000cb420496e666f726d6174696f6e20636f6e6365726e696e6720616e7920676976656e207265666572656e64756d2e0009012054574f582d4e4f54453a205341464520617320696e646578657320617265206e6f7420756e64657220616e2061747461636b6572e280997320636f6e74726f6c2e20566f74696e674f660101040500cd06d8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000105d0120416c6c20766f74657320666f72206120706172746963756c617220766f7465722e2057652073746f7265207468652062616c616e636520666f7220746865206e756d626572206f6620766f74657320746861742077655d012068617665207265636f726465642e20546865207365636f6e64206974656d2069732074686520746f74616c20616d6f756e74206f662064656c65676174696f6e732c20746861742077696c6c2062652061646465642e00e82054574f582d4e4f54453a205341464520617320604163636f756e7449646073206172652063727970746f2068617368657320616e797761792e144c6f636b730001040500100400105d01204163636f756e747320666f7220776869636820746865726520617265206c6f636b7320696e20616374696f6e207768696368206d61792062652072656d6f76656420617420736f6d6520706f696e7420696e207468655101206675747572652e205468652076616c75652069732074686520626c6f636b206e756d62657220617420776869636820746865206c6f636b206578706972657320616e64206d61792062652072656d6f7665642e00c02054574f582d4e4f54453a204f4b20e2809520604163636f756e7449646020697320612073656375726520686173682e544c6173745461626c656457617345787465726e616c0100e80400085901205472756520696620746865206c617374207265666572656e64756d207461626c656420776173207375626d69747465642065787465726e616c6c792e2046616c7365206966206974207761732061207075626c6963282070726f706f73616c2e304e65787445787465726e616c0000e106040010590120546865207265666572656e64756d20746f206265207461626c6564207768656e6576657220697420776f756c642062652076616c696420746f207461626c6520616e2065787465726e616c2070726f706f73616c2e550120546869732068617070656e73207768656e2061207265666572656e64756d206e6565647320746f206265207461626c656420616e64206f6e65206f662074776f20636f6e646974696f6e7320617265206d65743aa4202d20604c6173745461626c656457617345787465726e616c60206973206066616c7365603b206f7268202d20605075626c696350726f70736020697320656d7074792e24426c61636b6c6973740001040624e50604000851012041207265636f7264206f662077686f207665746f656420776861742e204d6170732070726f706f73616c206861736820746f206120706f737369626c65206578697374656e7420626c6f636b206e756d626572e82028756e74696c207768656e206974206d6179206e6f742062652072657375626d69747465642920616e642077686f207665746f65642069742e3443616e63656c6c6174696f6e730101040624e80400042901205265636f7264206f6620616c6c2070726f706f73616c7320746861742068617665206265656e207375626a65637420746f20656d657267656e63792063616e63656c6c6174696f6e2e3853746f7261676556657273696f6e0000e90604000c7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e0098204e6577206e6574776f726b732073746172742077697468206c6173742076657273696f6e2e01dd0201d82c3c456e6163746d656e74506572696f6410100027060014e82054686520706572696f64206265747765656e20612070726f706f73616c206265696e6720617070726f76656420616e6420656e61637465642e0031012049742073686f756c642067656e6572616c6c792062652061206c6974746c65206d6f7265207468616e2074686520756e7374616b6520706572696f6420746f20656e737572652074686174510120766f74696e67207374616b657273206861766520616e206f70706f7274756e69747920746f2072656d6f7665207468656d73656c7665732066726f6d207468652073797374656d20696e207468652063617365b4207768657265207468657920617265206f6e20746865206c6f73696e672073696465206f66206120766f74652e304c61756e6368506572696f6410100027060004e420486f77206f6674656e2028696e20626c6f636b7329206e6577207075626c6963207265666572656e646120617265206c61756e636865642e30566f74696e67506572696f6410100027060004b820486f77206f6674656e2028696e20626c6f636b732920746f20636865636b20666f72206e657720766f7465732e44566f74654c6f636b696e67506572696f64101000270600109020546865206d696e696d756d20706572696f64206f6620766f7465206c6f636b696e672e0065012049742073686f756c64206265206e6f2073686f72746572207468616e20656e6163746d656e7420706572696f6420746f20656e73757265207468617420696e207468652063617365206f6620616e20617070726f76616c2c49012074686f7365207375636365737366756c20766f7465727320617265206c6f636b656420696e746f2074686520636f6e73657175656e636573207468617420746865697220766f74657320656e7461696c2e384d696e696d756d4465706f73697418400010a5d4e8000000000000000000000004350120546865206d696e696d756d20616d6f756e7420746f20626520757365642061732061206465706f73697420666f722061207075626c6963207265666572656e64756d2070726f706f73616c2e38496e7374616e74416c6c6f776564e804010c550120496e64696361746f7220666f72207768657468657220616e20656d657267656e6379206f726967696e206973206576656e20616c6c6f77656420746f2068617070656e2e20536f6d6520636861696e73206d617961012077616e7420746f207365742074686973207065726d616e656e746c7920746f206066616c7365602c206f7468657273206d61792077616e7420746f20636f6e646974696f6e206974206f6e207468696e67732073756368a020617320616e207570677261646520686176696e672068617070656e656420726563656e746c792e5446617374547261636b566f74696e67506572696f6410100807000004ec204d696e696d756d20766f74696e6720706572696f6420616c6c6f77656420666f72206120666173742d747261636b207265666572656e64756d2e34436f6f6c6f6666506572696f641010c089010004610120506572696f6420696e20626c6f636b7320776865726520616e2065787465726e616c2070726f706f73616c206d6179206e6f742062652072652d7375626d6974746564206166746572206265696e67207665746f65642e4c507265696d616765427974654465706f736974184000e1f5050000000000000000000000000429012054686520616d6f756e74206f662062616c616e63652074686174206d757374206265206465706f7369746564207065722062797465206f6620707265696d6167652073746f7265642e204d6178566f74657310106400000010b020546865206d6178696d756d206e756d626572206f6620766f74657320666f7220616e206163636f756e742e00d420416c736f207573656420746f20636f6d70757465207765696768742c20616e206f7665726c79206269672076616c75652063616e1501206c65616420746f2065787472696e7369632077697468207665727920626967207765696768743a20736565206064656c65676174656020666f7220696e7374616e63652e304d617850726f706f73616c73101064000000040d0120546865206d6178696d756d206e756d626572206f66207075626c69632070726f706f73616c7320746861742063616e20657869737420617420616e792074696d652e01ed060e1c436f756e63696c011c436f756e63696c182450726f706f73616c730100f106040004902054686520686173686573206f6620746865206163746976652070726f706f73616c732e2850726f706f73616c4f6600010406240902040004cc2041637475616c2070726f706f73616c20666f72206120676976656e20686173682c20696620697427732063757272656e742e18566f74696e670001040624f506040004b420566f746573206f6e206120676976656e2070726f706f73616c2c206966206974206973206f6e676f696e672e3450726f706f73616c436f756e74010010100000000004482050726f706f73616c7320736f206661722e1c4d656d626572730100dc0400043901205468652063757272656e74206d656d62657273206f662074686520636f6c6c6563746976652e20546869732069732073746f72656420736f7274656420286a7573742062792076616c7565292e145072696d65000000040004650120546865207072696d65206d656d62657220746861742068656c70732064657465726d696e65207468652064656661756c7420766f7465206265686176696f7220696e2063617365206f6620616273656e746174696f6e732e01ed0201e40001f9060f48546563686e6963616c436f6d6d69747465650148546563686e6963616c436f6d6d6974746565182450726f706f73616c730100fd06040004902054686520686173686573206f6620746865206163746976652070726f706f73616c732e2850726f706f73616c4f6600010406240902040004cc2041637475616c2070726f706f73616c20666f72206120676976656e20686173682c20696620697427732063757272656e742e18566f74696e670001040624f506040004b420566f746573206f6e206120676976656e2070726f706f73616c2c206966206974206973206f6e676f696e672e3450726f706f73616c436f756e74010010100000000004482050726f706f73616c7320736f206661722e1c4d656d626572730100dc0400043901205468652063757272656e74206d656d62657273206f662074686520636f6c6c6563746976652e20546869732069732073746f72656420736f7274656420286a7573742062792076616c7565292e145072696d65000000040004650120546865207072696d65206d656d62657220746861742068656c70732064657465726d696e65207468652064656661756c7420766f7465206265686176696f7220696e2063617365206f6620616273656e746174696f6e732e01f50201ec00010107104050687261676d656e456c656374696f6e014050687261676d656e456c656374696f6e141c4d656d626572730100050704000c74205468652063757272656e7420656c6563746564206d656d626572732e00b820496e76617269616e743a20416c7761797320736f72746564206261736564206f6e206163636f756e742069642e2452756e6e65727355700100050704001084205468652063757272656e742072657365727665642072756e6e6572732d75702e00590120496e76617269616e743a20416c7761797320736f72746564206261736564206f6e2072616e6b2028776f72736520746f2062657374292e2055706f6e2072656d6f76616c206f662061206d656d6265722c20746865bc206c6173742028692e652e205f626573745f292072756e6e65722d75702077696c6c206265207265706c616365642e2843616e646964617465730100f40400185901205468652070726573656e742063616e646964617465206c6973742e20412063757272656e74206d656d626572206f722072756e6e65722d75702063616e206e6576657220656e746572207468697320766563746f72d020616e6420697320616c7761797320696d706c696369746c7920617373756d656420746f20626520612063616e6469646174652e007c205365636f6e6420656c656d656e7420697320746865206465706f7369742e00b820496e76617269616e743a20416c7761797320736f72746564206261736564206f6e206163636f756e742069642e38456c656374696f6e526f756e647301001010000000000441012054686520746f74616c206e756d626572206f6620766f746520726f756e6473207468617420686176652068617070656e65642c206578636c7564696e6720746865207570636f6d696e67206f6e652e18566f74696e6701010405000d07840000000000000000000000000000000000000000000000000000000000000000000cb820566f74657320616e64206c6f636b6564207374616b65206f66206120706172746963756c617220766f7465722e00c42054574f582d4e4f54453a205341464520617320604163636f756e7449646020697320612063727970746f20686173682e01f90201f01c2050616c6c65744964f50120706872656c65637404d0204964656e74696669657220666f722074686520656c656374696f6e732d70687261676d656e2070616c6c65742773206c6f636b3443616e646964616379426f6e6418400010a5d4e8000000000000000000000004050120486f77206d7563682073686f756c64206265206c6f636b656420757020696e206f7264657220746f207375626d6974206f6e6527732063616e6469646163792e38566f74696e67426f6e64426173651840007013b72e000000000000000000000010942042617365206465706f736974206173736f636961746564207769746820766f74696e672e00550120546869732073686f756c642062652073656e7369626c79206869676820746f2065636f6e6f6d6963616c6c7920656e73757265207468652070616c6c65742063616e6e6f742062652061747461636b656420627994206372656174696e67206120676967616e746963206e756d626572206f6620766f7465732e40566f74696e67426f6e64466163746f72184000d012130000000000000000000000000411012054686520616d6f756e74206f6620626f6e642074686174206e65656420746f206265206c6f636b656420666f72206561636820766f746520283332206279746573292e38446573697265644d656d6265727310100d0000000470204e756d626572206f66206d656d6265727320746f20656c6563742e404465736972656452756e6e65727355701010140000000478204e756d626572206f662072756e6e6572735f757020746f206b6565702e305465726d4475726174696f6e1010c08901000c510120486f77206c6f6e6720656163682073656174206973206b6570742e205468697320646566696e657320746865206e65787420626c6f636b206e756d62657220617420776869636820616e20656c656374696f6e5d0120726f756e642077696c6c2068617070656e2e2049662073657420746f207a65726f2c206e6f20656c656374696f6e732061726520657665722074726967676572656420616e6420746865206d6f64756c652077696c6c5020626520696e2070617373697665206d6f64652e011107114c546563686e6963616c4d656d62657273686970014c546563686e6963616c4d656d62657273686970081c4d656d626572730100dc040004c8205468652063757272656e74206d656d626572736869702c2073746f72656420617320616e206f726465726564205665632e145072696d65000000040004a4205468652063757272656e74207072696d65206d656d6265722c206966206f6e65206578697374732e01010301fc0001150712205472656173757279012054726561737572790c3450726f706f73616c436f756e74010010100000000004a4204e756d626572206f662070726f706f73616c7320746861742068617665206265656e206d6164652e2450726f706f73616c73000104051019070400047c2050726f706f73616c7320746861742068617665206265656e206d6164652e24417070726f76616c7301001d07040004f82050726f706f73616c20696e646963657320746861742068617665206265656e20617070726f76656420627574206e6f742079657420617761726465642e010503010101183050726f706f73616c426f6e6421071050c30000085501204672616374696f6e206f6620612070726f706f73616c27732076616c756520746861742073686f756c6420626520626f6e64656420696e206f7264657220746f20706c616365207468652070726f706f73616c2e110120416e2061636365707465642070726f706f73616c2067657473207468657365206261636b2e20412072656a65637465642070726f706f73616c20646f6573206e6f742e4c50726f706f73616c426f6e644d696e696d756d18400010a5d4e80000000000000000000000044901204d696e696d756d20616d6f756e74206f662066756e647320746861742073686f756c6420626520706c6163656420696e2061206465706f73697420666f72206d616b696e6720612070726f706f73616c2e2c5370656e64506572696f64101000460500048820506572696f64206265747765656e2073756363657373697665207370656e64732e104275726e210710102700000411012050657263656e74616765206f662073706172652066756e64732028696620616e7929207468617420617265206275726e7420706572207370656e6420706572696f642e2050616c6c6574496425072070792f74727372790419012054686520747265617375727927732070616c6c65742069642c207573656420666f72206465726976696e672069747320736f7665726569676e206163636f756e742049442e304d6178417070726f76616c7310106400000004150120546865206d6178696d756d206e756d626572206f6620617070726f76616c7320746861742063616e207761697420696e20746865207370656e64696e672071756575652e0129071318436c61696d730118436c61696d731418436c61696d730001040609011804000014546f74616c0100184000000000000000000000000000000000001c56657374696e670001040609011903040010782056657374696e67207363686564756c6520666f72206120636c61696d2e0d012046697273742062616c616e63652069732074686520746f74616c20616d6f756e7420746861742073686f756c642062652068656c6420666f722076657374696e672ee4205365636f6e642062616c616e636520697320686f77206d7563682073686f756c6420626520756e6c6f636b65642070657220626c6f636b2ecc2054686520626c6f636b206e756d626572206973207768656e207468652076657374696e672073686f756c642073746172742e1c5369676e696e670001040609012103040004c0205468652073746174656d656e74206b696e642074686174206d757374206265207369676e65642c20696620616e792e24507265636c61696d73000104060009010400042d01205072652d636c61696d656420457468657265756d206163636f756e74732c20627920746865204163636f756e74204944207468617420746865792061726520636c61696d656420746f2e010903010501041850726566697828888450617920444f547320746f2074686520506f6c6b61646f74206163636f756e743a00012d07181c56657374696e67011c56657374696e67081c56657374696e6700010402003107040004d820496e666f726d6174696f6e20726567617264696e67207468652076657374696e67206f66206120676976656e206163636f756e742e3853746f7261676556657273696f6e0100390704000c7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e003101204e6577206e6574776f726b732073746172742077697468206c61746573742076657273696f6e2c2061732064657465726d696e6564206279207468652067656e65736973206275696c642e01250301110108444d696e5665737465645472616e73666572184000e40b5402000000000000000000000004e820546865206d696e696d756d20616d6f756e74207472616e7366657272656420746f2063616c6c20607665737465645f7472616e73666572602e4c4d617856657374696e675363686564756c657310101c00000000013d07191c5574696c69747900012d03011501044c626174636865645f63616c6c735f6c696d697410100dd2000004a820546865206c696d6974206f6e20746865206e756d626572206f6620626174636865642063616c6c732e0141071a204964656e7469747901204964656e7469747910284964656e746974794f660001040500450704000c210120496e666f726d6174696f6e20746861742069732070657274696e656e7420746f206964656e746966792074686520656e7469747920626568696e6420616e206163636f756e742e00c02054574f582d4e4f54453a204f4b20e2809520604163636f756e7449646020697320612073656375726520686173682e1c53757065724f660001040200c5030400086101205468652073757065722d6964656e74697479206f6620616e20616c7465726e6174697665202273756222206964656e7469747920746f676574686572207769746820697473206e616d652c2077697468696e2074686174510120636f6e746578742e20496620746865206163636f756e74206973206e6f7420736f6d65206f74686572206163636f756e742773207375622d6964656e746974792c207468656e206a75737420604e6f6e65602e18537562734f660101040500550744000000000000000000000000000000000014b820416c7465726e6174697665202273756222206964656e746974696573206f662074686973206163636f756e742e001d0120546865206669727374206974656d20697320746865206465706f7369742c20746865207365636f6e64206973206120766563746f72206f6620746865206163636f756e74732e00c02054574f582d4e4f54453a204f4b20e2809520604163636f756e7449646020697320612073656375726520686173682e285265676973747261727301005d070400104d012054686520736574206f6620726567697374726172732e204e6f7420657870656374656420746f206765742076657279206269672061732063616e206f6e6c79206265206164646564207468726f7567682061a8207370656369616c206f726967696e20286c696b656c79206120636f756e63696c206d6f74696f6e292e0029012054686520696e64657820696e746f20746869732063616e206265206361737420746f2060526567697374726172496e6465786020746f2067657420612076616c69642076616c75652e013503011901183042617369634465706f7369741840007db52a2f000000000000000000000004d42054686520616d6f756e742068656c64206f6e206465706f73697420666f7220612072656769737465726564206964656e74697479304669656c644465706f736974184000cd5627000000000000000000000000042d012054686520616d6f756e742068656c64206f6e206465706f73697420706572206164646974696f6e616c206669656c6420666f7220612072656769737465726564206964656e746974792e445375624163636f756e744465706f736974184080f884b02e00000000000000000000000c65012054686520616d6f756e742068656c64206f6e206465706f73697420666f7220612072656769737465726564207375626163636f756e742e20546869732073686f756c64206163636f756e7420666f7220746865206661637465012074686174206f6e652073746f72616765206974656d27732076616c75652077696c6c20696e637265617365206279207468652073697a65206f6620616e206163636f756e742049442c20616e642074686572652077696c6c350120626520616e6f746865722074726965206974656d2077686f73652076616c7565206973207468652073697a65206f6620616e206163636f756e7420494420706c75732033322062797465732e384d61785375624163636f756e7473101064000000040d0120546865206d6178696d756d206e756d626572206f66207375622d6163636f756e747320616c6c6f77656420706572206964656e746966696564206163636f756e742e4c4d61784164646974696f6e616c4669656c6473101064000000086501204d6178696d756d206e756d626572206f66206164646974696f6e616c206669656c64732074686174206d61792062652073746f72656420696e20616e2049442e204e656564656420746f20626f756e642074686520492f4fe020726571756972656420746f2061636365737320616e206964656e746974792c206275742063616e2062652070726574747920686967682e344d617852656769737472617273101014000000085101204d61786d696d756d206e756d626572206f66207265676973747261727320616c6c6f77656420696e207468652073797374656d2e204e656564656420746f20626f756e642074686520636f6d706c65786974797c206f662c20652e672e2c207570646174696e67206a756467656d656e74732e016d071c1450726f7879011450726f7879081c50726f78696573010104050071074400000000000000000000000000000000000845012054686520736574206f66206163636f756e742070726f786965732e204d61707320746865206163636f756e74207768696368206861732064656c65676174656420746f20746865206163636f756e7473210120776869636820617265206265696e672064656c65676174656420746f2c20746f67657468657220776974682074686520616d6f756e742068656c64206f6e206465706f7369742e34416e6e6f756e63656d656e74730101040500810744000000000000000000000000000000000004ac2054686520616e6e6f756e63656d656e7473206d616465206279207468652070726f787920286b6579292e01d503011d01184050726f78794465706f7369744261736518400084b2952e000000000000000000000010110120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e6720612070726f78792e00010120546869732069732068656c6420666f7220616e206164646974696f6e616c2073746f72616765206974656d2077686f73652076616c75652073697a652069732501206073697a656f662842616c616e6365296020627974657320616e642077686f7365206b65792073697a65206973206073697a656f66284163636f756e74496429602062797465732e4850726f78794465706f736974466163746f7218408066ab1300000000000000000000000014bc2054686520616d6f756e74206f662063757272656e6379206e6565646564207065722070726f78792061646465642e00350120546869732069732068656c6420666f7220616464696e6720333220627974657320706c757320616e20696e7374616e6365206f66206050726f78795479706560206d6f726520696e746f20616101207072652d6578697374696e672073746f726167652076616c75652e20546875732c207768656e20636f6e6669677572696e67206050726f78794465706f736974466163746f7260206f6e652073686f756c642074616b65f420696e746f206163636f756e7420603332202b2070726f78795f747970652e656e636f646528292e6c656e282960206279746573206f6620646174612e284d617850726f7869657310102000000004f020546865206d6178696d756d20616d6f756e74206f662070726f7869657320616c6c6f77656420666f7220612073696e676c65206163636f756e742e284d617850656e64696e6710102000000004450120546865206d6178696d756d20616d6f756e74206f662074696d652d64656c6179656420616e6e6f756e63656d656e747320746861742061726520616c6c6f77656420746f2062652070656e64696e672e5c416e6e6f756e63656d656e744465706f7369744261736518400084b2952e000000000000000000000010310120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e6720616e20616e6e6f756e63656d656e742e00490120546869732069732068656c64207768656e2061206e65772073746f72616765206974656d20686f6c64696e672061206042616c616e636560206973206372656174656420287479706963616c6c7920313620206279746573292e64416e6e6f756e63656d656e744465706f736974466163746f72184000cd562700000000000000000000000010d42054686520616d6f756e74206f662063757272656e6379206e65656465642070657220616e6e6f756e63656d656e74206d6164652e00590120546869732069732068656c6420666f7220616464696e6720616e20604163636f756e744964602c2060486173686020616e642060426c6f636b4e756d6265726020287479706963616c6c79203638206279746573298c20696e746f2061207072652d6578697374696e672073746f726167652076616c75652e0191071d204d756c746973696701204d756c746973696708244d756c746973696773000108050295079907040004942054686520736574206f66206f70656e206d756c7469736967206f7065726174696f6e732e1443616c6c7300010406049d0704000001dd030129010c2c4465706f736974426173651840008c61c52e000000000000000000000018590120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e672061206d756c746973696720657865637574696f6e206f7220746f842073746f726520612064697370617463682063616c6c20666f72206c617465722e00010120546869732069732068656c6420666f7220616e206164646974696f6e616c2073746f72616765206974656d2077686f73652076616c75652073697a652069733101206034202b2073697a656f662828426c6f636b4e756d6265722c2042616c616e63652c204163636f756e74496429296020627974657320616e642077686f7365206b65792073697a652069738020603332202b2073697a656f66284163636f756e74496429602062797465732e344465706f736974466163746f72184000d012130000000000000000000000000c55012054686520616d6f756e74206f662063757272656e6379206e65656465642070657220756e6974207468726573686f6c64207768656e206372656174696e672061206d756c746973696720657865637574696f6e2e00250120546869732069732068656c6420666f7220616464696e67203332206279746573206d6f726520696e746f2061207072652d6578697374696e672073746f726167652076616c75652e384d61785369676e61746f72696573250108640004ec20546865206d6178696d756d20616d6f756e74206f66207369676e61746f7269657320616c6c6f77656420696e20746865206d756c74697369672e01a1071e20426f756e746965730120426f756e74696573102c426f756e7479436f756e74010010100000000004c0204e756d626572206f6620626f756e74792070726f706f73616c7320746861742068617665206265656e206d6164652e20426f756e746965730001040510a5070400047820426f756e7469657320746861742068617665206265656e206d6164652e48426f756e74794465736372697074696f6e730001040510280400048020546865206465736372697074696f6e206f66206561636820626f756e74792e3c426f756e7479417070726f76616c7301007502040004ec20426f756e747920696e646963657320746861742068617665206265656e20617070726f76656420627574206e6f74207965742066756e6465642e01e5030131011c44426f756e74794465706f73697442617365184000e40b5402000000000000000000000004e82054686520616d6f756e742068656c64206f6e206465706f73697420666f7220706c6163696e67206120626f756e74792070726f706f73616c2e60426f756e74794465706f7369745061796f757444656c6179101000c20100045901205468652064656c617920706572696f6420666f72207768696368206120626f756e74792062656e6566696369617279206e65656420746f2077616974206265666f726520636c61696d20746865207061796f75742e48426f756e7479557064617465506572696f64101080c61300046c20426f756e7479206475726174696f6e20696e20626c6f636b732e50426f756e747943757261746f724465706f73697421071020a107000849012050657263656e74616765206f66207468652063757261746f722066656520746861742077696c6c20626520726573657276656420757066726f6e74206173206465706f73697420666f7220626f756e7479242063757261746f722e48426f756e747956616c75654d696e696d756d184000e876481700000000000000000000000470204d696e696d756d2076616c756520666f72206120626f756e74792e48446174614465706f73697450657242797465184000e1f5050000000000000000000000000461012054686520616d6f756e742068656c64206f6e206465706f7369742070657220627974652077697468696e2074686520746970207265706f727420726561736f6e206f7220626f756e7479206465736372697074696f6e2e4c4d6178696d756d526561736f6e4c656e6774681010004000000488204d6178696d756d2061636365707461626c6520726561736f6e206c656e6774682e01ad072210546970730110546970730810546970730001040524b10704000c650120546970734d6170207468617420617265206e6f742079657420636f6d706c657465642e204b65796564206279207468652068617368206f66206028726561736f6e2c2077686f29602066726f6d207468652076616c75652e3d012054686973206861732074686520696e73656375726520656e756d657261626c6520686173682066756e6374696f6e2073696e636520746865206b657920697473656c6620697320616c7265616479802067756172616e7465656420746f20626520612073656375726520686173682e1c526561736f6e7300010406242804000849012053696d706c6520707265696d616765206c6f6f6b75702066726f6d2074686520726561736f6e2773206861736820746f20746865206f726967696e616c20646174612e20416761696e2c2068617320616e610120696e73656375726520656e756d657261626c6520686173682073696e636520746865206b65792069732067756172616e7465656420746f2062652074686520726573756c74206f6620612073656375726520686173682e01e903013501144c4d6178696d756d526561736f6e4c656e6774681010004000000488204d6178696d756d2061636365707461626c6520726561736f6e206c656e6774682e48446174614465706f73697450657242797465184000e1f5050000000000000000000000000461012054686520616d6f756e742068656c64206f6e206465706f7369742070657220627974652077697468696e2074686520746970207265706f727420726561736f6e206f7220626f756e7479206465736372697074696f6e2e30546970436f756e74646f776e1010403800000445012054686520706572696f6420666f722077686963682061207469702072656d61696e73206f70656e20616674657220697320686173206163686965766564207468726573686f6c6420746970706572732e3454697046696e6465727346656571020414043501205468652070657263656e74206f66207468652066696e616c2074697020776869636820676f657320746f20746865206f726967696e616c207265706f72746572206f6620746865207469702e505469705265706f72744465706f73697442617365184000e40b5402000000000000000000000004d42054686520616d6f756e742068656c64206f6e206465706f73697420666f7220706c6163696e67206120746970207265706f72742e01b5072368456c656374696f6e50726f76696465724d756c746950686173650168456c656374696f6e50726f76696465724d756c746950686173652814526f756e64010010100100000018ac20496e7465726e616c20636f756e74657220666f7220746865206e756d626572206f6620726f756e64732e00550120546869732069732075736566756c20666f722064652d6475706c69636174696f6e206f66207472616e73616374696f6e73207375626d697474656420746f2074686520706f6f6c2c20616e642067656e6572616c6c20646961676e6f7374696373206f66207468652070616c6c65742e004d012054686973206973206d6572656c7920696e6372656d656e746564206f6e6365207065722065766572792074696d65207468617420616e20757073747265616d2060656c656374602069732063616c6c65642e3043757272656e7450686173650100b9070400043c2043757272656e742070686173652e38517565756564536f6c7574696f6e0000c1070400043d012043757272656e74206265737420736f6c7574696f6e2c207369676e6564206f7220756e7369676e65642c2071756575656420746f2062652072657475726e65642075706f6e2060656c656374602e20536e617073686f740000c50704000c7020536e617073686f742064617461206f662074686520726f756e642e005d01205468697320697320637265617465642061742074686520626567696e6e696e67206f6620746865207369676e656420706861736520616e6420636c65617265642075706f6e2063616c6c696e672060656c656374602e38446573697265645461726765747300001004000ccc2044657369726564206e756d626572206f66207461726765747320746f20656c65637420666f72207468697320726f756e642e00a8204f6e6c7920657869737473207768656e205b60536e617073686f74605d2069732070726573656e742e40536e617073686f744d657461646174610000c50404000c9820546865206d65746164617461206f6620746865205b60526f756e64536e617073686f74605d00a8204f6e6c7920657869737473207768656e205b60536e617073686f74605d2069732070726573656e742e645369676e65645375626d697373696f6e4e657874496e646578010010100000000024010120546865206e65787420696e64657820746f2062652061737369676e656420746f20616e20696e636f6d696e67207369676e6564207375626d697373696f6e2e007501204576657279206163636570746564207375626d697373696f6e2069732061737369676e6564206120756e6971756520696e6465783b207468617420696e64657820697320626f756e6420746f207468617420706172746963756c61726501207375626d697373696f6e20666f7220746865206475726174696f6e206f662074686520656c656374696f6e2e204f6e20656c656374696f6e2066696e616c697a6174696f6e2c20746865206e65787420696e6465782069733020726573657420746f20302e0069012057652063616e2774206a7573742075736520605369676e65645375626d697373696f6e496e64696365732e6c656e2829602c206265636175736520746861742773206120626f756e646564207365743b20706173742069747359012063617061636974792c2069742077696c6c2073696d706c792073617475726174652e2057652063616e2774206a7573742069746572617465206f76657220605369676e65645375626d697373696f6e734d6170602cf4206265636175736520697465726174696f6e20697320736c6f772e20496e73746561642c2077652073746f7265207468652076616c756520686572652e5c5369676e65645375626d697373696f6e496e64696365730100d1070400184d01204120736f727465642c20626f756e64656420736574206f6620602873636f72652c20696e64657829602c20776865726520656163682060696e6465786020706f696e747320746f20612076616c756520696e5420605369676e65645375626d697373696f6e73602e007101205765206e65766572206e65656420746f2070726f63657373206d6f7265207468616e20612073696e676c65207369676e6564207375626d697373696f6e20617420612074696d652e205369676e6564207375626d697373696f6e7375012063616e206265207175697465206c617267652c20736f2077652772652077696c6c696e6720746f207061792074686520636f7374206f66206d756c7469706c6520646174616261736520616363657373657320746f206163636573732101207468656d206f6e6520617420612074696d6520696e7374656164206f662072656164696e6720616e64206465636f64696e6720616c6c206f66207468656d206174206f6e63652e505369676e65645375626d697373696f6e734d61700101040510e10711020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000001c7420556e636865636b65642c207369676e656420736f6c7574696f6e732e00690120546f676574686572207769746820605375626d697373696f6e496e6469636573602c20746869732073746f726573206120626f756e64656420736574206f6620605369676e65645375626d697373696f6e7360207768696c65ec20616c6c6f77696e6720757320746f206b656570206f6e6c7920612073696e676c65206f6e6520696e206d656d6f727920617420612074696d652e0069012054776f78206e6f74653a20746865206b6579206f6620746865206d617020697320616e206175746f2d696e6372656d656e74696e6720696e6465782077686963682075736572732063616e6e6f7420696e7370656374206f72f4206166666563743b2077652073686f756c646e2774206e65656420612063727970746f67726170686963616c6c7920736563757265206861736865722e544d696e696d756d556e7472757374656453636f72650000c1040400105d0120546865206d696e696d756d2073636f7265207468617420656163682027756e747275737465642720736f6c7574696f6e206d7573742061747461696e20696e206f7264657220746f20626520636f6e7369646572656428206665617369626c652e00b82043616e206265207365742076696120607365745f6d696e696d756d5f756e747275737465645f73636f7265602e01ed030139013834556e7369676e656450686173651010580200000480204475726174696f6e206f662074686520756e7369676e65642070686173652e2c5369676e656450686173651010580200000478204475726174696f6e206f6620746865207369676e65642070686173652e70536f6c7574696f6e496d70726f76656d656e745468726573686f6c64b9011020a10700084d0120546865206d696e696d756d20616d6f756e74206f6620696d70726f76656d656e7420746f2074686520736f6c7574696f6e2073636f7265207468617420646566696e6573206120736f6c7574696f6e206173642022626574746572222028696e20616e79207068617365292e384f6666636861696e52657065617410100500000010b42054686520726570656174207468726573686f6c64206f6620746865206f6666636861696e20776f726b65722e00610120466f72206578616d706c652c20696620697420697320352c2074686174206d65616e732074686174206174206c65617374203520626c6f636b732077696c6c20656c61707365206265747765656e20617474656d7074738420746f207375626d69742074686520776f726b6572277320736f6c7574696f6e2e3c4d696e657254785072696f72697479202065666666666666e604250120546865207072696f72697479206f662074686520756e7369676e6564207472616e73616374696f6e207375626d697474656420696e2074686520756e7369676e65642d7068617365384d696e65724d61785765696768742020c08466655701000010b8204d6178696d756d20776569676874207468617420746865206d696e65722073686f756c6420636f6e73756d652e00550120546865206d696e65722077696c6c20656e7375726520746861742074686520746f74616c20776569676874206f662074686520756e7369676e656420736f6c7574696f6e2077696c6c206e6f7420657863656564d820746869732076616c75652c206261736564206f6e205b60576569676874496e666f3a3a7375626d69745f756e7369676e6564605d2e505369676e65644d61785375626d697373696f6e731010100000001ce4204d6178696d756d206e756d626572206f66207369676e6564207375626d697373696f6e7320746861742063616e206265207175657565642e005501204974206973206265737420746f2061766f69642061646a757374696e67207468697320647572696e6720616e20656c656374696f6e2c20617320697420696d706163747320646f776e73747265616d2064617461650120737472756374757265732e20496e20706172746963756c61722c20605369676e65645375626d697373696f6e496e64696365733c543e6020697320626f756e646564206f6e20746869732076616c75652e20496620796f75f42075706461746520746869732076616c756520647572696e6720616e20656c656374696f6e2c20796f75205f6d7573745f20656e7375726520746861744d0120605369676e65645375626d697373696f6e496e64696365732e6c656e282960206973206c657373207468616e206f7220657175616c20746f20746865206e65772076616c75652e204f74686572776973652cf020617474656d70747320746f207375626d6974206e657720736f6c7574696f6e73206d617920636175736520612072756e74696d652070616e69632e3c5369676e65644d61785765696768742020c0846665570100000c94204d6178696d756d20776569676874206f662061207369676e656420736f6c7574696f6e2e00fc20546869732073686f756c642070726f6261626c792062652073696d696c617220746f205b60436f6e6669673a3a4d696e65724d6178576569676874605d2e405369676e656452657761726442617365184000e40b54020000000000000000000000048820426173652072657761726420666f722061207369676e656420736f6c7574696f6e445369676e65644465706f73697442617365184000a0db215d000000000000000000000004902042617365206465706f73697420666f722061207369676e656420736f6c7574696f6e2e445369676e65644465706f736974427974651840787d010000000000000000000000000004a0205065722d62797465206465706f73697420666f722061207369676e656420736f6c7574696f6e2e4c5369676e65644465706f73697457656967687418400000000000000000000000000000000004a8205065722d776569676874206465706f73697420666f722061207369676e656420736f6c7574696f6e2e54566f746572536e617073686f74506572426c6f636b1010e4570000185d0120546865206d6178696d756d206e756d626572206f6620766f7465727320746f2070757420696e2074686520736e617073686f742e20417420746865206d6f6d656e742c20736e617073686f747320617265206f6e6c796101206f76657220612073696e676c6520626c6f636b2c20627574206f6e6365206d756c74692d626c6f636b20656c656374696f6e732061726520696e74726f647563656420746865792077696c6c2074616b6520706c61636558206f766572206d756c7469706c6520626c6f636b732e00310120416c736f2c206e6f746520746865206461746120747970653a2049662074686520766f746572732061726520726570726573656e746564206279206120607533326020696e206074797065390120436f6d70616374536f6c7574696f6e602c207468652073616d652060753332602069732075736564206865726520746f20656e7375726520626f756e647320617265207265737065637465642e384d696e65724d61784c656e67746810100000360010fc204d6178696d756d206c656e6774682028627974657329207468617420746865206d696e656420736f6c7574696f6e2073686f756c6420636f6e73756d652e00550120546865206d696e65722077696c6c20656e7375726520746861742074686520746f74616c206c656e677468206f662074686520756e7369676e656420736f6c7574696f6e2077696c6c206e6f74206578636565643020746869732076616c75652e01e507244050617261636861696e734f726967696e00000000003234436f6e66696775726174696f6e0134436f6e66696775726174696f6e0830416374697665436f6e6669670100e907e90200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000100000001000000000000000000060000006400000002000000c8000000010000000000000000000000000000000000000000c817a80400000004c8205468652061637469766520636f6e66696775726174696f6e20666f72207468652063757272656e742073657373696f6e2e3450656e64696e67436f6e6669670001040510e907040004d42050656e64696e6720636f6e66696775726174696f6e2028696620616e792920666f7220746865206e6578742073657373696f6e2e01d904000001ed07332c5061726173536861726564012c50617261735368617265640c4c43757272656e7453657373696f6e496e6465780100101000000000046c205468652063757272656e742073657373696f6e20696e6465782e5841637469766556616c696461746f72496e64696365730100f107040008090120416c6c207468652076616c696461746f7273206163746976656c792070617274696369706174696e6720696e2070617261636861696e20636f6e73656e7375732eb020496e64696365732061726520696e746f207468652062726f616465722076616c696461746f72207365742e4c41637469766556616c696461746f724b6579730100f5070400088101205468652070617261636861696e206174746573746174696f6e206b657973206f66207468652076616c696461746f7273206163746976656c792070617274696369706174696e6720696e2070617261636861696e20636f6e73656e7375732ef020546869732073686f756c64206265207468652073616d65206c656e677468206173206041637469766556616c696461746f72496e6469636573602e01dd04000000343450617261496e636c7573696f6e013450617261496e636c7573696f6e0c54417661696c6162696c6974794269746669656c6473000104050105f907040004650120546865206c6174657374206269746669656c6420666f7220656163682076616c696461746f722c20726566657272656420746f20627920746865697220696e64657820696e207468652076616c696461746f72207365742e4c50656e64696e67417661696c6162696c697479000104055101fd07040004b42043616e646964617465732070656e64696e6720617661696c6162696c6974792062792060506172614964602e7850656e64696e67417661696c6162696c697479436f6d6d69746d656e7473000104055101150504000405012054686520636f6d6d69746d656e7473206f662063616e646964617465732070656e64696e6720617661696c6162696c6974792c2062792060506172614964602e01e10401450100010108353050617261496e686572656e74013050617261496e686572656e740420496e636c75646564000080040018ec20576865746865722074686520706172617320696e686572656e742077617320696e636c756465642077697468696e207468697320626c6f636b2e0069012054686520604f7074696f6e3c28293e60206973206566666563746976656c7920612060626f6f6c602c20627574206974206e6576657220686974732073746f7261676520696e2074686520604e6f6e65602076617269616e74bc2064756520746f207468652067756172616e74656573206f66204652414d4527732073746f7261676520415049732e004901204966207468697320697320604e6f6e65602061742074686520656e64206f662074686520626c6f636b2c2077652070616e696320616e642072656e6465722074686520626c6f636b20696e76616c69642e01e50400000105083634506172615363686564756c65720134506172615363686564756c6572183c56616c696461746f7247726f757073010009080400186d0120416c6c207468652076616c696461746f722067726f7570732e204f6e6520666f72206561636820636f72652e20496e64696365732061726520696e746f206041637469766556616c696461746f727360202d206e6f74207468656d012062726f6164657220736574206f6620506f6c6b61646f742076616c696461746f72732c2062757420696e7374656164206a7573742074686520737562736574207573656420666f722070617261636861696e7320647572696e673820746869732073657373696f6e2e00810120426f756e643a20546865206e756d626572206f6620636f726573206973207468652073756d206f6620746865206e756d62657273206f662070617261636861696e7320616e642070617261746872656164206d756c7469706c65786572732e810120526561736f6e61626c792c203130302d313030302e2054686520646f6d696e616e7420666163746f7220697320746865206e756d626572206f662076616c696461746f72733a207361666520757070657220626f756e642061742031306b2e3c50617261746872656164517565756501000d081400000000001019012041207175657565206f66207570636f6d696e6720636c61696d7320616e6420776869636820636f726520746865792073686f756c64206265206d6170706564206f6e746f2e00150120546865206e756d626572206f662071756575656420636c61696d7320697320626f756e6465642061742074686520607363686564756c696e675f6c6f6f6b6168656164605501206d756c7469706c69656420627920746865206e756d626572206f662070617261746872656164206d756c7469706c6578657220636f7265732e20526561736f6e61626c792c203130202a203530203d203530302e44417661696c6162696c697479436f726573010021080400209d01204f6e6520656e74727920666f72206561636820617661696c6162696c69747920636f72652e20456e74726965732061726520604e6f6e65602069662074686520636f7265206973206e6f742063757272656e746c79206f636375706965642e2043616e206265c82074656d706f726172696c792060536f6d6560206966207363686564756c656420627574206e6f74206f636375706965642e41012054686520692774682070617261636861696e2062656c6f6e677320746f20746865206927746820636f72652c2077697468207468652072656d61696e696e6720636f72657320616c6c206265696e676420706172617468726561642d6d756c7469706c65786572732e00d820426f756e64656420627920746865206d6178696d756d206f6620656974686572206f662074686573652074776f2076616c7565733ae42020202a20546865206e756d626572206f662070617261636861696e7320616e642070617261746872656164206d756c7469706c657865727345012020202a20546865206e756d626572206f662076616c696461746f727320646976696465642062792060636f6e66696775726174696f6e2e6d61785f76616c696461746f72735f7065725f636f7265602e5050617261746872656164436c61696d496e64657801002d08040010590120416e20696e646578207573656420746f20656e737572652074686174206f6e6c79206f6e6520636c61696d206f6e206120706172617468726561642065786973747320696e20746865207175657565206f72206973b42063757272656e746c79206265696e672068616e646c656420627920616e206f6363757069656420636f72652e007d0120426f756e64656420627920746865206e756d626572206f66207061726174687265616420636f72657320616e64207363686564756c696e67206c6f6f6b61686561642e20526561736f6e61626c792c203130202a203530203d203530302e4453657373696f6e5374617274426c6f636b010010100000000018a5012054686520626c6f636b206e756d626572207768657265207468652073657373696f6e207374617274206f636375727265642e205573656420746f20747261636b20686f77206d616e792067726f757020726f746174696f6e732068617665206f636375727265642e005501204e6f7465207468617420696e2074686520636f6e74657874206f662070617261636861696e73206d6f64756c6573207468652073657373696f6e206368616e6765206973207369676e616c656420647572696e6761012074686520626c6f636b20616e6420656e61637465642061742074686520656e64206f662074686520626c6f636b20286174207468652066696e616c697a6174696f6e2073746167652c20746f206265206578616374292e5901205468757320666f7220616c6c20696e74656e747320616e6420707572706f7365732074686520656666656374206f66207468652073657373696f6e206368616e6765206973206f6273657276656420617420746865650120626c6f636b20666f6c6c6f77696e67207468652073657373696f6e206368616e67652c20626c6f636b206e756d626572206f66207768696368207765207361766520696e20746869732073746f726167652076616c75652e245363686564756c656401003108040018e02043757272656e746c79207363686564756c656420636f726573202d20667265652062757420757020746f206265206f636375706965642e004d0120426f756e64656420627920746865206e756d626572206f6620636f7265733a206f6e6520666f7220656163682070617261636861696e20616e642070617261746872656164206d756c7469706c657865722e00fd01205468652076616c756520636f6e7461696e656420686572652077696c6c206e6f742062652076616c69642061667465722074686520656e64206f66206120626c6f636b2e2052756e74696d6520415049732073686f756c64206265207573656420746f2064657465726d696e65207363686564756c656420636f7265732f6020666f7220746865207570636f6d696e6720626c6f636b2e000000003714506172617301145061726173442850617261636861696e7301002d08040004350120416c6c2070617261636861696e732e204f72646572656420617363656e64696e672062792060506172614964602e20506172617468726561647320617265206e6f7420696e636c756465642e38506172614c6966656379636c65730001040551013d08040004bc205468652063757272656e74206c6966656379636c65206f66206120616c6c206b6e6f776e2050617261204944732e1448656164730001040551016901040004a02054686520686561642d64617461206f66206576657279207265676973746572656420706172612e3c43757272656e74436f646548617368000104055101650104000cb4205468652076616c69646174696f6e20636f64652068617368206f66206576657279206c69766520706172612e00e420436f72726573706f6e64696e6720636f64652063616e206265207265747269657665642077697468205b60436f6465427948617368605d2e3050617374436f646548617368000104054108650104001061012041637475616c207061737420636f646520686173682c20696e646963617465642062792074686520706172612069642061732077656c6c2061732074686520626c6f636b206e756d6265722061742077686963682069744420626563616d65206f757464617465642e00e420436f72726573706f6e64696e6720636f64652063616e206265207265747269657665642077697468205b60436f6465427948617368605d2e3050617374436f64654d65746101010405510145080800000c4901205061737420636f6465206f662070617261636861696e732e205468652070617261636861696e73207468656d73656c766573206d6179206e6f74206265207265676973746572656420616e796d6f72652c49012062757420776520616c736f206b65657020746865697220636f6465206f6e2d636861696e20666f72207468652073616d6520616d6f756e74206f662074696d65206173206f7574646174656420636f6465b420746f206b65657020697420617661696c61626c6520666f72207365636f6e6461727920636865636b6572732e3c50617374436f64655072756e696e6701005108040018a1012057686963682070617261732068617665207061737420636f64652074686174206e65656473207072756e696e6720616e64207468652072656c61792d636861696e20626c6f636b2061742077686963682074686520636f646520776173207265706c616365642e8101204e6f746520746861742074686973206973207468652061637475616c20686569676874206f662074686520696e636c7564656420626c6f636b2c206e6f74207468652065787065637465642068656967687420617420776869636820746865ec20636f6465207570677261646520776f756c64206265206170706c6965642c20616c74686f7567682074686579206d617920626520657175616c2e9101205468697320697320746f20656e737572652074686520656e7469726520616363657074616e636520706572696f6420697320636f76657265642c206e6f7420616e206f666673657420616363657074616e636520706572696f64207374617274696e6749012066726f6d207468652074696d65206174207768696368207468652070617261636861696e20706572636569766573206120636f6465207570677261646520617320686176696e67206f636375727265642e5501204d756c7469706c6520656e747269657320666f7220612073696e676c65207061726120617265207065726d69747465642e204f72646572656420617363656e64696e6720627920626c6f636b206e756d6265722e48467574757265436f646555706772616465730001040551011004000c29012054686520626c6f636b206e756d6265722061742077686963682074686520706c616e6e656420636f6465206368616e676520697320657870656374656420666f72206120706172612e650120546865206368616e67652077696c6c206265206170706c696564206166746572207468652066697273742070617261626c6f636b20666f72207468697320494420696e636c75646564207768696368206578656375746573190120696e2074686520636f6e74657874206f6620612072656c617920636861696e20626c6f636b20776974682061206e756d626572203e3d206065787065637465645f6174602e38467574757265436f646548617368000104055101650104000c9c205468652061637475616c2066757475726520636f64652068617368206f66206120706172612e00e420436f72726573706f6e64696e6720636f64652063616e206265207265747269657665642077697468205b60436f6465427948617368605d2e5055706772616465476f41686561645369676e616c0001040551015508040024a10120546869732069732075736564206279207468652072656c61792d636861696e20746f20636f6d6d756e696361746520746f20612070617261636861696e206120676f2d6168656164207769746820696e2074686520757067726164652070726f6365647572652e00750120546869732076616c756520697320616273656e74207768656e20746865726520617265206e6f207570677261646573207363686564756c6564206f7220647572696e67207468652074696d65207468652072656c617920636861696e7d0120706572666f726d732074686520636865636b732e20497420697320736574206174207468652066697273742072656c61792d636861696e20626c6f636b207768656e2074686520636f72726573706f6e64696e672070617261636861696e65012063616e207377697463682069747320757067726164652066756e6374696f6e2e20417320736f6f6e206173207468652070617261636861696e277320626c6f636b20697320696e636c756465642c207468652076616c756558206765747320726573657420746f20604e6f6e65602e006501204e4f544520746861742074686973206669656c6420697320757365642062792070617261636861696e7320766961206d65726b6c652073746f726167652070726f6f66732c207468657265666f7265206368616e67696e67c42074686520666f726d61742077696c6c2072657175697265206d6967726174696f6e206f662070617261636861696e732e60557067726164655265737472696374696f6e5369676e616c0001040551015908040024690120546869732069732075736564206279207468652072656c61792d636861696e20746f20636f6d6d756e6963617465207468617420746865726520617265207265737472696374696f6e7320666f7220706572666f726d696e677c20616e207570677261646520666f7220746869732070617261636861696e2e0059012054686973206d617920626520612062656361757365207468652070617261636861696e20776169747320666f7220746865207570677261646520636f6f6c646f776e20746f206578706972652e20416e6f746865726d0120706f74656e7469616c207573652063617365206973207768656e2077652077616e7420746f20706572666f726d20736f6d65206d61696e74656e616e63652028737563682061732073746f72616765206d6967726174696f6e29e020776520636f756c6420726573747269637420757067726164657320746f206d616b65207468652070726f636573732073696d706c65722e006501204e4f544520746861742074686973206669656c6420697320757365642062792070617261636861696e7320766961206d65726b6c652073746f726167652070726f6f66732c207468657265666f7265206368616e67696e67c42074686520666f726d61742077696c6c2072657175697265206d6967726174696f6e206f662070617261636861696e732e4055706772616465436f6f6c646f776e730100510804000c510120546865206c697374206f662070617261636861696e73207468617420617265206177616974696e6720666f722074686569722075706772616465207265737472696374696f6e20746f20636f6f6c646f776e2e008c204f72646572656420617363656e64696e6720627920626c6f636b206e756d6265722e405570636f6d696e67557067726164657301005108040010590120546865206c697374206f66207570636f6d696e6720636f64652075706772616465732e2045616368206974656d20697320612070616972206f66207768696368207061726120706572666f726d73206120636f6465e8207570677261646520616e642061742077686963682072656c61792d636861696e20626c6f636b2069742069732065787065637465642061742e008c204f72646572656420617363656e64696e6720627920626c6f636b206e756d6265722e30416374696f6e73517565756501010405102d0804000415012054686520616374696f6e7320746f20706572666f726d20647572696e6720746865207374617274206f6620612073706563696669632073657373696f6e20696e6465782e505570636f6d696e67506172617347656e657369730001040551015d08040004a0205570636f6d696e6720706172617320696e7374616e74696174696f6e20617267756d656e74732e38436f64654279486173685265667301010406650110100000000004290120546865206e756d626572206f66207265666572656e6365206f6e207468652076616c69646174696f6e20636f646520696e205b60436f6465427948617368605d2073746f726167652e28436f64654279486173680001040665012505040010902056616c69646174696f6e20636f64652073746f7265642062792069747320686173682e00310120546869732073746f7261676520697320636f6e73697374656e742077697468205b60467574757265436f646548617368605d2c205b6043757272656e74436f646548617368605d20616e6448205b6050617374436f646548617368605d2e01510501750100016108382c496e697469616c697a6572012c496e697469616c697a65720838486173496e697469616c697a656400008004002021012057686574686572207468652070617261636861696e73206d6f64756c65732068617665206265656e20696e697469616c697a65642077697468696e207468697320626c6f636b2e0025012053656d616e746963616c6c7920612060626f6f6c602c2062757420746869732067756172616e746565732069742073686f756c64206e65766572206869742074686520747269652c6901206173207468697320697320636c656172656420696e20606f6e5f66696e616c697a656020616e64204672616d65206f7074696d697a657320604e6f6e65602076616c75657320746f20626520656d7074792076616c7565732e007d0120417320612060626f6f6c602c20607365742866616c7365296020616e64206072656d6f766528296020626f7468206c65616420746f20746865206e6578742060676574282960206265696e672066616c73652c20627574206f6e65206f667901207468656d2077726974657320746f20746865207472696520616e64206f6e6520646f6573206e6f742e205468697320636f6e667573696f6e206d616b657320604f7074696f6e3c28293e60206d6f7265207375697461626c6520666f7280207468652073656d616e74696373206f662074686973207661726961626c652e58427566666572656453657373696f6e4368616e6765730100650804001c59012042756666657265642073657373696f6e206368616e67657320616c6f6e6720776974682074686520626c6f636b206e756d62657220617420776869636820746865792073686f756c64206265206170706c6965642e005d01205479706963616c6c7920746869732077696c6c20626520656d707479206f72206f6e6520656c656d656e74206c6f6e672e2041706172742066726f6d20746861742074686973206974656d206e65766572206869747334207468652073746f726167652e00690120486f776576657220746869732069732061206056656360207265676172646c65737320746f2068616e646c6520766172696f757320656467652063617365732074686174206d6179206f636375722061742072756e74696d65c0207570677261646520626f756e646172696573206f7220696620676f7665726e616e636520696e74657276656e65732e015505000000390c446d70010c446d700854446f776e776172644d6573736167655175657565730101040551016d08040004d02054686520646f776e77617264206d657373616765732061646472657373656420666f722061206365727461696e20706172612e64446f776e776172644d65737361676551756575654865616473010104055101248000000000000000000000000000000000000000000000000000000000000000001c25012041206d617070696e6720746861742073746f7265732074686520646f776e77617264206d657373616765207175657565204d5143206865616420666f72206561636820706172612e00902045616368206c696e6b20696e207468697320636861696e20686173206120666f726d3a78206028707265765f686561642c20422c2048284d2929602c207768657265e8202d2060707265765f68656164603a206973207468652070726576696f757320686561642068617368206f72207a65726f206966206e6f6e652e2101202d206042603a206973207468652072656c61792d636861696e20626c6f636b206e756d62657220696e2077686963682061206d6573736167652077617320617070656e6465642ed4202d206048284d29603a206973207468652068617368206f6620746865206d657373616765206265696e6720617070656e6465642e0159050000003a0c556d70010c556d70184c52656c61794469737061746368517565756573010104055101c501040018710120546865206d657373616765732077616974696e6720746f2062652068616e646c6564206279207468652072656c61792d636861696e206f726967696e6174696e672066726f6d2061206365727461696e2070617261636861696e2e007901204e6f7465207468617420736f6d6520757077617264206d65737361676573206d696768742068617665206265656e20616c72656164792070726f6365737365642062792074686520696e636c7573696f6e206c6f6769632e20452e672e74206368616e6e656c206d616e6167656d656e74206d657373616765732e00a820546865206d65737361676573206172652070726f63657373656420696e204649464f206f726465722e5852656c61794469737061746368517565756553697a65010104055101742000000000000000002c45012053697a65206f6620746865206469737061746368207175657565732e204361636865732073697a6573206f66207468652071756575657320696e206052656c617944697370617463685175657565602e00f0204669727374206974656d20696e20746865207475706c652069732074686520636f756e74206f66206d6573736167657320616e64207365636f6e64e02069732074686520746f74616c206c656e6774682028696e20627974657329206f6620746865206d657373616765207061796c6f6164732e007901204e6f74652074686174207468697320697320616e20617578696c69617279206d617070696e673a206974277320706f737369626c6520746f2074656c6c2074686520627974652073697a6520616e6420746865206e756d626572206f667901206d65737361676573206f6e6c79206c6f6f6b696e67206174206052656c61794469737061746368517565756573602e2054686973206d617070696e6720697320736570617261746520746f2061766f69642074686520636f7374206f663d01206c6f6164696e67207468652077686f6c65206d657373616765207175657565206966206f6e6c792074686520746f74616c2073697a6520616e6420636f756e74206172652072657175697265642e002c20496e76617269616e743a4501202d2054686520736574206f66206b6579732073686f756c642065786163746c79206d617463682074686520736574206f66206b657973206f66206052656c61794469737061746368517565756573602e344e65656473446973706174636801002d08040014190120546865206f726465726564206c697374206f6620605061726149646073207468617420686176652061206052656c6179446973706174636851756575656020656e7472792e002c20496e76617269616e743a3501202d2054686520736574206f66206974656d732066726f6d207468697320766563746f722073686f756c642062652065786163746c792074686520736574206f6620746865206b65797320696ed82020206052656c617944697370617463685175657565736020616e64206052656c61794469737061746368517565756553697a65602e684e6578744469737061746368526f756e64537461727457697468000051010400147d012054686973206973207468652070617261207468617420676574732077696c6c20676574206469737061746368656420666972737420647572696e6720746865206e6578742075707761726420646973706174636861626c652071756575654420657865637574696f6e20726f756e642e002c20496e76617269616e743a0d01202d2049662060536f6d65287061726129602c207468656e20607061726160206d7573742062652070726573656e7420696e20604e656564734469737061746368602e284f7665727765696768740001040520750804000c050120546865206d657373616765732074686174206578636565646564206d617820696e646976696475616c206d65737361676520776569676874206275646765742e00d4205468657365206d65737361676573207374617920746865726520756e74696c206d616e75616c6c7920646973706174636865642e3c4f766572776569676874436f756e7401002020000000000000000008690120546865206e756d626572206f66206f766572776569676874206d657373616765732065766572207265636f7264656420696e20604f766572776569676874602028616e64207468757320746865206c6f7765737420667265652020696e646578292e015d05017901000179083b1048726d70011048726d70305c48726d704f70656e4368616e6e656c52657175657374730001040589017d08040018bc2054686520736574206f662070656e64696e672048524d50206f70656e206368616e6e656c2072657175657374732e00c02054686520736574206973206163636f6d70616e6965642062792061206c69737420666f7220697465726174696f6e2e002c20496e76617269616e743a3d01202d20546865726520617265206e6f206368616e6e656c7320746861742065786973747320696e206c69737420627574206e6f7420696e207468652073657420616e6420766963652076657273612e6c48726d704f70656e4368616e6e656c52657175657374734c697374010081080400006c48726d704f70656e4368616e6e656c52657175657374436f756e740101040551011010000000000c65012054686973206d617070696e6720747261636b7320686f77206d616e79206f70656e206368616e6e656c2072657175657374732061726520696e69746961746564206279206120676976656e2073656e64657220706172612e7d0120496e76617269616e743a206048726d704f70656e4368616e6e656c5265717565737473602073686f756c6420636f6e7461696e207468652073616d65206e756d626572206f66206974656d73207468617420686173206028582c205f2960e020617320746865206e756d626572206f66206048726d704f70656e4368616e6e656c52657175657374436f756e746020666f72206058602e7c48726d7041636365707465644368616e6e656c52657175657374436f756e740101040551011010000000000c71012054686973206d617070696e6720747261636b7320686f77206d616e79206f70656e206368616e6e656c2072657175657374732077657265206163636570746564206279206120676976656e20726563697069656e7420706172612e6d0120496e76617269616e743a206048726d704f70656e4368616e6e656c5265717565737473602073686f756c6420636f6e7461696e207468652073616d65206e756d626572206f66206974656d732060285f2c20582960207769746855012060636f6e6669726d6564602073657420746f20747275652c20617320746865206e756d626572206f66206048726d7041636365707465644368616e6e656c52657175657374436f756e746020666f72206058602e6048726d70436c6f73654368616e6e656c52657175657374730001040589018004001c9101204120736574206f662070656e64696e672048524d5020636c6f7365206368616e6e656c20726571756573747320746861742061726520676f696e6720746f20626520636c6f73656420647572696e67207468652073657373696f6e206368616e67652e0101205573656420666f7220636865636b696e67206966206120676976656e206368616e6e656c206973207265676973746572656420666f7220636c6f737572652e00c02054686520736574206973206163636f6d70616e6965642062792061206c69737420666f7220697465726174696f6e2e002c20496e76617269616e743a3d01202d20546865726520617265206e6f206368616e6e656c7320746861742065786973747320696e206c69737420627574206e6f7420696e207468652073657420616e6420766963652076657273612e7048726d70436c6f73654368616e6e656c52657175657374734c697374010081080400003848726d7057617465726d61726b730001040551011004000cb8205468652048524d502077617465726d61726b206173736f6369617465642077697468206561636820706172612e2c20496e76617269616e743a7901202d2065616368207061726120605060207573656420686572652061732061206b65792073686f756c642073617469736679206050617261733a3a69735f76616c69645f70617261285029602077697468696e20612073657373696f6e2e3048726d704368616e6e656c73000104058901850804000cb42048524d50206368616e6e656c2064617461206173736f6369617465642077697468206561636820706172612e2c20496e76617269616e743a7501202d2065616368207061727469636970616e7420696e20746865206368616e6e656c2073686f756c642073617469736679206050617261733a3a69735f76616c69645f70617261285029602077697468696e20612073657373696f6e2e6048726d70496e67726573734368616e6e656c73496e6465780101040551012d08040034590120496e67726573732f65677265737320696e646578657320616c6c6f7720746f2066696e6420616c6c207468652073656e6465727320616e642072656365697665727320676976656e20746865206f70706f736974652c20736964652e20492e652e0021012028612920696e677265737320696e64657820616c6c6f777320746f2066696e6420616c6c207468652073656e6465727320666f72206120676976656e20726563697069656e742e1d01202862292065677265737320696e64657820616c6c6f777320746f2066696e6420616c6c2074686520726563697069656e747320666f72206120676976656e2073656e6465722e003020496e76617269616e74733a8d01202d20666f72206561636820696e677265737320696e64657820656e74727920666f72206050602065616368206974656d2060496020696e2074686520696e6465782073686f756c642070726573656e7420696e206048726d704368616e6e656c73603c2020206173206028492c205029602e8901202d20666f7220656163682065677265737320696e64657820656e74727920666f72206050602065616368206974656d2060456020696e2074686520696e6465782073686f756c642070726573656e7420696e206048726d704368616e6e656c73603c2020206173206028502c204529602e0101202d2074686572652073686f756c64206265206e6f206f746865722064616e676c696e67206368616e6e656c7320696e206048726d704368616e6e656c73602e68202d2074686520766563746f72732061726520736f727465642e5c48726d704567726573734368616e6e656c73496e6465780101040551012d080400004c48726d704368616e6e656c436f6e74656e74730101040589018d08040008ac2053746f7261676520666f7220746865206d6573736167657320666f722065616368206368616e6e656c2e650120496e76617269616e743a2063616e6e6f74206265206e6f6e2d656d7074792069662074686520636f72726573706f6e64696e67206368616e6e656c20696e206048726d704368616e6e656c736020697320604e6f6e65602e4848726d704368616e6e656c44696765737473010104055101950804001cf4204d61696e7461696e732061206d617070696e6720746861742063616e206265207573656420746f20616e7377657220746865207175657374696f6e3a290120576861742070617261732073656e742061206d6573736167652061742074686520676976656e20626c6f636b206e756d62657220666f72206120676976656e2072656365697665722e3020496e76617269616e74733aa8202d2054686520696e6e657220605665633c5061726149643e60206973206e6576657220656d7074792ee8202d2054686520696e6e657220605665633c5061726149643e602063616e6e6f742073746f72652074776f2073616d652060506172614964602e8101202d20546865206f7574657220766563746f7220697320736f7274656420617363656e64696e6720627920626c6f636b206e756d62657220616e642063616e6e6f742073746f72652074776f206974656d732077697468207468652073616d6540202020626c6f636b206e756d6265722e01610501850100019d083c3c5061726153657373696f6e496e666f013c5061726153657373696f6e496e666f0c5041737369676e6d656e744b657973556e736166650100a10804000ca42041737369676e6d656e74206b65797320666f72207468652063757272656e742073657373696f6e2e6d01204e6f7465207468617420746869732041504920697320707269766174652064756520746f206974206265696e672070726f6e6520746f20276f66662d62792d6f6e65272061742073657373696f6e20626f756e6461726965732eac205768656e20696e20646f7562742c20757365206053657373696f6e73602041504920696e73746561642e544561726c6965737453746f72656453657373696f6e010010100000000004010120546865206561726c696573742073657373696f6e20666f722077686963682070726576696f75732073657373696f6e20696e666f2069732073746f7265642e2053657373696f6e730001040610a50804000ca42053657373696f6e20696e666f726d6174696f6e20696e206120726f6c6c696e672077696e646f772e35012053686f756c64206861766520616e20656e74727920696e2072616e676520604561726c6965737453746f72656453657373696f6e2e2e3d43757272656e7453657373696f6e496e646578602e750120446f6573206e6f74206861766520616e7920656e7472696573206265666f7265207468652073657373696f6e20696e64657820696e207468652066697273742073657373696f6e206368616e6765206e6f74696669636174696f6e2e000000003d2452656769737472617201245265676973747261720c2c50656e64696e67537761700001040551015101040004642050656e64696e672073776170206f7065726174696f6e732e145061726173000104055101ad08040010050120416d6f756e742068656c64206f6e206465706f73697420666f722065616368207061726120616e6420746865206f726967696e616c206465706f7369746f722e0091012054686520676976656e206163636f756e7420494420697320726573706f6e7369626c6520666f72207265676973746572696e672074686520636f646520616e6420696e697469616c206865616420646174612c20627574206d6179206f6e6c7920646f350120736f2069662069742069736e27742079657420726567697374657265642e2028416674657220746861742c206974277320757020746f20676f7665726e616e636520746f20646f20736f2e29384e65787446726565506172614964010051011000000000046020546865206e65787420667265652060506172614964602e016505018d01082c506172614465706f73697418400010a5d4e8000000000000000000000008b020546865206465706f73697420746f206265207061696420746f2072756e206120706172617468726561642e3d0120546869732073686f756c6420696e636c7564652074686520636f737420666f722073746f72696e67207468652067656e65736973206865616420616e642076616c69646174696f6e20636f64652e48446174614465706f7369745065724279746518408096980000000000000000000000000004c420546865206465706f73697420746f20626520706169642070657220627974652073746f726564206f6e20636861696e2e01b1084614536c6f74730114536c6f747304184c6561736573010104055101b508040040150120416d6f756e74732068656c64206f6e206465706f73697420666f7220656163682028706f737369626c792066757475726529206c65617365642070617261636861696e2e009901205468652061637475616c20616d6f756e74206c6f636b6564206f6e2069747320626568616c6620627920616e79206163636f756e7420617420616e792074696d6520697320746865206d6178696d756d206f6620746865207365636f6e642076616c756573f0206f6620746865206974656d7320696e2074686973206c6973742077686f73652066697273742076616c756520697320746865206163636f756e742e00610120546865206669727374206974656d20696e20746865206c6973742069732074686520616d6f756e74206c6f636b656420666f72207468652063757272656e74204c6561736520506572696f642e20466f6c6c6f77696e67b0206974656d732061726520666f72207468652073756273657175656e74206c6561736520706572696f64732e006101205468652064656661756c742076616c75652028616e20656d707479206c6973742920696d706c6965732074686174207468652070617261636861696e206e6f206c6f6e6765722065786973747320286f72206e65766572b42065786973746564292061732066617220617320746869732070616c6c657420697320636f6e6365726e65642e00510120496620612070617261636861696e20646f65736e2774206578697374202a7965742a20627574206973207363686564756c656420746f20657869737420696e20746865206675747572652c207468656e20697461012077696c6c206265206c6566742d7061646465642077697468206f6e65206f72206d6f726520604e6f6e65607320746f2064656e6f74652074686520666163742074686174206e6f7468696e672069732068656c64206f6e5d01206465706f73697420666f7220746865206e6f6e2d6578697374656e7420636861696e2063757272656e746c792c206275742069732068656c6420617420736f6d6520706f696e7420696e20746865206675747572652e00dc20497420697320696c6c6567616c20666f72206120604e6f6e65602076616c756520746f20747261696c20696e20746865206c6973742e016905019101082c4c65617365506572696f6410100075120004dc20546865206e756d626572206f6620626c6f636b73206f76657220776869636820612073696e676c6520706572696f64206c617374732e2c4c656173654f6666736574101000100e0004d420546865206e756d626572206f6620626c6f636b7320746f206f66667365742065616368206c6561736520706572696f642062792e01bd08472041756374696f6e73012041756374696f6e73103841756374696f6e436f756e7465720100101000000000048c204e756d626572206f662061756374696f6e73207374617274656420736f206661722e2c41756374696f6e496e666f000074040014f820496e666f726d6174696f6e2072656c6174696e6720746f207468652063757272656e742061756374696f6e2c206966207468657265206973206f6e652e00450120546865206669727374206974656d20696e20746865207475706c6520697320746865206c6561736520706572696f6420696e646578207468617420746865206669727374206f662074686520666f7572510120636f6e746967756f7573206c6561736520706572696f6473206f6e2061756374696f6e20697320666f722e20546865207365636f6e642069732074686520626c6f636b206e756d626572207768656e207468655d012061756374696f6e2077696c6c2022626567696e20746f20656e64222c20692e652e2074686520666972737420626c6f636b206f662074686520456e64696e6720506572696f64206f66207468652061756374696f6e2e3c5265736572766564416d6f756e747300010405c10818040008310120416d6f756e74732063757272656e746c7920726573657276656420696e20746865206163636f756e7473206f662074686520626964646572732063757272656e746c792077696e6e696e673820287375622d2972616e6765732e1c57696e6e696e670001040510c50804000c6101205468652077696e6e696e67206269647320666f722065616368206f66207468652031302072616e67657320617420656163682073616d706c6520696e207468652066696e616c20456e64696e6720506572696f64206f664901207468652063757272656e742061756374696f6e2e20546865206d61702773206b65792069732074686520302d626173656420696e64657820696e746f207468652053616d706c652053697a652e205468651d012066697273742073616d706c65206f662074686520656e64696e6720706572696f6420697320303b20746865206c617374206973206053616d706c652053697a65202d2031602e016d050195011030456e64696e67506572696f64101040190100041d0120546865206e756d626572206f6620626c6f636b73206f76657220776869636820616e2061756374696f6e206d617920626520726574726f6163746976656c7920656e6465642e3053616d706c654c656e6774681010140000000cf020546865206c656e677468206f6620656163682073616d706c6520746f2074616b6520647572696e672074686520656e64696e6720706572696f642e00d42060456e64696e67506572696f6460202f206053616d706c654c656e67746860203d20546f74616c2023206f662053616d706c657338536c6f7452616e6765436f756e74101024000000004c4c65617365506572696f6473506572536c6f741010080000000001d108482443726f77646c6f616e012443726f77646c6f616e101446756e6473000104055101d5080400046820496e666f206f6e20616c6c206f66207468652066756e64732e204e6577526169736501002d080400085501205468652066756e64732074686174206861766520686164206164646974696f6e616c20636f6e747269627574696f6e7320647572696e6720746865206c61737420626c6f636b2e20546869732069732075736564150120696e206f7264657220746f2064657465726d696e652077686963682066756e64732073686f756c64207375626d6974206e6577206f72207570646174656420626964732e30456e64696e6773436f756e74010010100000000004290120546865206e756d626572206f662061756374696f6e732074686174206861766520656e746572656420696e746f20746865697220656e64696e6720706572696f6420736f206661722e344e65787454726965496e646578010010100000000004a820547261636b657220666f7220746865206e65787420617661696c61626c65207472696520696e6465780175050199010c2050616c6c6574496425072070792f6366756e64047101206050616c6c657449646020666f72207468652063726f77646c6f616e2070616c6c65742e20416e20617070726f7072696174652076616c756520636f756c64206265206050616c6c65744964282a622270792f6366756e642229603c4d696e436f6e747269627574696f6e184000743ba40b0000000000000000000000086d0120546865206d696e696d756d20616d6f756e742074686174206d617920626520636f6e747269627574656420696e746f20612063726f77646c6f616e2e2053686f756c6420616c6d6f7374206365727461696e6c7920626520617470206c6561737420604578697374656e7469616c4465706f736974602e3c52656d6f76654b6579734c696d69741010e803000004e4204d6178206e756d626572206f662073746f72616765206b65797320746f2072656d6f7665207065722065787472696e7369632063616c6c2e01dd0849e108042040436865636b5370656356657273696f6ee9081038436865636b547856657273696f6eed081030436865636b47656e65736973f1082438436865636b4d6f7274616c697479f5082428436865636b4e6f6e6365fd08802c436865636b576569676874010980604368617267655472616e73616374696f6e5061796d656e740509804850726576616c6964617465417474657374730909800d09"; - #endregion - - private static MetadataV14? _referenceV14Metadata = null; - public static MetadataV14 ReferenceV14Metadata - { - get - { - if (_referenceV14Metadata is null) - _referenceV14Metadata = new MetadataV14(metadataV14_9110); - - return _referenceV14Metadata; - } - } - - /// - /// Search into and return it ID. - /// If ID doesn't exists, create it - /// - /// V14 types - /// The class to search into the dictionnary - /// - public static TType AddToLookup(PortableRegistry lookup, string classType) - { - return null; - } - - internal static bool? TryFindModuleInV14(string moduleName) - { - return null; - } - - public static TypeDefPrimitive? TryConvertNameToPrimitive(string name) - { - - return name.ToLower() switch - { - "bool" => TypeDefPrimitive.Bool, - "u8" => TypeDefPrimitive.U8, - "u16" => TypeDefPrimitive.U16, - "u32" => TypeDefPrimitive.U32, - "u64" => TypeDefPrimitive.U64, - "u128" => TypeDefPrimitive.U128, - "u256" => TypeDefPrimitive.U256, - "i8" => TypeDefPrimitive.I8, - "i16" => TypeDefPrimitive.I16, - "i32" => TypeDefPrimitive.I32, - "i64" => TypeDefPrimitive.I64, - "i128" => TypeDefPrimitive.I128, - "i256" => TypeDefPrimitive.I256, - "char" => TypeDefPrimitive.Char, - "str" => TypeDefPrimitive.Str, - _ => null - }; - } - - public static (TypeDefEnum, string)? TryConvertNameToComposite(string name) - { - return null; - } - - public static (TypeDefEnum, string)? TryConvertNameToTuple(string name) - { - return null; - } - - public static (TypeDefEnum, string)? TryConvertNameToArray(string name) - { - return null; - } - - public static (TypeDefEnum, string)? TryConvertNameToSequence(string name) - { - var regex = new Regex(@"^(\w+)<([^>]+)>$", RegexOptions.IgnoreCase, TimeSpan.FromSeconds(1)); - - var match = regex.Match(name); - if (match.Success) - { - // Capture the base name - var baseName = match.Groups[1].Value; - - if (!baseName.Equals("Vec", StringComparison.CurrentCultureIgnoreCase)) - { - return null; - } - - // Capture the generic parameters as a single string - var genericParamsString = match.Groups[2].Value; - - // Split the generic parameters string into individual parameters - var genericParams = genericParamsString.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries) - .Select(p => p.Trim()) - .ToList(); - - // A BaseVec should only have one generic parameter - if(genericParams.Count != 1) - { - throw new InvalidOperationException($"TypeDefSequence found but found {genericParams.Count} generic parameters while should be only one"); - } - - return (TypeDefEnum.Sequence, genericParams[0]); - } - - return null; - } - } -} diff --git a/Substrate.NET.Metadata/Conversion/Internal/ConversionBuilder.cs b/Substrate.NET.Metadata/Conversion/Internal/ConversionBuilder.cs index 1c8f423..b102f5d 100644 --- a/Substrate.NET.Metadata/Conversion/Internal/ConversionBuilder.cs +++ b/Substrate.NET.Metadata/Conversion/Internal/ConversionBuilder.cs @@ -1,19 +1,10 @@ -using Microsoft.VisualBasic; -using Substrate.NET.Metadata.Base; +using Substrate.NET.Metadata.Base; using Substrate.NET.Metadata.Base.Portable; using Substrate.NET.Metadata.V14; -using Substrate.NetApi.Model.Meta; using Substrate.NetApi.Model.Types.Base; using Substrate.NetApi.Model.Types.Primitive; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Net.Mime; -using System.Reflection; using System.Runtime.CompilerServices; -using System.Text; using System.Text.RegularExpressions; -using System.Threading.Tasks; using static Substrate.NET.Metadata.Conversion.Internal.SearchV14; using TypeDefExt = Substrate.NetApi.Model.Types.Base.BaseEnumExt< Substrate.NET.Metadata.Base.TypeDefEnum, @@ -27,9 +18,14 @@ Substrate.NET.Metadata.Base.TypeDefBitSequence, Substrate.NetApi.Model.Types.Base.BaseVoid>; +[assembly: InternalsVisibleToAttribute("Substrate.NET.Metadata.Tests")] +[assembly: InternalsVisibleToAttribute("Substrate.NET.Metadata.Node.Tests")] namespace Substrate.NET.Metadata.Conversion.Internal { - public class ConversionElementState + /// + /// Class to keep track of converted types + /// + internal class ConversionElementState { public ConversionElementState(string className, NodeBuilderType nodeBuilderType) { @@ -37,9 +33,24 @@ public ConversionElementState(string className, NodeBuilderType nodeBuilderType) NodeBuilderType = nodeBuilderType; } + /// + /// The Rust struct name + /// public string ClassName { get; set; } + + /// + /// + /// public NodeBuilderType NodeBuilderType { get; set; } + + /// + /// Facultative index found in v14 + /// public uint? IndexFoundInV14 { get; set; } + + /// + /// Facultative index of created node + /// public uint? IndexCreated { get; set; } public bool IsSuccessfullyMapped @@ -56,7 +67,11 @@ public override string ToString() } } - public class ConversionBuilder + /// + /// This class make the transition between metadatas prev v14 and v14 + /// It helps to build the list of PortableType + /// + internal class ConversionBuilder { public List PortableTypes { get; init; } public List ElementsState { get; init; } @@ -75,8 +90,8 @@ public ConversionBuilder(List portableTypes) /// /// Conversion that are not handle by the because it is not necessary or too complex /// - public static List UnhandleConversion = new List() - { + public readonly List NotHandledConversion = + [ "Vec::Call, T::BlockNumber>>>", // v11 => Scheduler => v1 => Storage => Agenda "Vec::Call, T::BlockNumber, T::PalletsOrigin, T::AccountId>>>", // v12 => Scheduler => v25 => Storage => Agenda "Vec::Call, T::BlockNumber, T::PalletsOrigin, T::AccountId>>>", // v12 => Scheduler => v27 => Storage => Agenda @@ -101,41 +116,38 @@ public ConversionBuilder(List portableTypes) "Vec>", // V11 => Parachains => v14 => Storage => DownwardMessageQueue "AccountValidity", // V11 => Purchase => v16 => Event => ValidityUpdated // https://docs.rs/crate/polkadot-runtime-common/latest/source/src/purchase.rs "AccountStatus>", // V11 => Purchase => v16 => Storage => Accounts // https://docs.rs/crate/polkadot-runtime-common/latest/source/src/purchase.rs - }; + ]; + /// + /// Return a new for the next PortableType + /// + /// public U32 GetNewIndex() { if (!PortableTypes.Any()) return new U32(START_INDEX); return new U32(Math.Max(START_INDEX, PortableTypes.Max(x => x.Id.Value) + 1)); } + /// + /// Return the index of the type from a Rust struct name + /// + /// + /// public U32 BuildPortableTypes(string className) { className = className.Replace("\r", string.Empty).Replace("\n", string.Empty); - if (UnhandleConversion.Contains(className)) + if (NotHandledConversion.Contains(className)) return new U32(UnknowIndex!.Value); // Ok this is bad var founded = GetPortableType(className); - if(founded.searchResult == SearchResult.Founded) + if (founded.searchResult == SearchResult.Founded) ElementsState[^1].IndexFoundInV14 = founded.portableType.Id.Value; else ElementsState[^1].IndexCreated = founded.portableType.Id.Value; return founded.portableType.Id; - - //if (founded != null) - //{ - // ElementsState[^1].IndexFoundInV14 = founded.Id.Value; - // return founded.Id; - //} - - //var portableType = CreateNode(className, GetNewIndex()); - - //ElementsState[^1].IndexCreated = portableType.Id.Value; - //return portableType.Id; - } /// @@ -170,7 +182,7 @@ public PortableType LoopFromV14(int index) var portableType = SearchV14.FindTypeByIndex(index); PortableTypes.Add(portableType); - switch(portableType.Ty.TypeDef.Value) + switch (portableType.Ty.TypeDef.Value) { case TypeDefEnum.Composite: var composite = (TypeDefComposite)portableType.Ty.TypeDef.Value2; @@ -186,9 +198,9 @@ public PortableType LoopFromV14(int index) break; case TypeDefEnum.Variant: var variants = (TypeDefVariant)portableType.Ty.TypeDef.Value2; - foreach(var variant in variants.TypeParam.Value) + foreach (var variant in variants.TypeParam.Value) { - foreach (var field in variant.VariantFields.Value) + foreach (var field in variant.VariantFields.Value) { _ = LoopFromV14(field.FieldTy.Value); } @@ -200,7 +212,7 @@ public PortableType LoopFromV14(int index) break; case TypeDefEnum.Tuple: var tuple = (TypeDefTuple)portableType.Ty.TypeDef.Value2; - foreach(var field in tuple.Fields.Value) + foreach (var field in tuple.Fields.Value) { _ = LoopFromV14(field.Value); } @@ -222,347 +234,13 @@ public PortableType LoopFromV14(int index) return portableType; } - /// - /// Create the node from scratch - /// - /// - /// - /// - /// - public static PortableType CreateNode(string className, U32 currentMaxIndex) - { - - var tpf = new TypePortableForm(); - - //if (ExtractPrimitive(className) is TypeDefPrimitive prim) - //{ - // tpf.Path = new Base.Portable.Path(); - // tpf.TypeParams = new BaseVec(); - // tpf.TypeDef = new TypeDefExt(); - // tpf.TypeDef.Create(TypeDefEnum.Primitive, new BaseEnum(prim)); - - // return new PortableType(currentMaxIndex, tpf); - //} - - //var extractGeneric = ExtractGeneric(className); - //if (extractGeneric is not null) - //{ - // var toFind = CustomMapping(HarmonizeTypeName(extractGeneric.Value.genericParameters[0])); - // var index = SearchV14.FindIndexByClass(toFind); - //} - - throw new MetadataConversionException($"Unable to convert {className} to NodeType"); - } - public static string HarmonizeTypeName(string className) { - return className.Replace("T::", "").Replace("", ""); - } - - public static List HarmonizeFullType(string className) - { - var res = new List(); - - if (ExtractMap(className) is (string, string) map) - { - res.Add(map.key); - res.Add(map.value); - return ExtractDeeper(res); - } - - if (ExtractDoubleMap(className) is (string, string, string) doubleMap) - { - res.Add(doubleMap.key1); - res.Add(doubleMap.key2); - res.Add(doubleMap.value); - - return ExtractDeeper(res); - } - - if (ExtractTuple(className) is List tuples) - { - res.AddRange(tuples); - return ExtractDeeper(res); - } - - if (ExtractArray(className) is List array) - { - res.AddRange(array); - return ExtractDeeper(res); - } - - if (ExtractParameters(className) is List parameters) - { - res.AddRange(parameters); - return ExtractDeeper(res); - } - - var extractGeneric = ExtractGeneric(className); - - if (extractGeneric is not null) - { - res.AddRange(extractGeneric.Value.genericParameters); - - return ExtractDeeper(res); - } - - if (ExtractRustGeneric(className) is string param) - { - res.Add(param); - return ExtractDeeper(res); - } - - res.Add(HarmonizeTypeName(className)); - return res; - } - - /// - /// Extract Rust generic from a class name - /// For example ::AccountId => AccountId - /// - /// - /// - internal static string? ExtractRustGeneric(string className) - { - string pattern = @"<[^>]+>::(\w+)"; - - Match match = Regex.Match(className, pattern); - - if (match.Success) - { - return match.Groups[1].Value; - } - - return null; - } - - public static List? ExtractParameters(string className) - { - List result = new(); - - var splitted = className.Split(new[] { "," }, StringSplitOptions.None).Select(x => x.Trim()).ToList(); - result.AddRange(splitted); - - if (splitted.Count > 1) - { - List indexBracketOpen = new(); - List indexBracketClose = new(); - int lastIndexRemoved = 0; - - for (int i = 0; i < splitted.Count; i++) - { - var diff = splitted[i].Count(i => i == '<') - splitted[i].Count(i => i == '>'); - - if (diff > 0) - { - Enumerable.Range(0, diff).ToList().ForEach(x => indexBracketOpen.Add(i)); - } - - if (diff < 0) - { - Enumerable.Range(0, Math.Abs(diff)).ToList().ForEach(x => indexBracketClose.Add(i)); - - if (indexBracketClose.Count == indexBracketOpen.Count) - { - var start = indexBracketOpen.First(); - var end = indexBracketClose.Last(); - - var sub = string.Join(", ", splitted.GetRange(start, end - start + 1)); - - //result.RemoveRange(start - lastIndexRemoved, end - start + 1 - lastIndexRemoved); - Enumerable.Range(start, end - start + 1).ToList().ForEach(x => result.Remove(splitted[x])); - result.Insert(start - lastIndexRemoved, sub); - - lastIndexRemoved = end; - indexBracketOpen.Clear(); - indexBracketClose.Clear(); - } - } - } - - // At the end, let's check if something has changed - return result.First() == className ? null : result; - } - - return null; - } - - private static List? ExtractArray(string className) - { - string pattern = @"\[(.*);\s*(\d+)\]"; - Match match = Regex.Match(className, pattern); - - if (match.Success) - { - //match.Groups[1].Value -> array size - return new List() { match.Groups[1].Value }; - } - - return null; - } - - private static List? ExtractTuple(string className) - { - string pattern = @"\((.*)\)$"; - Match match = Regex.Match(className, pattern); - - if (match.Success) - { - return new List() { match.Groups[1].Value }; - } - - return null; - } - - private static List ExtractDeeper(List res) - { - //if (res.Count > 1) - //{ - for (int i = 0; i < res.Count; i++) - { - var r = HarmonizeFullType(res[i]); - if (r.Count > 1) - { - res.Remove(res[i]); - res.AddRange(r); - i = -1; - } - else - { - res[i] = r[0]; - } - } - //} - - return res; - } - - public static (string key1, string key2, string value)? ExtractDoubleMap(string className) - { - string pattern = @"Key1\s*=\s*([^\/]+)\s*\/\s*Key1Hasher\s*=\s*([^\/]+)\s*\/\s*Key2\s*=\s*([^\/]+)\s*\/\s*Key2Hasher\s*=\s*([^\/]+)\s*\/\s*Value\s*=\s*([^\]]+)"; - - Match match = Regex.Match(className, pattern); - if (match.Success) - { - string key1 = match.Groups[1].Value.Trim(); - string key2 = match.Groups[3].Value.Trim(); - string value = match.Groups[5].Value.Trim(); - return (key1, key2, value); - } - - return null; - } - public static (string key, string value)? ExtractMap(string className) - { - string pattern = @"Key\s*=\s*([^\/]+)\s*\/\s*Value\s*=\s*([^\]]+)"; - - Match match = Regex.Match(className, pattern); - if (match.Success) - { - string key = match.Groups[1].Value.Trim(); - string value = match.Groups[2].Value.Trim(); - return (key, value); - } - - return null; - } - - public static TypeDefPrimitive? ExtractPrimitive(string className) - { - object? res = null; - if (Enum.TryParse(typeof(TypeDefPrimitive), className, true, out res)) - { - return (TypeDefPrimitive)res; - } - - return null; - } - - public static (TypeDefEnum typeDefEnum, List genericParameters)? ExtractGeneric(string className) - { - string pattern = @"([a-zA-Z:]*|)<(.*)>$"; - Match match = Regex.Match(className, pattern); - - if (match.Success) - { - var genericParameters = match.Groups[2].Value; - - // A valid pattern should have the same number of '<' and '>' and '<' should be before '>' - if (!HaveValidParametersPattern(genericParameters)) - { - return null; - } - - var typeDef = GetTypeDefFromString(match.Groups[1].Value); - - List genericValue = new(); - if (!GenericValueToIgnore.Contains(genericParameters)) - { - genericValue.Add(genericParameters); - } - - // A composite is basically a class, so let's add it - if (typeDef == TypeDefEnum.Composite) - { - genericValue.Insert(0, match.Groups[1].Value); - } - return (typeDef, genericValue); - } - - return null; + return className + .Replace("T::", "") + .Replace("", ""); } - /// - /// A valid pattern should have the same number of '<' and '>' and '<' should be before '>' - /// - /// - /// - private static bool HaveValidParametersPattern(string genericParameters) - { - var nbOpenBracket = genericParameters.Count(x => x == '<'); - var nbClosedBracket = genericParameters.Count(x => x == '<'); - - return nbOpenBracket == nbClosedBracket && - nbOpenBracket == 0 || (genericParameters.IndexOf('<') < genericParameters.IndexOf('>')); - } - - public static string[] GenericValueToIgnore = ["T"]; - - public static TypeDefEnum GetTypeDefFromString(string genericType) - { - return genericType switch - { - "Vec" => TypeDefEnum.Sequence, - _ => TypeDefEnum.Composite - }; - } - - public static string CustomMapping(string className) - { - return className switch - { - "AccountId" => "AccountId32", - "TaskAddress" => "TaskAddress", - "Vec" => "Vec>", - "Vec" => "Vec", - "Vec<(AccountId, Balance)>" => "Vec<(::AccountId, BalanceOf)>", - //"sp_std::marker::PhantomData<(AccountId, Event)>" => "BaseVoid", // Pas sur de moi - "Timepoint" => "Timepoint", - "limits::BlockWeights" => "BlockWeights", - "limits::BlockLength" => "BlockLength", - "TransactionPriority" => "u64", - "& 'static[u8]" => "vec", - "&[u8]" => "vec", - "Moment" => "u64", - "ModuleId" => "PalletId", - "LeasePeriod" => "LeasePeriodOf", - "weights::ExtrinsicsWeight" => "PerDispatchClass", - _ => className - }; - } - - - /// /// Create a pallet runtime events /// @@ -587,7 +265,7 @@ private U32 AddRuntimeLookup(string objType, string palletName, Variant[] varian var path = new Base.Portable.Path(); path.Create(new List() { palletName, "pallet", objType }.Select(x => new Str(x)).ToArray()); - var typeParams = new BaseVec([ + var typeParams = new BaseVec([ new TypeParameter(new Str("T"), new BaseOpt()) ]); @@ -620,7 +298,6 @@ public PalletEventMetadataV14 ConvertToEventV14(string eventName, string eventTy public void CreateEventBlockchainRuntimeEvent() { - //var portableType = SearchV14.FindTypeByIndex(SearchV14.PolkadotRuntimeEventIndex); var node = new TypeDefVariant(); node.TypeParam = new BaseVec(new Variant[0]); @@ -634,6 +311,9 @@ public void AddPalletEventBlockchainRuntimeEvent(Variant variant) var tdv = portableType.Ty.TypeDef.Value2 as TypeDefVariant; + if (tdv is null) + throw new MetadataConversionException("The type is not a variant"); + var list = tdv.TypeParam.Value.ToList(); list.Add(variant); @@ -659,18 +339,18 @@ public PortableType CreateUnknownNode() public PortableType CreatePortableTypeFromNode(BaseType node, List? path = null, List? docs = null) { - + var portableType = new PortableType(); portableType.Id = GetNewIndex(); portableType.Ty = new TypePortableForm(); - if(docs is not null) + if (docs is not null) portableType.Ty.Docs = new BaseVec(docs.Select(x => new Str(x)).ToArray()); else portableType.Ty.Docs = new BaseVec(new Str[0]); - if(path is not null) + if (path is not null) { portableType.Ty.Path = new Base.Portable.Path(); portableType.Ty.Path.Create(path.Select(x => new Str(x)).ToArray()); @@ -732,7 +412,7 @@ public void CreateRuntime() var emptyComposite = new TypeDefComposite(); emptyComposite.Fields = new BaseVec(new Field[0]); - CreatePortableTypeFromNode(node: emptyComposite, path: new List() { "conversion_runtime", "runtime" }); + CreatePortableTypeFromNode(node: emptyComposite, path: new List() { "conversion_runtime", "runtime" }); } #endregion } diff --git a/Substrate.NET.Metadata/Conversion/Internal/ConversionBuilderTree.cs b/Substrate.NET.Metadata/Conversion/Internal/ConversionBuilderTree.cs index 8d95998..96710d9 100644 --- a/Substrate.NET.Metadata/Conversion/Internal/ConversionBuilderTree.cs +++ b/Substrate.NET.Metadata/Conversion/Internal/ConversionBuilderTree.cs @@ -12,12 +12,14 @@ namespace Substrate.NET.Metadata.Conversion.Internal { public static class ConversionBuilderTree { + public static string[] GenericValueToIgnore { get; set; } = ["T"]; + public static string HarmonizeTypeName(string className) { return className.Replace("T::", ""); } - public static NodeBuilderType Build(NodeBuilderType nodeBuilderType) + internal static NodeBuilderType Build(NodeBuilderType nodeBuilderType) { if (ExtractTuple(nodeBuilderType) is NodeBuilderTypeTuple tuples && nodeBuilderType is NodeBuilderTypeUndefined) @@ -40,7 +42,7 @@ public static NodeBuilderType Build(NodeBuilderType nodeBuilderType) if (ExtractPrimitive(nodeBuilderType) is NodeBuilderTypePrimitive primitive && nodeBuilderType is NodeBuilderTypeUndefined) { nodeBuilderType = primitive!; - return primitive; + //return primitive; } if (nodeBuilderType is NodeBuilderTypeUndefined) @@ -69,42 +71,15 @@ public static NodeBuilderType Build(NodeBuilderType nodeBuilderType) } } - //return new NodeBuilderTypeComposite(className); return nodeBuilderType; - - - - //if (ExtractRustGeneric(className) is string param) - //{ - // res.Add(param); - // return ExtractDeeper(res); - //} - - //res.Add(HarmonizeTypeName(className)); - //return res; } /// - /// Extract Rust generic from a class name - /// For example ::AccountId => AccountId + /// Extract parameters from a class name /// /// /// - internal static string? ExtractRustGeneric(string className) - { - string pattern = @"<[^>]+>::(\w+)"; - - Match match = Regex.Match(className, pattern); - - if (match.Success) - { - return match.Groups[1].Value; - } - - return null; - } - - public static List? ExtractParameters(string className) + internal static List? ExtractParameters(string className) { List result = new(); @@ -139,7 +114,6 @@ public static NodeBuilderType Build(NodeBuilderType nodeBuilderType) var sub = string.Join(", ", splitted.GetRange(start, end - start + 1)); - //result.RemoveRange(start - lastIndexRemoved, end - start + 1 - lastIndexRemoved); Enumerable.Range(start, end - start + 1).ToList().ForEach(x => result.Remove(splitted[x])); result.Insert(start - lastIndexRemoved, sub); @@ -157,58 +131,13 @@ public static NodeBuilderType Build(NodeBuilderType nodeBuilderType) return null; } - //public static List? ExtractParameters(string className) - //{ - // List result = new(); - - // var splitted = className.Split(new[] { "," }, StringSplitOptions.None).Select(x => x.Trim()).ToList(); - // result.AddRange(splitted.Select(x => new NodeBuilderTypeUndefined(x))); - - // if (splitted.Count > 1) - // { - // List indexBracketOpen = new(); - // List indexBracketClose = new(); - // int lastIndexRemoved = 0; - - // for (int i = 0; i < splitted.Count; i++) - // { - // var diff = splitted[i].Count(i => i == '<') - splitted[i].Count(i => i == '>'); - - // if (diff > 0) - // { - // Enumerable.Range(0, diff).ToList().ForEach(x => indexBracketOpen.Add(i)); - // } - - // if (diff < 0) - // { - // Enumerable.Range(0, Math.Abs(diff)).ToList().ForEach(x => indexBracketClose.Add(i)); - - // if (indexBracketClose.Count == indexBracketOpen.Count) - // { - // var start = indexBracketOpen.First(); - // var end = indexBracketClose.Last(); - - // var sub = string.Join(", ", splitted.GetRange(start, end - start + 1)); - - // //result.RemoveRange(start - lastIndexRemoved, end - start + 1 - lastIndexRemoved); - // Enumerable.Range(start, end - start + 1).ToList().ForEach(x => result.Remove(new NodeBuilderTypeUndefined(splitted[x]))); - // result.Insert(start - lastIndexRemoved, new NodeBuilderTypeUndefined(sub)); - - // lastIndexRemoved = end; - // indexBracketOpen.Clear(); - // indexBracketClose.Clear(); - // } - // } - // } - - // // At the end, let's check if something has changed - // return result.First() == new NodeBuilderTypeUndefined(className) ? null : result; - // } - - // return null; - //} - - private static NodeBuilderTypeArray? ExtractArray(NodeBuilderType node) + /// + /// Extract an array from a class name + /// For example : [u8; 4] will build an NodeBuilderTypeArray with type u8 with a 4 length + /// + /// + /// + internal static NodeBuilderTypeArray? ExtractArray(NodeBuilderType node) { string pattern = @"\[(.*);\s*(\d+)\]"; Match match = Regex.Match(node.Adapted, pattern); @@ -230,7 +159,7 @@ public static NodeBuilderType Build(NodeBuilderType nodeBuilderType) return null; } - private static NodeBuilderTypeTuple? ExtractTuple(NodeBuilderType node) + internal static NodeBuilderTypeTuple? ExtractTuple(NodeBuilderType node) { string pattern = @"\((.*)\)$"; Match match = Regex.Match(node.Adapted, pattern); @@ -253,60 +182,12 @@ public static NodeBuilderType Build(NodeBuilderType nodeBuilderType) return null; } - //private static List ExtractDeeper(NodeBuilderType nodeBuilderType, string content) - //{ - // //if (res.Count > 1) - // //{ - // for (int i = 0; i < res.Count; i++) - // { - // var r = Build(res[i]); - // if (r.Count > 1) - // { - // res.Remove(res[i]); - // res.AddRange(r); - // i = -1; - // } - // else - // { - // res[i] = r[0]; - // } - // } - // //} - - // return res; - //} - - public static (string key1, string key2, string value)? ExtractDoubleMap(string className) - { - string pattern = @"Key1\s*=\s*([^\/]+)\s*\/\s*Key1Hasher\s*=\s*([^\/]+)\s*\/\s*Key2\s*=\s*([^\/]+)\s*\/\s*Key2Hasher\s*=\s*([^\/]+)\s*\/\s*Value\s*=\s*([^\]]+)"; - - Match match = Regex.Match(className, pattern); - if (match.Success) - { - string key1 = match.Groups[1].Value.Trim(); - string key2 = match.Groups[3].Value.Trim(); - string value = match.Groups[5].Value.Trim(); - return (key1, key2, value); - } - - return null; - } - public static (string key, string value)? ExtractMap(string className) - { - string pattern = @"Key\s*=\s*([^\/]+)\s*\/\s*Value\s*=\s*([^\]]+)"; - - Match match = Regex.Match(className, pattern); - if (match.Success) - { - string key = match.Groups[1].Value.Trim(); - string value = match.Groups[2].Value.Trim(); - return (key, value); - } - - return null; - } - - public static NodeBuilderTypePrimitive? ExtractPrimitive(NodeBuilderType node) + /// + /// Convert a primitive string to a NodeBuilderTypePrimitive + /// + /// + /// + internal static NodeBuilderTypePrimitive? ExtractPrimitive(NodeBuilderType node) { object? res = null; if (Enum.TryParse(typeof(TypeDefPrimitive), node.Adapted, true, out res)) @@ -317,7 +198,13 @@ public static (string key, string value)? ExtractMap(string className) return null; } - public static NodeBuilderType? ExtractGeneric(NodeBuilderType node) + /// + /// Convert a class name to a generic class + /// + /// + /// + /// + internal static NodeBuilderType? ExtractGeneric(NodeBuilderType node) { string pattern = @"([a-zA-Z:]*|)<(.*)>$"; Match match = Regex.Match(node.Adapted, pattern); @@ -387,9 +274,7 @@ private static bool HaveValidParametersPattern(string genericParameters) nbOpenBracket == 0 || (genericParameters.IndexOf('<') < genericParameters.IndexOf('>')); } - public static string[] GenericValueToIgnore = ["T"]; - - public static TypeDefEnum GetTypeDefFromString(string genericType) + private static TypeDefEnum GetTypeDefFromString(string genericType) { return genericType switch { diff --git a/Substrate.NET.Metadata/Conversion/Internal/ConversionUtils.cs b/Substrate.NET.Metadata/Conversion/Internal/ConversionUtils.cs index a500932..87a48a8 100644 --- a/Substrate.NET.Metadata/Conversion/Internal/ConversionUtils.cs +++ b/Substrate.NET.Metadata/Conversion/Internal/ConversionUtils.cs @@ -10,6 +10,14 @@ namespace Substrate.NET.Metadata.Conversion.Internal { internal static class ConversionUtils { + /// + /// Check if the array1 ends with array2 + /// Example [1, 2, 3, 4, 5] ends with [4, 5] => true + /// + /// + /// + /// + /// internal static bool EndsWithArray(T[] array1, T[] array2) { if (array2.Length > array1.Length) @@ -28,6 +36,13 @@ internal static bool EndsWithArray(T[] array1, T[] array2) return true; } + /// + /// Check if the array1 array2 are identical + /// + /// + /// + /// + /// internal static bool AreArraysIdentical(T[] array1, T[] array2) { if (array1.Length != array2.Length) @@ -46,11 +61,22 @@ internal static bool AreArraysIdentical(T[] array1, T[] array2) return true; } + /// + /// Shortcut to check if the Option is None + /// + /// + /// internal static bool IsNone(this Variant variant) { return variant.Name.Value.Equals("None", StringComparison.CurrentCultureIgnoreCase) && variant.VariantFields.Value.Length == 0; } + /// + /// Shortcut to check if the Option is Some(index) + /// + /// + /// + /// internal static bool IsSome(this Variant variant, int index) { return variant.VariantFields.Value.Length == 1 && (int)variant.VariantFields.Value[0].FieldTy.Value == index; diff --git a/Substrate.NET.Metadata/Conversion/Internal/MetadataTree.cs b/Substrate.NET.Metadata/Conversion/Internal/MetadataTree.cs deleted file mode 100644 index 5ec4105..0000000 --- a/Substrate.NET.Metadata/Conversion/Internal/MetadataTree.cs +++ /dev/null @@ -1,194 +0,0 @@ -using Newtonsoft.Json.Converters; -using Newtonsoft.Json; -using Substrate.NetApi.Model.Meta; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Substrate.NET.Metadata.Base; -using Substrate.NetApi.Model.Types.Primitive; -using Substrate.NetApi.Model.Types.Base; - -namespace Substrate.NET.Metadata.Conversion.Internal -{ - public class NodeType - { - public U32 Id { get; set; } - - public Base.Portable.Path Path { get; set; } - - public NodeTypeParam[] TypeParams { get; set; } = new NodeTypeParam[0]; - - public TypeDefEnum TypeDef { get; set; } - - public BaseVec Docs { get; set; } - } - - public class NodeTypeParam - { - [JsonProperty(NullValueHandling = NullValueHandling.Ignore)] - public string Name { get; set; } - - [JsonProperty(NullValueHandling = NullValueHandling.Ignore)] - public uint? TypeId { get; set; } - } - - public class NodeTypePrimitive : NodeType - { - [JsonConverter(typeof(StringEnumConverter))] - public TypeDefPrimitive Primitive { get; set; } - } - - public class NodeTypeComposite : NodeType - { - [JsonProperty(NullValueHandling = NullValueHandling.Ignore)] - public NodeTypeField[] TypeFields { get; set; } - } - - public class NodeTypeField - { - [JsonProperty(NullValueHandling = NullValueHandling.Ignore)] - public string Name { get; set; } - - [JsonProperty(NullValueHandling = NullValueHandling.Ignore)] - public string TypeName { get; set; } - - public uint TypeId { get; set; } - - [JsonProperty(NullValueHandling = NullValueHandling.Ignore)] - public string[] Docs { get; set; } - } - - public class NodeTypeArray : NodeType - { - public uint Length { get; set; } - - public uint TypeId { get; set; } - } - - public class NodeTypeSequence : NodeType - { - public uint TypeId { get; set; } - } - - public class NodeTypeCompact : NodeType - { - public uint TypeId { get; set; } - } - - public class NodeTypeTuple : NodeType - { - public uint[] TypeIds { get; set; } - } - - public class NodeTypeBitSequence : NodeType - { - public uint TypeIdStore { get; set; } - public uint TypeIdOrder { get; set; } - } - - public class NodeTypeVariant : NodeType - { - public TypeVariant[] Variants { get; set; } - } - - public class TypeVariant - { - public string Name { get; set; } - public NodeTypeField[] TypeFields { get; set; } - - public int Index { get; set; } - - [JsonProperty(NullValueHandling = NullValueHandling.Ignore)] - public string[] Docs { get; set; } - } - - public class NodeMetadataV14 - { - public Dictionary Types { get; set; } - public Dictionary Modules { get; set; } - public ExtrinsicMetadata Extrinsic { get; set; } - public uint TypeId { get; set; } - } - - public class SignedExtensionMetadata - { - public string SignedIdentifier { get; set; } - public uint SignedExtType { get; set; } - public uint AddSignedExtType { get; set; } - } - - public class ExtrinsicMetadata - { - public uint TypeId { get; set; } - public int Version { get; set; } - public SignedExtensionMetadata[] SignedExtensions { get; set; } - } - - public class PalletConstant - { - public string Name { get; set; } - public uint TypeId { get; set; } - public byte[] Value { get; set; } - public string[] Docs { get; set; } - } - - public class PalletStorage - { - public string Prefix { get; set; } - public Entry[] Entries { get; set; } - } - - public class Entry - { - public string Name { get; set; } - - [JsonConverter(typeof(StringEnumConverter))] - public Storage.Modifier Modifier { get; set; } - - [JsonConverter(typeof(StringEnumConverter))] - public Storage.Type StorageType { get; set; } - - public (uint, TypeMap) TypeMap { get; set; } - public byte[] Default { get; set; } - - [JsonProperty(NullValueHandling = NullValueHandling.Ignore)] - public string[] Docs { get; set; } - } - - public class TypeMap - { - [JsonProperty("Hashers", ItemConverterType = typeof(StringEnumConverter))] - public Storage.Hasher[] Hashers { get; set; } - - public uint Key { get; set; } - public uint Value { get; set; } - } - - public class PalletModule - { - public string Name { get; set; } - public PalletStorage Storage { get; set; } - public PalletCalls Calls { get; set; } - public PalletEvents Events { get; set; } - public PalletConstant[] Constants { get; set; } - public PalletErrors Errors { get; set; } - public uint Index { get; set; } - } - - public class PalletCalls - { - public uint TypeId { get; set; } - } - - public class PalletEvents - { - public uint TypeId { get; set; } - } - - public class PalletErrors - { - public uint TypeId { get; set; } - } -} diff --git a/Substrate.NET.Metadata/Conversion/Internal/MetadataVersionCompact.cs b/Substrate.NET.Metadata/Conversion/Internal/MetadataVersionCompact.cs deleted file mode 100644 index c6b3910..0000000 --- a/Substrate.NET.Metadata/Conversion/Internal/MetadataVersionCompact.cs +++ /dev/null @@ -1,65 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Substrate.NET.Metadata.Conversion.Internal -{ - internal class MetadataVersionCompact - { - public MetadataVersionCompact(int majorVersion, int minorVersion, string blockHash) - { - MajorVersion = majorVersion; - MinorVersion = minorVersion; - BlockHash = blockHash; - } - - public int MajorVersion { get; set; } - public int MinorVersion { get; set; } - public string BlockHash { get; set; } - - public List StorageClasses { get; set; } = new List(); - - public List Flatten() - { - var res = new List(); - - foreach (var storageClass in StorageClasses) - { - res.Add($"{MajorVersion}|{MinorVersion}|{storageClass.ToString()}"); - } - - return res; - } - - public void AddOrInc(Dictionary uniqueName, string name) - { - if (uniqueName.ContainsKey(name)) - { - uniqueName[name] += 1; - } - else - { - uniqueName[name] = 1; - } - } - - public void GetDistinctStorageClasses(Dictionary uniqueName) - { - var distinctClasses = StorageClasses.Select(x => x.ClassNameMapped).Distinct().ToList(); - - for (int i = 0; i < distinctClasses.Count; i++) - { - var classes = ConversionBuilder.HarmonizeFullType(distinctClasses[i]); - - foreach (var c in classes) - { - AddOrInc(uniqueName, c); - } - } - } - - public override string ToString() => $"{MajorVersion}.{MinorVersion}.{BlockHash}"; - } -} diff --git a/Substrate.NET.Metadata/Conversion/Internal/NodeBuilderType.cs b/Substrate.NET.Metadata/Conversion/Internal/NodeBuilderType.cs index d46d3df..e01b64d 100644 --- a/Substrate.NET.Metadata/Conversion/Internal/NodeBuilderType.cs +++ b/Substrate.NET.Metadata/Conversion/Internal/NodeBuilderType.cs @@ -8,7 +8,7 @@ namespace Substrate.NET.Metadata.Conversion.Internal { - public abstract class NodeBuilderType + internal abstract class NodeBuilderType { public int? Index { get; set; } = null; @@ -59,7 +59,7 @@ private string ToString(int level) } - public class NodeBuilderTypeUndefined : NodeBuilderType + internal class NodeBuilderTypeUndefined : NodeBuilderType { public override TypeDefEnum TypeDef => throw new NotImplementedException(); @@ -75,7 +75,7 @@ public NodeBuilderTypeUndefined(string content, string raw, string palletContext /// /// A variant of to handle Option more easily /// - public class NodeBuilderTypeOption : NodeBuilderType + internal class NodeBuilderTypeOption : NodeBuilderType { public override TypeDefEnum TypeDef => TypeDefEnum.Variant; @@ -84,7 +84,7 @@ public NodeBuilderTypeOption(string content, string raw, string palletContext) : } } - public class NodeBuilderTypePrimitive : NodeBuilderType + internal class NodeBuilderTypePrimitive : NodeBuilderType { public TypeDefPrimitive Primitive { get; set; } @@ -96,7 +96,7 @@ public NodeBuilderTypePrimitive(string content, string raw, TypeDefPrimitive pri public override TypeDefEnum TypeDef => TypeDefEnum.Primitive; } - public class NodeBuilderTypeComposite : NodeBuilderType + internal class NodeBuilderTypeComposite : NodeBuilderType { public NodeBuilderTypeComposite(string content, string raw, string palletContext) : base(content, raw, palletContext) { @@ -105,7 +105,7 @@ public NodeBuilderTypeComposite(string content, string raw, string palletContext public override TypeDefEnum TypeDef => TypeDefEnum.Composite; } - public class NodeBuilderTypeSequence : NodeBuilderType + internal class NodeBuilderTypeSequence : NodeBuilderType { public NodeBuilderTypeSequence(string content, string raw, string palletContext) : base(content, raw, palletContext) { @@ -114,7 +114,7 @@ public NodeBuilderTypeSequence(string content, string raw, string palletContext) public override TypeDefEnum TypeDef => TypeDefEnum.Sequence; } - public class NodeBuilderTypeTuple : NodeBuilderType + internal class NodeBuilderTypeTuple : NodeBuilderType { public NodeBuilderTypeTuple(string content, string raw, string palletContext) : base(content, raw, palletContext) { @@ -123,7 +123,7 @@ public NodeBuilderTypeTuple(string content, string raw, string palletContext) : public override TypeDefEnum TypeDef => TypeDefEnum.Tuple; } - public class NodeBuilderTypeArray : NodeBuilderType + internal class NodeBuilderTypeArray : NodeBuilderType { public NodeBuilderTypeArray(string content, string raw, int length, string palletContext): base(content, raw, palletContext) { @@ -135,7 +135,7 @@ public NodeBuilderTypeArray(string content, string raw, int length, string palle public override TypeDefEnum TypeDef => TypeDefEnum.Array; } - public class NodeBuilderTypeCompact : NodeBuilderType + internal class NodeBuilderTypeCompact : NodeBuilderType { public NodeBuilderTypeCompact(string content, string palletContext) : base(content, content, palletContext) { @@ -144,7 +144,7 @@ public NodeBuilderTypeCompact(string content, string palletContext) : base(conte public override TypeDefEnum TypeDef => TypeDefEnum.Compact; } - public class NodeBuilderTypeVariant : NodeBuilderType + internal class NodeBuilderTypeVariant : NodeBuilderType { public NodeBuilderTypeVariant(string content, string raw, string palletContext) : base(content, raw, palletContext) { diff --git a/Substrate.NET.Metadata/Conversion/Internal/SearchV14.cs b/Substrate.NET.Metadata/Conversion/Internal/SearchV14.cs index 7495676..e5c4f67 100644 --- a/Substrate.NET.Metadata/Conversion/Internal/SearchV14.cs +++ b/Substrate.NET.Metadata/Conversion/Internal/SearchV14.cs @@ -8,7 +8,7 @@ namespace Substrate.NET.Metadata.Conversion.Internal { - public static class SearchV14 + internal static class SearchV14 { public enum SearchResult { @@ -34,12 +34,11 @@ public static MetadataV14 MetadataV14 } } - public const int StorageEventIndex = 18; - /// /// The hard coded Polkadot event runtime index in the V14 Types dictionary /// public const int PolkadotRuntimeEventIndex = 20; + public static uint? HardIndexBinding(string type) { return type switch @@ -95,8 +94,7 @@ public static string HardBinding(string type, string palletContext) public static PortableType FindTypeByIndex(int index) { - var x = MetadataV14.RuntimeMetadataData.Lookup.Value.SingleOrDefault(x => x.Id.Value == index); - return x; + return MetadataV14.RuntimeMetadataData.Lookup.Value.Single(x => x.Id.Value == index); } public static (int index, SearchResult searchResult) SearchIndexByNode(NodeBuilderType node, ConversionBuilder conversionBuilder) @@ -240,8 +238,6 @@ public static (int index, SearchResult searchResult) SearchIndexByNode(NodeBuild throw new MetadataConversionException($"Unable to find or create {node.Raw}"); } - - private static bool FoundAllChildren(List indexesToSearch, TypeDefTuple tdt) { return indexesToSearch.Select(x => x).SequenceEqual(tdt.Fields.Value.Select(x => (int)x.Value)); @@ -261,11 +257,6 @@ private static bool FoundAllChildren(List indexesToSearch, TypeDefTuple tdt foreach (var entry in storage.Entries.Value) { - //if (entry.Name.Value == storageClass) - //{ - // return ((CompactIntegerType)entry.StorageType.Value2).Value; - //} - if (entry.StorageType.Value == StorageType.Type.Plain) { var storagePlainIndex = entry.StorageType.Value2 as TType ?? throw new InvalidOperationException(); @@ -281,10 +272,6 @@ private static bool FoundAllChildren(List indexesToSearch, TypeDefTuple tdt { storagePlainName = typeDefPrimitive.Value.ToString(); } - else - { - - } if (StorageClass.WriteStoragePlain(storagePlainName).Equals(storageClass, StringComparison.CurrentCultureIgnoreCase)) { diff --git a/Substrate.NET.Metadata/V9/PalletConstantMetadataV9.cs b/Substrate.NET.Metadata/V9/PalletConstantMetadataV9.cs index 3ee94b5..b0b37ba 100644 --- a/Substrate.NET.Metadata/V9/PalletConstantMetadataV9.cs +++ b/Substrate.NET.Metadata/V9/PalletConstantMetadataV9.cs @@ -44,7 +44,7 @@ public override void Decode(byte[] byteArray, ref int p) TypeSize = p - num; } - public PalletConstantMetadataV14 ToPalletConstantMetadataV14(ConversionBuilder conversionBuilder) + internal PalletConstantMetadataV14 ToPalletConstantMetadataV14(ConversionBuilder conversionBuilder) { var result = new PalletConstantMetadataV14(); From c1f28d10935a11d6cf0421d90fc1c30f895393e5 Mon Sep 17 00:00:00 2001 From: Apolixit Date: Tue, 10 Sep 2024 22:56:18 +0200 Subject: [PATCH 09/15] Upgrade Substrate.NET.API version + add mapping override index tracking --- .../ConvertToV14Test.cs | 15 +- .../Substrate.NET.Metadata.Node.Tests.csproj | 16 +- .../Conversion/ConversionBuilderTest.cs | 26 +- .../MetadataServiceV10Test.cs | 4 +- .../MetadataServiceV11Test.cs | 4 +- .../MetadataServiceV12Test.cs | 22 +- .../MetadataServiceV13Test.cs | 18 +- .../MetadataServiceV14Test.cs | 29 +- .../MetadataServiceV9Test.cs | 4 +- .../Substrate.NET.Metadata.Tests.csproj | 18 +- Substrate.NET.Metadata/Base/TypeDefs.cs | 51 ++- Substrate.NET.Metadata/Common/Metadata.cs | 2 +- .../Conversion/Internal/ConversionBuilder.cs | 88 ++++- .../Internal/ConversionBuilderTree.cs | 10 +- .../Conversion/Internal/SearchV14.cs | 17 +- .../Substrate.NET.Metadata.csproj | 4 +- .../V10/RuntimeMetadataV10.cs | 2 +- .../V11/RuntimeMetadataV11.cs | 2 +- .../V12/RuntimeMetadataV12.cs | 2 +- .../V13/RuntimeMetadataV13.cs | 2 +- Substrate.NET.Metadata/V14/MetadataV14.cs | 344 ++++++++++++++++++ .../V14/PalletMetadataV14.cs | 15 + .../V9/RuntimeMetadataV9.cs | 2 +- 23 files changed, 606 insertions(+), 91 deletions(-) diff --git a/Substrate.NET.Metadata.Node.Tests/ConvertToV14Test.cs b/Substrate.NET.Metadata.Node.Tests/ConvertToV14Test.cs index 0c60b9d..ab23f57 100644 --- a/Substrate.NET.Metadata.Node.Tests/ConvertToV14Test.cs +++ b/Substrate.NET.Metadata.Node.Tests/ConvertToV14Test.cs @@ -14,22 +14,24 @@ public class ConvertToV14Test { private SubstrateClient _substrateClient; - [SetUp] + [OneTimeSetUp] public async Task SetupAsync() { - _substrateClient = new SubstrateClient(new Uri("wss://polkadot-rpc.dwellir.com"), ChargeTransactionPayment.Default()); + //_substrateClient = new SubstrateClient(new Uri("wss://polkadot-rpc.dwellir.com"), ChargeTransactionPayment.Default()); + _substrateClient = new SubstrateClient(new Uri("wss://polkadot.api.onfinality.io/public-ws"), ChargeTransactionPayment.Default()); await _substrateClient.ConnectAsync(); Assert.That(_substrateClient.IsConnected, Is.True); } - [TearDown] + [OneTimeTearDown] public void Teardown() { _substrateClient.Dispose(); } [Test] + [TestCase("0xc0096358534ec8d21d01d34b836eed476a1c343f8724fa2153dc0725ad797a90", 11)] [TestCase("0xa15bf122d7a9b2cd07956c3af8f7eda61298aff0a3bd1193018df413d982a4ef", 11)] [TestCase("0x49a695416fcf55487adf9b9f5808619cee6618bd285a0119a78db60c5a7f3e13", 11)] [TestCase("0xdab56553594fd489adc085d2f83f3dcb65f5de5b1878325d5547fcf72b6dd6b3", 11)] @@ -59,7 +61,7 @@ public void Teardown() [TestCase("0x8192df1609d4478d1c1fcf5d39975596a8162d42d745c141c22148b0931708f2", 13)] public async Task ConvertMetadataToV14_ShouldSucceedAsync(string blockHash, int version) { - var metadataHex = await _substrateClient.State.GetMetaDataAtAsync(Utils.HexToByteArray(blockHash), CancellationToken.None); + var metadataHex = await _substrateClient.State.GetMetaDataAsync(Utils.HexToByteArray(blockHash), CancellationToken.None); IMetadataToV14 metadata = version switch { @@ -74,6 +76,11 @@ public async Task ConvertMetadataToV14_ShouldSucceedAsync(string blockHash, int var v14 = metadata.ToMetadataV14(); Assert.That(v14, Is.Not.Null); + + // Now let's convert to NetApi classes (ok this should be done in another UT) + var v14NetApi = v14.ToNetApiMetadata(); + + Assert.That(v14NetApi, Is.Not.Null); } } } \ No newline at end of file diff --git a/Substrate.NET.Metadata.Node.Tests/Substrate.NET.Metadata.Node.Tests.csproj b/Substrate.NET.Metadata.Node.Tests/Substrate.NET.Metadata.Node.Tests.csproj index efc00f2..df76951 100644 --- a/Substrate.NET.Metadata.Node.Tests/Substrate.NET.Metadata.Node.Tests.csproj +++ b/Substrate.NET.Metadata.Node.Tests/Substrate.NET.Metadata.Node.Tests.csproj @@ -10,11 +10,17 @@ - - - - - + + + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + diff --git a/Substrate.NET.Metadata.Tests/Conversion/ConversionBuilderTest.cs b/Substrate.NET.Metadata.Tests/Conversion/ConversionBuilderTest.cs index ccfcb28..ea47c54 100644 --- a/Substrate.NET.Metadata.Tests/Conversion/ConversionBuilderTest.cs +++ b/Substrate.NET.Metadata.Tests/Conversion/ConversionBuilderTest.cs @@ -40,21 +40,33 @@ public void GetNode_FromPrimitive_ShouldSucceed(string primitiveType) Assert.That(((BaseEnum)res.portableType.Ty.TypeDef.Value2).Value, Is.EqualTo(TypeDefPrimitive.U32)); } + [Test] + [TestCase("Vec>", "System")] + public void GetSystemEvent_WhenOverrided_ShouldReturnOverride(string rustType, string palletContext = "") + { + _builder.CurrentPallet = palletContext; + _builder.CreateEventBlockchainRuntimeEvent(); + //_builder.AddEventRuntimeLookup(palletContext, new Variant[0]); + var res = _builder.BuildPortableTypes(rustType); + + Assert.That(res.Value, Is.EqualTo(18), "Index are not equals"); + } + [Test] [TestCase("TaskAddress", 29, 2)] [TestCase("SignedSubmissionOf", 504, 61)] [TestCase("BalanceOf", 6, 1)] [TestCase("SubmissionIndicesOf", 502, 5)] - [TestCase("[BalanceOf; 4]", 1000, 1)] + [TestCase("[BalanceOf; 4]", 1000, 2)] [TestCase("Approvals", 14, 2)] - [TestCase("(Vec>,\n BalanceOf)", 1000, 1)] + [TestCase("(Vec>,\n BalanceOf)", 1000, 9)] [TestCase("&[u8]", 10, 2, "Claims")] - [TestCase("Vec>", 1000, 1)] - [TestCase("Vec>", 1000, 1)] + [TestCase("Vec>", 1000, 5)] + [TestCase("Vec>", 1000, 2)] [TestCase("LeasePeriod", 4, 1)] [TestCase("LockIdentifier", 125, 2)] - [TestCase("(T::BlockNumber, Hash)", 1000, 1)] - [TestCase("(BalanceOf, Vec)", 1000, 1)] + [TestCase("(T::BlockNumber, Hash)", 1000, 5)] + [TestCase("(BalanceOf, Vec)", 1000, 6)] [TestCase("AuthorityId", 46, 4, "ImOnline")] [TestCase("AuthorityId", 137, 4, "Babe")] [TestCase("Vec<(AuthorityId, BabeAuthorityWeight)>", 367, 7, "Babe")] @@ -82,7 +94,7 @@ public void GetNode_FromPrimitive_ShouldSucceed(string primitiveType) [TestCase("T::AccountId", 0, 3)] [TestCase("Vec", 55, 4)] //[TestCase("Vec>", 22, 4)] - public void GetIndex_FromComposite_ShouldSucceed(string rustType, int indexExpected, int lengthExpected, string palletContext = "") + public void GetIndex_FromRustClass_ShouldSucceed(string rustType, int indexExpected, int lengthExpected, string palletContext = "") { _builder.CurrentPallet = palletContext; var res = _builder.BuildPortableTypes(rustType); diff --git a/Substrate.NET.Metadata.Tests/MetadataServiceV10Test.cs b/Substrate.NET.Metadata.Tests/MetadataServiceV10Test.cs index a54526f..ca3579e 100644 --- a/Substrate.NET.Metadata.Tests/MetadataServiceV10Test.cs +++ b/Substrate.NET.Metadata.Tests/MetadataServiceV10Test.cs @@ -58,8 +58,8 @@ public void MetadataV10_V1039_And_V1040_PalletHasChanged_ShouldSucceed() var metadataSource = readMetadataFromFile("V10\\MetadataV10_Kusama_1039"); var metadataDestination = readMetadataFromFile("V10\\MetadataV10_Kusama_1040"); - Assert.IsFalse(_metadataService.HasPalletChangedVersionBetween("Society", metadataSource, metadataDestination)); - Assert.IsFalse(_metadataService.HasPalletChangedVersionBetween("Balances", metadataSource, metadataDestination)); + Assert.That(_metadataService.HasPalletChangedVersionBetween("Society", metadataSource, metadataDestination), Is.False); + Assert.That(_metadataService.HasPalletChangedVersionBetween("Balances", metadataSource, metadataDestination), Is.False); } } } diff --git a/Substrate.NET.Metadata.Tests/MetadataServiceV11Test.cs b/Substrate.NET.Metadata.Tests/MetadataServiceV11Test.cs index 23b2230..e72b9c5 100644 --- a/Substrate.NET.Metadata.Tests/MetadataServiceV11Test.cs +++ b/Substrate.NET.Metadata.Tests/MetadataServiceV11Test.cs @@ -133,10 +133,10 @@ public void MetadataV11_V23_And_V24_PalletHasChanged_ShouldSucceed() var metadataSource = readMetadataFromFile("V11\\MetadataV11_23"); var metadataDestination = readMetadataFromFile("V11\\MetadataV11_24"); - Assert.IsTrue(_metadataService.HasPalletChangedVersionBetween("Multisig", metadataSource, metadataDestination)); + Assert.That(_metadataService.HasPalletChangedVersionBetween("Multisig", metadataSource, metadataDestination)); // Purschase has been removed, but does not count as changed - Assert.IsFalse(_metadataService.HasPalletChangedVersionBetween("Purchase", metadataSource, metadataDestination)); + Assert.That(_metadataService.HasPalletChangedVersionBetween("Purchase", metadataSource, metadataDestination), Is.False); } [Test] diff --git a/Substrate.NET.Metadata.Tests/MetadataServiceV12Test.cs b/Substrate.NET.Metadata.Tests/MetadataServiceV12Test.cs index 264efe1..6e90339 100644 --- a/Substrate.NET.Metadata.Tests/MetadataServiceV12Test.cs +++ b/Substrate.NET.Metadata.Tests/MetadataServiceV12Test.cs @@ -40,7 +40,7 @@ public void MetadataV12_SpecVersionCompare_V27_And_V28_ShouldSucceed() Assert.That(changedModules[0].ModuleName, Is.EqualTo("Babe")); Assert.That(changedModules[0].Storage.First().Item2.status, Is.EqualTo(CompareStatus.Added)); Assert.That(changedModules[0].Storage.First().Item2.storage.Name.Value, Is.EqualTo("NextAuthorities")); - Assert.IsTrue(changedModules[0].HasStorageAdded("NextAuthorities")); + Assert.That(changedModules[0].HasStorageAdded("NextAuthorities")); // Now let's test ElectionsPhragmen which changed a lot var electionPhragmenModule = changedModules[1]; @@ -53,32 +53,32 @@ public void MetadataV12_SpecVersionCompare_V27_And_V28_ShouldSucceed() var electionPhragmenCalls = electionPhragmenModule.Calls.ToList(); Assert.That(electionPhragmenCalls[0].Item1, Is.EqualTo(CompareStatus.Added)); Assert.That(electionPhragmenCalls[0].Item2.Name.Value, Is.EqualTo("clean_defunct_voters")); - Assert.IsTrue(electionPhragmenModule.HasCallAdded("clean_defunct_voters")); + Assert.That(electionPhragmenModule.HasCallAdded("clean_defunct_voters")); Assert.That(electionPhragmenCalls[1].Item1, Is.EqualTo(CompareStatus.Removed)); Assert.That(electionPhragmenCalls[1].Item2.Name.Value, Is.EqualTo("report_defunct_voter")); - Assert.IsTrue(electionPhragmenModule.HasCallRemoved("report_defunct_voter")); + Assert.That(electionPhragmenModule.HasCallRemoved("report_defunct_voter")); var electionPhragmenConstants = electionPhragmenModule.Constants.ToList(); Assert.That(electionPhragmenConstants[0].Item1, Is.EqualTo(CompareStatus.Added)); Assert.That(electionPhragmenConstants[0].Item2.Name.Value, Is.EqualTo("VotingBondBase")); - Assert.IsTrue(electionPhragmenModule.HasConstantAdded("VotingBondBase")); + Assert.That(electionPhragmenModule.HasConstantAdded("VotingBondBase")); Assert.That(electionPhragmenConstants[1].Item1, Is.EqualTo(CompareStatus.Added)); Assert.That(electionPhragmenConstants[1].Item2.Name.Value, Is.EqualTo("VotingBondFactor")); Assert.That(electionPhragmenConstants[2].Item1, Is.EqualTo(CompareStatus.Removed)); Assert.That(electionPhragmenConstants[2].Item2.Name.Value, Is.EqualTo("VotingBond")); - Assert.IsTrue(electionPhragmenModule.HasConstantRemoved("VotingBond")); + Assert.That(electionPhragmenModule.HasConstantRemoved("VotingBond")); var electionPhragmenEvents = electionPhragmenModule.Events.ToList(); Assert.That(electionPhragmenEvents[0].Item1, Is.EqualTo(CompareStatus.Added)); Assert.That(electionPhragmenEvents[0].Item2.Name.Value, Is.EqualTo("Renounced")); - Assert.IsTrue(electionPhragmenModule.HasEventAdded("Renounced")); + Assert.That(electionPhragmenModule.HasEventAdded("Renounced")); Assert.That(electionPhragmenEvents[1].Item1, Is.EqualTo(CompareStatus.Removed)); Assert.That(electionPhragmenEvents[1].Item2.Name.Value, Is.EqualTo("MemberRenounced")); - Assert.IsTrue(electionPhragmenModule.HasEventRemoved("MemberRenounced")); + Assert.That(electionPhragmenModule.HasEventRemoved("MemberRenounced")); Assert.That(electionPhragmenEvents[2].Item1, Is.EqualTo(CompareStatus.Removed)); Assert.That(electionPhragmenEvents[2].Item2.Name.Value, Is.EqualTo("VoterReported")); @@ -86,7 +86,7 @@ public void MetadataV12_SpecVersionCompare_V27_And_V28_ShouldSucceed() var electionPhragmenErrors = electionPhragmenModule.Errors.ToList(); Assert.That(electionPhragmenErrors[0].Item1, Is.EqualTo(CompareStatus.Added)); Assert.That(electionPhragmenErrors[0].Item2.Name.Value, Is.EqualTo("RunnerUpSubmit")); - Assert.IsTrue(electionPhragmenModule.HasErrorAdded("RunnerUpSubmit")); + Assert.That(electionPhragmenModule.HasErrorAdded("RunnerUpSubmit")); Assert.That(electionPhragmenErrors[1].Item1, Is.EqualTo(CompareStatus.Added)); Assert.That(electionPhragmenErrors[1].Item2.Name.Value, Is.EqualTo("InvalidWitnessData")); @@ -96,7 +96,7 @@ public void MetadataV12_SpecVersionCompare_V27_And_V28_ShouldSucceed() Assert.That(electionPhragmenErrors[3].Item1, Is.EqualTo(CompareStatus.Removed)); Assert.That(electionPhragmenErrors[3].Item2.Name.Value, Is.EqualTo("InvalidCandidateCount")); - Assert.IsTrue(electionPhragmenModule.HasErrorRemoved("InvalidCandidateCount")); + Assert.That(electionPhragmenModule.HasErrorRemoved("InvalidCandidateCount")); } [Test] @@ -105,9 +105,9 @@ public void MetadataV12_V27_And_V28_PalletHasChanged_ShouldSucceed() var metadataSource = readMetadataFromFile("V12\\MetadataV12_27"); var metadataDestination = readMetadataFromFile("V12\\MetadataV12_28"); - Assert.IsTrue(_metadataService.HasPalletChangedVersionBetween("ElectionsPhragmen", metadataSource, metadataDestination)); + Assert.That(_metadataService.HasPalletChangedVersionBetween("ElectionsPhragmen", metadataSource, metadataDestination)); - Assert.IsFalse(_metadataService.HasPalletChangedVersionBetween("Balances", metadataSource, metadataDestination)); + Assert.That(_metadataService.HasPalletChangedVersionBetween("Balances", metadataSource, metadataDestination), Is.False); } } } diff --git a/Substrate.NET.Metadata.Tests/MetadataServiceV13Test.cs b/Substrate.NET.Metadata.Tests/MetadataServiceV13Test.cs index e99c287..6283f2c 100644 --- a/Substrate.NET.Metadata.Tests/MetadataServiceV13Test.cs +++ b/Substrate.NET.Metadata.Tests/MetadataServiceV13Test.cs @@ -30,19 +30,19 @@ public void MetadataV13_SpecVersionCompare_V9080_And_V9090_ShouldSucceed() var changedModules = res.ChangedModules.ToList(); Assert.That(changedModules[0].ModuleName, Is.EqualTo("Authorship")); - Assert.IsTrue(changedModules[0].HasConstantAdded("UncleGenerations")); + Assert.That(changedModules[0].HasConstantAdded("UncleGenerations")); Assert.That(changedModules[1].ModuleName, Is.EqualTo("Balances")); - Assert.IsTrue(changedModules[1].HasConstantAdded("MaxLocks")); - Assert.IsTrue(changedModules[1].HasConstantAdded("MaxReserves")); + Assert.That(changedModules[1].HasConstantAdded("MaxLocks")); + Assert.That(changedModules[1].HasConstantAdded("MaxReserves")); Assert.That(changedModules[2].ModuleName, Is.EqualTo("Democracy")); Assert.That(changedModules[2].Constants.Count(), Is.EqualTo(2)); - Assert.IsTrue(changedModules[2].HasConstantAdded("InstantAllowed")); - Assert.IsTrue(changedModules[2].HasConstantAdded("MaxProposals")); + Assert.That(changedModules[2].HasConstantAdded("InstantAllowed")); + Assert.That(changedModules[2].HasConstantAdded("MaxProposals")); Assert.That(changedModules[2].Errors.Count(), Is.EqualTo(5)); - Assert.IsFalse(changedModules[2].HasErrorAdded("test")); - Assert.IsFalse(changedModules[2].HasErrorRemoved("test2")); + Assert.That(changedModules[2].HasErrorAdded("test"), Is.False); + Assert.That(changedModules[2].HasErrorRemoved("test2"), Is.False); } [Test] @@ -51,8 +51,8 @@ public void MetadataV13_V9080_And_V9090_PalletHasChanged_ShouldSucceed() var metadataSource = readMetadataFromFile("V13\\MetadataV13_9080"); var metadataDestination = readMetadataFromFile("V13\\MetadataV13_9090"); - Assert.IsTrue(_metadataService.HasPalletChangedVersionBetween("Balances", metadataSource, metadataDestination)); - Assert.IsFalse(_metadataService.HasPalletChangedVersionBetween("Babe", metadataSource, metadataDestination)); + Assert.That(_metadataService.HasPalletChangedVersionBetween("Balances", metadataSource, metadataDestination)); + Assert.That(_metadataService.HasPalletChangedVersionBetween("Babe", metadataSource, metadataDestination), Is.False); } } } diff --git a/Substrate.NET.Metadata.Tests/MetadataServiceV14Test.cs b/Substrate.NET.Metadata.Tests/MetadataServiceV14Test.cs index cc7c553..e46a08d 100644 --- a/Substrate.NET.Metadata.Tests/MetadataServiceV14Test.cs +++ b/Substrate.NET.Metadata.Tests/MetadataServiceV14Test.cs @@ -58,9 +58,9 @@ public void MetadataV14_SpecVersionCompare_V9370_And_V9420_ShouldSucceed() Assert.That(res, Is.Not.Null); - Assert.IsTrue(res.AddedModules.Any(x => x.ModuleName == "ConvictionVoting")); - Assert.IsTrue(res.AddedModules.Any(x => x.ModuleName == "Referenda")); - Assert.IsTrue(res.AddedModules.Any(x => x.ModuleName == "Whitelist")); + Assert.That(res.AddedModules.Any(x => x.ModuleName == "ConvictionVoting")); + Assert.That(res.AddedModules.Any(x => x.ModuleName == "Referenda")); + Assert.That(res.AddedModules.Any(x => x.ModuleName == "Whitelist")); // Some basic other assertions on Balance pallet I checked with file compare var palletBalance = res.ChangedModules.FirstOrDefault(x => x.ModuleName == "Balances"); @@ -69,12 +69,12 @@ public void MetadataV14_SpecVersionCompare_V9370_And_V9420_ShouldSucceed() // Some calls has been added and one has been removed var callsMethodChanged = palletBalance.Calls.LookupDifferentialType.TypeVariant.Elems; Assert.That(callsMethodChanged.Count(), Is.GreaterThan(1)); - Assert.IsTrue(callsMethodChanged.Any(x => x.Item1 == CompareStatus.Added && x.Item2.Name.Value == "set_balance_deprecated")); - Assert.IsTrue(callsMethodChanged.Any(x => x.Item1 == CompareStatus.Removed && x.Item2.Name.Value == "set_balance")); + Assert.That(callsMethodChanged.Any(x => x.Item1 == CompareStatus.Added && x.Item2.Name.Value == "set_balance_deprecated")); + Assert.That(callsMethodChanged.Any(x => x.Item1 == CompareStatus.Removed && x.Item2.Name.Value == "set_balance")); - Assert.IsTrue(callsMethodChanged.Any(x => x.Item1 == CompareStatus.Added && x.Item2.Name.Value == "transfer_allow_death")); - Assert.IsTrue(callsMethodChanged.Any(x => x.Item1 == CompareStatus.Added && x.Item2.Name.Value == "set_balance_deprecated")); - Assert.IsTrue(callsMethodChanged.Any(x => x.Item1 == CompareStatus.Added && x.Item2.Name.Value == "force_set_balance")); + Assert.That(callsMethodChanged.Any(x => x.Item1 == CompareStatus.Added && x.Item2.Name.Value == "transfer_allow_death")); + Assert.That(callsMethodChanged.Any(x => x.Item1 == CompareStatus.Added && x.Item2.Name.Value == "set_balance_deprecated")); + Assert.That(callsMethodChanged.Any(x => x.Item1 == CompareStatus.Added && x.Item2.Name.Value == "force_set_balance")); var upgradeAccounts = callsMethodChanged.FirstOrDefault(x => x.Item1 == CompareStatus.Added && x.Item2.Name.Value == "upgrade_accounts"); Assert.That(upgradeAccounts.Item2.VariantFields.Value.Count(), Is.EqualTo(1)); @@ -105,9 +105,18 @@ public void MetadataV14_V9270_And_V9280_PalletHasChanged_ShouldSucceed() var metadataSource = readMetadataFromFile("V14\\MetadataV14_9270"); var metadataDestination = readMetadataFromFile("V14\\MetadataV14_9280"); - Assert.IsTrue(_metadataService.HasPalletChangedVersionBetween("Auctions", metadataSource, metadataDestination)); + Assert.That(_metadataService.HasPalletChangedVersionBetween("Auctions", metadataSource, metadataDestination)); - Assert.IsFalse(_metadataService.HasPalletChangedVersionBetween("AuthorityDiscovery", metadataSource, metadataDestination)); + Assert.That(_metadataService.HasPalletChangedVersionBetween("AuthorityDiscovery", metadataSource, metadataDestination), Is.False); + } + + [Test] + public void MetadataV14_ConvertToNetApiMetadata_ShouldSucceed() + { + var metadata = new MetadataV14(readMetadataFromFile("V14\\MetadataV14_9270")); + var netApiMetadata = metadata.ToNetApiMetadata(); + + Assert.That(netApiMetadata, Is.Not.Null); } } } diff --git a/Substrate.NET.Metadata.Tests/MetadataServiceV9Test.cs b/Substrate.NET.Metadata.Tests/MetadataServiceV9Test.cs index b8b42ba..eec2602 100644 --- a/Substrate.NET.Metadata.Tests/MetadataServiceV9Test.cs +++ b/Substrate.NET.Metadata.Tests/MetadataServiceV9Test.cs @@ -42,8 +42,8 @@ public void MetadataV9_V1020_And_V1022_PalletHasChanged_ShouldSucceed() var metadataSource = readMetadataFromFile("V9\\MetadataV9_Kusama_1020"); var metadataDestination = readMetadataFromFile("V9\\MetadataV9_Kusama_1022"); - Assert.IsTrue(_metadataService.HasPalletChangedVersionBetween("Democracy", metadataSource, metadataDestination)); - Assert.IsFalse(_metadataService.HasPalletChangedVersionBetween("Balances", metadataSource, metadataDestination)); + Assert.That(_metadataService.HasPalletChangedVersionBetween("Democracy", metadataSource, metadataDestination)); + Assert.That(_metadataService.HasPalletChangedVersionBetween("Balances", metadataSource, metadataDestination), Is.False); } } } diff --git a/Substrate.NET.Metadata.Tests/Substrate.NET.Metadata.Tests.csproj b/Substrate.NET.Metadata.Tests/Substrate.NET.Metadata.Tests.csproj index 6528777..193cc87 100644 --- a/Substrate.NET.Metadata.Tests/Substrate.NET.Metadata.Tests.csproj +++ b/Substrate.NET.Metadata.Tests/Substrate.NET.Metadata.Tests.csproj @@ -9,12 +9,18 @@ - - - - - - + + + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + diff --git a/Substrate.NET.Metadata/Base/TypeDefs.cs b/Substrate.NET.Metadata/Base/TypeDefs.cs index e547af9..8bfe0ce 100644 --- a/Substrate.NET.Metadata/Base/TypeDefs.cs +++ b/Substrate.NET.Metadata/Base/TypeDefs.cs @@ -3,7 +3,7 @@ using Substrate.NetApi; using Substrate.NetApi.Model.Types; using Substrate.NetApi.Model.Types.Base; -using Substrate.NetApi.Model.Types.Metadata.V14; +using Substrate.NetApi.Model.Types.Metadata.Base; using Substrate.NetApi.Model.Types.Primitive; namespace Substrate.NET.Metadata.Base @@ -110,6 +110,13 @@ public override void Decode(byte[] byteArray, ref int p) } public BaseVec Fields { get; internal set; } + + public NetApi.Model.Types.Metadata.Base.TypeDefComposite ToNetApi() + { + var result = new Substrate.NetApi.Model.Types.Metadata.Base.TypeDefComposite(); + result.Create(Encode()); + return result; + } } public class TypeDefVariant : BaseType @@ -134,6 +141,13 @@ public override void Decode(byte[] byteArray, ref int p) } public BaseVec TypeParam { get; internal set; } + + public NetApi.Model.Types.Metadata.Base.TypeDefVariant ToNetApi() + { + var result = new Substrate.NetApi.Model.Types.Metadata.Base.TypeDefVariant(); + result.Create(Encode()); + return result; + } } public class TypeDefSequence : BaseType, IMetadataType @@ -158,6 +172,13 @@ public override void Decode(byte[] byteArray, ref int p) } public TType ElemType { get; internal set; } + + public NetApi.Model.Types.Metadata.Base.TypeDefSequence ToNetApi() + { + var result = new Substrate.NetApi.Model.Types.Metadata.Base.TypeDefSequence(); + result.Create(Encode()); + return result; + } } public class TypeDefArray : BaseType, IMetadataType @@ -187,6 +208,13 @@ public override void Decode(byte[] byteArray, ref int p) public U32 Len { get; internal set; } = default!; public TType ElemType { get; internal set; } = default!; + + public NetApi.Model.Types.Metadata.Base.TypeDefArray ToNetApi() + { + var result = new Substrate.NetApi.Model.Types.Metadata.Base.TypeDefArray(); + result.Create(Encode()); + return result; + } } public class TypeDefTuple : BaseType @@ -211,6 +239,13 @@ public override void Decode(byte[] byteArray, ref int p) } public BaseVec Fields { get; internal set; } + + public NetApi.Model.Types.Metadata.Base.TypeDefTuple ToNetApi() + { + var result = new Substrate.NetApi.Model.Types.Metadata.Base.TypeDefTuple(); + result.Create(Encode()); + return result; + } } public enum TypeDefPrimitive @@ -283,6 +318,13 @@ public override void Decode(byte[] byteArray, ref int p) } public TType ElemType { get; private set; } + + public NetApi.Model.Types.Metadata.Base.TypeDefCompact ToNetApi() + { + var result = new Substrate.NetApi.Model.Types.Metadata.Base.TypeDefCompact(); + result.Create(Encode()); + return result; + } } public class TypeDefBitSequence : BaseType @@ -312,5 +354,12 @@ public override void Decode(byte[] byteArray, ref int p) public TType BitStoreType { get; private set; } public TType BitOrderType { get; private set; } + + public NetApi.Model.Types.Metadata.Base.TypeDefBitSequence ToNetApi() + { + var result = new Substrate.NetApi.Model.Types.Metadata.Base.TypeDefBitSequence(); + result.Create(Encode()); + return result; + } } } \ No newline at end of file diff --git a/Substrate.NET.Metadata/Common/Metadata.cs b/Substrate.NET.Metadata/Common/Metadata.cs index 0c6b35c..adeb9e6 100644 --- a/Substrate.NET.Metadata/Common/Metadata.cs +++ b/Substrate.NET.Metadata/Common/Metadata.cs @@ -11,7 +11,7 @@ //using Substrate.NET.Metadata.V9; //using Substrate.NET.Metadata.V10; //using Substrate.NET.Metadata.Base; -//using Substrate.NetApi.Model.Types.Metadata.V14; +//using Substrate.NetApi.Model.Types.Metadata.Base; //namespace Substrate.NET.Metadata.Common //{ diff --git a/Substrate.NET.Metadata/Conversion/Internal/ConversionBuilder.cs b/Substrate.NET.Metadata/Conversion/Internal/ConversionBuilder.cs index b102f5d..40791dc 100644 --- a/Substrate.NET.Metadata/Conversion/Internal/ConversionBuilder.cs +++ b/Substrate.NET.Metadata/Conversion/Internal/ConversionBuilder.cs @@ -1,8 +1,10 @@ using Substrate.NET.Metadata.Base; using Substrate.NET.Metadata.Base.Portable; using Substrate.NET.Metadata.V14; +using Substrate.NetApi; using Substrate.NetApi.Model.Types.Base; using Substrate.NetApi.Model.Types.Primitive; +using System; using System.Runtime.CompilerServices; using System.Text.RegularExpressions; using static Substrate.NET.Metadata.Conversion.Internal.SearchV14; @@ -75,6 +77,7 @@ internal class ConversionBuilder { public List PortableTypes { get; init; } public List ElementsState { get; init; } + public IDictionary OverrideTypeMapping { get; init; } public string CurrentPallet { get; set; } = string.Empty; public uint? UnknowIndex { get; set; } = null; public uint? PolkadotRuntimeEventIndex { get; private set; } = null; @@ -85,6 +88,7 @@ public ConversionBuilder(List portableTypes) { PortableTypes = portableTypes; ElementsState = new List(); + OverrideTypeMapping = new Dictionary(); } /// @@ -174,6 +178,21 @@ public U32 BuildPortableTypes(string className) return (LoopFromV14(index.index), index.searchResult); } + /// + /// Check if the index has been override. If true return the override index, otherwise return self + /// + /// + /// + private int GetIndexOrMapped(int index) + { + if(OverrideTypeMapping.TryGetValue(index, out var newIndex)) + { + return newIndex; + } + + return index; + } + public PortableType LoopFromV14(int index) { var alreadyInserted = PortableTypes.SingleOrDefault(x => x.Id.Value == index); @@ -189,11 +208,14 @@ public PortableType LoopFromV14(int index) foreach (var field in composite.Fields.Value) { + field.FieldTy.Value = GetIndexOrMapped(field.FieldTy.Value); _ = LoopFromV14(field.FieldTy.Value); } break; case TypeDefEnum.Array: var array = (TypeDefArray)portableType.Ty.TypeDef.Value2; + + array.ElemType.Value = GetIndexOrMapped(array.ElemType.Value); _ = LoopFromV14(array.ElemType.Value); break; case TypeDefEnum.Variant: @@ -202,28 +224,38 @@ public PortableType LoopFromV14(int index) { foreach (var field in variant.VariantFields.Value) { + field.FieldTy.Value = GetIndexOrMapped(field.FieldTy.Value); _ = LoopFromV14(field.FieldTy.Value); } } break; case TypeDefEnum.Sequence: var sequence = (TypeDefSequence)portableType.Ty.TypeDef.Value2; + + sequence.ElemType.Value = GetIndexOrMapped(sequence.ElemType.Value); _ = LoopFromV14(sequence.ElemType.Value); break; case TypeDefEnum.Tuple: var tuple = (TypeDefTuple)portableType.Ty.TypeDef.Value2; foreach (var field in tuple.Fields.Value) { + field.Value = GetIndexOrMapped(field.Value); _ = LoopFromV14(field.Value); } break; case TypeDefEnum.Primitive: break; case TypeDefEnum.Compact: var compact = (TypeDefCompact)portableType.Ty.TypeDef.Value2; + + compact.ElemType.Value = GetIndexOrMapped(compact.ElemType.Value); _ = LoopFromV14(compact.ElemType.Value); break; case TypeDefEnum.BitSequence: var bitSequence = (TypeDefBitSequence)portableType.Ty.TypeDef.Value2; + + bitSequence.BitOrderType.Value = GetIndexOrMapped(bitSequence.BitOrderType.Value); + bitSequence.BitStoreType.Value = GetIndexOrMapped(bitSequence.BitStoreType.Value); + _ = LoopFromV14(bitSequence.BitOrderType.Value); _ = LoopFromV14(bitSequence.BitStoreType.Value); break; @@ -263,7 +295,14 @@ public U32 AddErrorRuntimeLookup(string palletName, Variant[] variants) private U32 AddRuntimeLookup(string objType, string palletName, Variant[] variants) { var path = new Base.Portable.Path(); - path.Create(new List() { palletName, "pallet", objType }.Select(x => new Str(x)).ToArray()); + + var palletNameCasted = palletName.ToLower() switch + { + "system" => "frame_system", + _ => "pallet_" + palletName.ToLower() + }; + + path.Create(new List() { palletNameCasted, "pallet", objType }.Select(x => new Str(x)).ToArray()); var typeParams = new BaseVec([ new TypeParameter(new Str("T"), new BaseOpt()) @@ -304,7 +343,11 @@ public void CreateEventBlockchainRuntimeEvent() var eventsPortableType = CreatePortableTypeFromNode(node, ["polkadot_runtime", "Event"], null); PolkadotRuntimeEventIndex = eventsPortableType.Id.Value; + + // Keep track of the override + OverrideTypeMapping.Add(FindIndexByClass("polkadot_runtime::Event")!.Value, (int)PolkadotRuntimeEventIndex.Value); } + public void AddPalletEventBlockchainRuntimeEvent(Variant variant) { var portableType = LoopFromV14((int)PolkadotRuntimeEventIndex!); @@ -326,12 +369,12 @@ public void AddPalletEventBlockchainRuntimeEvent(Variant variant) /// Composite class use for undefined mapping /// /// - public PortableType CreateUnknownNode() + public PortableType CreateUnknownType() { - var unknownNode = new TypeDefComposite(); - unknownNode.Fields = new BaseVec(new Field[0]); + var unknownType = new TypeDefComposite(); + unknownType.Fields = new BaseVec([]); - var pt = CreatePortableTypeFromNode(unknownNode); + var pt = CreatePortableTypeFromNode(unknownType, ["unknownType"]); UnknowIndex = pt.Id.Value; return pt; @@ -339,7 +382,6 @@ public PortableType CreateUnknownNode() public PortableType CreatePortableTypeFromNode(BaseType node, List? path = null, List? docs = null) { - var portableType = new PortableType(); portableType.Id = GetNewIndex(); @@ -367,30 +409,48 @@ public PortableType CreatePortableTypeFromNode(BaseType node, List? path { portableType.Ty.TypeDef = new TypeDefExt(); portableType.Ty.TypeDef.Create(TypeDefEnum.Tuple, tdt); - } - if (node is TypeDefComposite tdc) + // Loop through the fields to add them to lookup. WARNING : Call LoopFromV14 could lead to an error if one of the children is not present in V14 (never happened until now, but could be possible I think) + foreach(var field in tdt.Fields.Value) + { + LoopFromV14((int)field.Value); + } + + } + else if (node is TypeDefComposite tdc) { portableType.Ty.TypeDef = new TypeDefExt(); portableType.Ty.TypeDef.Create(TypeDefEnum.Composite, tdc); - } - if (node is TypeDefSequence tds) + // Loop through the fields to add them to lookup. WARNING : Call LoopFromV14 could lead to an error if one of the children is not present in V14 (never happened until now, but could be possible I think) + foreach (var field in tdc.Fields.Value) + { + LoopFromV14((int)field.FieldTy.Value); + } + } + else if (node is TypeDefSequence tds) { portableType.Ty.TypeDef = new TypeDefExt(); portableType.Ty.TypeDef.Create(TypeDefEnum.Sequence, tds); - } - if (node is TypeDefArray tda) + LoopFromV14((int)tds.ElemType.Value); + } + else if (node is TypeDefArray tda) { portableType.Ty.TypeDef = new TypeDefExt(); portableType.Ty.TypeDef.Create(TypeDefEnum.Array, tda); - } - if (node is TypeDefVariant tdv) + LoopFromV14((int)tda.ElemType.Value); + } + else if (node is TypeDefVariant tdv) { portableType.Ty.TypeDef = new TypeDefExt(); portableType.Ty.TypeDef.Create(TypeDefEnum.Variant, tdv); + + foreach (var variant in tdv.TypeParam.Value.SelectMany(x => x.VariantFields.Value)) + { + LoopFromV14((int)variant.ElemType.Value); + } } PortableTypes.Add(portableType); diff --git a/Substrate.NET.Metadata/Conversion/Internal/ConversionBuilderTree.cs b/Substrate.NET.Metadata/Conversion/Internal/ConversionBuilderTree.cs index 96710d9..480535e 100644 --- a/Substrate.NET.Metadata/Conversion/Internal/ConversionBuilderTree.cs +++ b/Substrate.NET.Metadata/Conversion/Internal/ConversionBuilderTree.cs @@ -221,18 +221,20 @@ internal static NodeBuilderType Build(NodeBuilderType nodeBuilderType) var typeDef = GetTypeDefFromString(match.Groups[1].Value); + var binding = SearchV14.HardBinding(match.Groups[1].Value, node.PalletContext); + var hasBeenHardBinded = binding != match.Groups[1].Value; + NodeBuilderType result = typeDef switch { TypeDefEnum.Sequence => new NodeBuilderTypeSequence(node.Adapted, node.Raw, node.PalletContext), TypeDefEnum.Variant when match.Groups[1].Value == "Option" => new NodeBuilderTypeOption(node.Adapted, node.Raw, node.PalletContext), TypeDefEnum.Variant => new NodeBuilderTypeVariant(node.Adapted, node.Raw, node.PalletContext), - TypeDefEnum.Composite => new NodeBuilderTypeComposite( - SearchV14.HardBinding(match.Groups[1].Value, node.PalletContext), - node.Adapted, node.PalletContext), + TypeDefEnum.Composite => new NodeBuilderTypeComposite(binding, node.Adapted, node.PalletContext), _ => throw new MetadataConversionException($"TypeDef {typeDef} is not handled") }; - if (result is NodeBuilderTypeComposite c && c.Raw != c.Adapted) + //if (result is NodeBuilderTypeComposite c && c.Raw != c.Adapted) + if (result is NodeBuilderTypeComposite c && hasBeenHardBinded) { return Build(new NodeBuilderTypeUndefined(c.Adapted, c.Raw, c.PalletContext)); } diff --git a/Substrate.NET.Metadata/Conversion/Internal/SearchV14.cs b/Substrate.NET.Metadata/Conversion/Internal/SearchV14.cs index e5c4f67..70af7b2 100644 --- a/Substrate.NET.Metadata/Conversion/Internal/SearchV14.cs +++ b/Substrate.NET.Metadata/Conversion/Internal/SearchV14.cs @@ -34,16 +34,11 @@ public static MetadataV14 MetadataV14 } } - /// - /// The hard coded Polkadot event runtime index in the V14 Types dictionary - /// - public const int PolkadotRuntimeEventIndex = 20; - public static uint? HardIndexBinding(string type) { return type switch { - "Vec>" => 18, + //"Vec>" => 18, "TaskAddress" => 29, "TaskAddress" => 29, _ => null @@ -88,10 +83,17 @@ public static string HardBinding(string type, string palletContext) "TransactionPriority" => "U64", "SubmissionIndicesOf" => "Vec<([U128;3],U32)>", "SignedSubmissionOf" => "SignedSubmission", + "EventRecord" => "EventRecord", _ => type }; } + //public static bool HasOverride(int index, ConversionBuilder conversionBuilder) + //{ + // var pt = FindTypeByIndex(index); + + //} + public static PortableType FindTypeByIndex(int index) { return MetadataV14.RuntimeMetadataData.Lookup.Value.Single(x => x.Id.Value == index); @@ -100,8 +102,11 @@ public static PortableType FindTypeByIndex(int index) public static (int index, SearchResult searchResult) SearchIndexByNode(NodeBuilderType node, ConversionBuilder conversionBuilder) { var potentialIndex = FindIndexByClass(node.Adapted); + if (potentialIndex != null) { + //var b = HasOverride(potentialIndex!.Value, conversionBuilder); + node.Index = potentialIndex.Value; return (potentialIndex.Value, SearchResult.Founded); } diff --git a/Substrate.NET.Metadata/Substrate.NET.Metadata.csproj b/Substrate.NET.Metadata/Substrate.NET.Metadata.csproj index 07b0997..00c91e2 100644 --- a/Substrate.NET.Metadata/Substrate.NET.Metadata.csproj +++ b/Substrate.NET.Metadata/Substrate.NET.Metadata.csproj @@ -17,8 +17,8 @@ - - + + diff --git a/Substrate.NET.Metadata/V10/RuntimeMetadataV10.cs b/Substrate.NET.Metadata/V10/RuntimeMetadataV10.cs index 96605d2..37bbf9a 100644 --- a/Substrate.NET.Metadata/V10/RuntimeMetadataV10.cs +++ b/Substrate.NET.Metadata/V10/RuntimeMetadataV10.cs @@ -40,7 +40,7 @@ internal RuntimeMetadataV14 ToRuntimeMetadataV14() { var conversion = new ConversionBuilder(new List()); - conversion.CreateUnknownNode(); + conversion.CreateUnknownType(); conversion.CreateEventBlockchainRuntimeEvent(); var res = new RuntimeMetadataV14(); diff --git a/Substrate.NET.Metadata/V11/RuntimeMetadataV11.cs b/Substrate.NET.Metadata/V11/RuntimeMetadataV11.cs index 2a97231..b016a4e 100644 --- a/Substrate.NET.Metadata/V11/RuntimeMetadataV11.cs +++ b/Substrate.NET.Metadata/V11/RuntimeMetadataV11.cs @@ -35,7 +35,7 @@ internal RuntimeMetadataV14 ToRuntimeMetadataV14() { var conversion = new ConversionBuilder(new List()); - conversion.CreateUnknownNode(); + conversion.CreateUnknownType(); conversion.CreateEventBlockchainRuntimeEvent(); var res = new RuntimeMetadataV14(); diff --git a/Substrate.NET.Metadata/V12/RuntimeMetadataV12.cs b/Substrate.NET.Metadata/V12/RuntimeMetadataV12.cs index 5490fad..5753747 100644 --- a/Substrate.NET.Metadata/V12/RuntimeMetadataV12.cs +++ b/Substrate.NET.Metadata/V12/RuntimeMetadataV12.cs @@ -41,7 +41,7 @@ internal RuntimeMetadataV14 ToRuntimeMetadataV14() { var conversion = new ConversionBuilder(new List()); - conversion.CreateUnknownNode(); + conversion.CreateUnknownType(); conversion.CreateEventBlockchainRuntimeEvent(); var res = new RuntimeMetadataV14(); diff --git a/Substrate.NET.Metadata/V13/RuntimeMetadataV13.cs b/Substrate.NET.Metadata/V13/RuntimeMetadataV13.cs index 3df3307..df02f9e 100644 --- a/Substrate.NET.Metadata/V13/RuntimeMetadataV13.cs +++ b/Substrate.NET.Metadata/V13/RuntimeMetadataV13.cs @@ -42,7 +42,7 @@ internal RuntimeMetadataV14 ToRuntimeMetadataV14() { var conversion = new ConversionBuilder(new List()); - conversion.CreateUnknownNode(); + conversion.CreateUnknownType(); conversion.CreateEventBlockchainRuntimeEvent(); var res = new RuntimeMetadataV14(); diff --git a/Substrate.NET.Metadata/V14/MetadataV14.cs b/Substrate.NET.Metadata/V14/MetadataV14.cs index 7d2ad04..ca02cf2 100644 --- a/Substrate.NET.Metadata/V14/MetadataV14.cs +++ b/Substrate.NET.Metadata/V14/MetadataV14.cs @@ -1,5 +1,12 @@ using Substrate.NET.Metadata.V13; using Substrate.NET.Metadata.Base; +using Substrate.NetApi.Model.Meta; +using Substrate.NetApi; +using Substrate.NetApi.Model.Types.Metadata.Base; +using Substrate.NetApi.Model.Types.Metadata.Base; +using Substrate.NET.Metadata.Base.Portable; +using TypeDefEnum = Substrate.NET.Metadata.Base.TypeDefEnum; +using TypeDefComposite = Substrate.NET.Metadata.Base.TypeDefComposite; namespace Substrate.NET.Metadata.V14 { @@ -15,5 +22,342 @@ public MetadataV14(string hex) : base(hex) public override MetadataVersion Version => MetadataVersion.V14; public override string TypeName() => nameof(MetadataV14); + + /// + /// Convert to to keep compatibility with Substrate.NetApi + /// + /// + public MetaData ToNetApiMetadata() + { + var metadata = new MetaData(); + metadata.Origin = "unknown"; + metadata.Magic = Utils.Bytes2HexString(MetaDataInfo.Magic.Bytes); + metadata.Version = MetaDataInfo.Version; + + metadata.NodeMetadata = new NodeMetadataV14() + { + Types = CreateNodeTypeDict(RuntimeMetadataData.Lookup.Value), + Modules = CreateModuleDict(RuntimeMetadataData.Modules.Value), + Extrinsic = CreateExtrinsic(RuntimeMetadataData.Extrinsic), + }; + + return metadata; + } + + /// + /// Create Node Type Dictionary + /// + /// + /// + public static Dictionary CreateNodeTypeDict(PortableType[] types) + { + var result = new Dictionary(); + + foreach (var type in types) + { + var path = type.Ty.Path.Value.Length == 0 ? null : type.Ty.Path.Value.Select(p => p.Value).ToArray(); + var typeParams = type.Ty.TypeParams.Value.Length == 0 ? null : type.Ty.TypeParams.Value.Select(p => + { + return new NodeTypeParam() + { + Name = p.Name.Value, + TypeId = p.TypeParameterType.Value?.Value + }; + }).ToArray(); + + var typeDefValue = (NetApi.Model.Types.Metadata.Base.TypeDefEnum)type.Ty.TypeDef.Value; + var docs = type.Ty.Docs == null || type.Ty.Docs.Value.Length == 0 ? null : type.Ty.Docs.Value.Select(p => p.Value).ToArray(); + + NodeType nodeType = null; + switch (typeDefValue) + { + case (NetApi.Model.Types.Metadata.Base.TypeDefEnum)TypeDefEnum.Composite: + { + var typeDef = (type.Ty.TypeDef.Value2 as TypeDefComposite).ToNetApi(); + nodeType = new NodeTypeComposite() + { + Id = type.Id.Value, + Path = path, + TypeParams = typeParams, + TypeDef = typeDefValue, + TypeFields = typeDef.Fields.Value.Length == 0 ? null : typeDef.Fields.Value.Select(p => + { + var fDocs = p.Docs == null || p.Docs.Value.Length == 0 ? null : p.Docs.Value.Select(q => q.Value).ToArray(); + return new NodeTypeField() + { + Name = p.FieldName.Value?.Value, + TypeName = p.FieldTypeName.Value?.Value, + TypeId = p.FieldTy.Value, + Docs = fDocs + }; + }).ToArray(), + Docs = docs + }; + } + break; + + case (NetApi.Model.Types.Metadata.Base.TypeDefEnum)TypeDefEnum.Variant: + { + var typeDef = (type.Ty.TypeDef.Value2 as Base.TypeDefVariant).ToNetApi(); + nodeType = new NodeTypeVariant() + { + Id = type.Id.Value, + Path = path, + TypeParams = typeParams, + TypeDef = typeDefValue, + Variants = typeDef.TypeParam.Value.Length == 0 ? null : typeDef.TypeParam.Value.Select(p => + { + var vDocs = p.Docs == null || p.Docs.Value.Length == 0 ? null : p.Docs.Value.Select(q => q.Value).ToArray(); + return new TypeVariant() + { + Name = p.VariantName.Value, + TypeFields = p.VariantFields.Value.Length == 0 ? null : p.VariantFields.Value.Select(q => + { + var fDocs = q.Docs == null || q.Docs.Value.Length == 0 ? null : q.Docs.Value.Select(r => r.Value).ToArray(); + return new NodeTypeField() + { + Name = q.FieldName.Value?.Value, + TypeName = q.FieldTypeName.Value?.Value, + TypeId = q.FieldTy.Value, + Docs = fDocs + }; + }).ToArray(), + Index = p.Index.Value, + Docs = vDocs + }; + }).ToArray(), + Docs = docs + }; + } + break; + + case (NetApi.Model.Types.Metadata.Base.TypeDefEnum)TypeDefEnum.Sequence: + { + var typeDef = (type.Ty.TypeDef.Value2 as Base.TypeDefSequence).ToNetApi(); + nodeType = new NodeTypeSequence() + { + Id = type.Id.Value, + Path = path, + TypeParams = typeParams, + TypeDef = typeDefValue, + TypeId = typeDef.TypeParam.Value, + Docs = docs + }; + } + break; + + case (NetApi.Model.Types.Metadata.Base.TypeDefEnum)TypeDefEnum.Array: + { + var typeDef = (type.Ty.TypeDef.Value2 as Base.TypeDefArray).ToNetApi(); + nodeType = new NodeTypeArray() + { + Id = type.Id.Value, + Path = path, + TypeParams = typeParams, + TypeDef = typeDefValue, + TypeId = typeDef.TypeParam.Value, + Length = typeDef.Len.Value, + Docs = docs + }; + } + break; + + case (NetApi.Model.Types.Metadata.Base.TypeDefEnum)TypeDefEnum.Tuple: + { + var typeDef = (type.Ty.TypeDef.Value2 as Base.TypeDefTuple).ToNetApi(); + nodeType = new NodeTypeTuple() + { + Id = type.Id.Value, + Path = path, + TypeParams = typeParams, + TypeDef = typeDefValue, + TypeIds = typeDef.Fields.Value.Select(p => (uint)p.Value).ToArray(), + Docs = docs + }; + } + break; + + case (NetApi.Model.Types.Metadata.Base.TypeDefEnum)TypeDefEnum.Primitive: + { + var typeDef = (Substrate.NetApi.Model.Types.Metadata.Base.TypeDefPrimitive)Enum.Parse(typeof(Base.TypeDefPrimitive), type.Ty.TypeDef.Value2.ToString()); + nodeType = new NodeTypePrimitive() + { + Id = type.Id.Value, + Path = path, + TypeParams = typeParams, + TypeDef = typeDefValue, + Primitive = typeDef, + Docs = docs + }; + } + break; + + case (NetApi.Model.Types.Metadata.Base.TypeDefEnum)TypeDefEnum.Compact: + { + var typeDef = (type.Ty.TypeDef.Value2 as Base.TypeDefCompact).ToNetApi(); + nodeType = new NodeTypeCompact() + { + Id = type.Id.Value, + Path = path, + TypeParams = typeParams, + TypeDef = typeDefValue, + TypeId = typeDef.TypeParam.Value, + Docs = docs + }; + } + break; + + case (NetApi.Model.Types.Metadata.Base.TypeDefEnum)TypeDefEnum.BitSequence: + { + var typeDef = (type.Ty.TypeDef.Value2 as Base.TypeDefBitSequence).ToNetApi(); + nodeType = new NodeTypeBitSequence() + { + Id = type.Id.Value, + Path = path, + TypeParams = typeParams, + TypeDef = typeDefValue, + TypeIdOrder = typeDef.BitOrderType.Value, + TypeIdStore = typeDef.BitStoreType.Value, + Docs = docs + }; + } + break; + } + + if (nodeType != null) + { + result.Add(nodeType.Id, nodeType); + } + } + + return result; + } + + /// + /// Create Module Dictionary + /// + /// + /// + /// + public static Dictionary CreateModuleDict(ModuleMetadataV14[] modules) + { + var result = new Dictionary(); + + foreach (var module in modules) + { + var palletModule = new PalletModule() + { + Name = module.Name.Value, + Index = module.Index.Value, + }; + result.Add(module.Index.Value, palletModule); + + if (module.Storage.OptionFlag) + { + var storage = module.Storage.Value; + palletModule.Storage = new PalletStorage() + { + Prefix = storage.Prefix.Value, + }; + + palletModule.Storage.Entries = new Entry[storage.Entries.Value.Length]; + for (int i = 0; i < storage.Entries.Value.Length; i++) + { + var entry = storage.Entries.Value[i]; + palletModule.Storage.Entries[i] = new Entry() + { + Name = entry.Name.Value, + Modifier = (Storage.Modifier)entry.StorageModifier.Value, + StorageType = (Storage.Type)entry.StorageType.Value, + Default = entry.StorageDefault.Value.Select(p => p.Value).ToArray(), + Docs = entry.Documentation.Value.Select(p => p.Value).ToArray(), + }; + + switch (entry.StorageType.Value) + { + case (StorageType.Type)Storage.Type.Plain: + palletModule.Storage.Entries[i].TypeMap = (((Base.TType)entry.StorageType.Value2).Value, null); + break; + + case (StorageType.Type)Storage.Type.Map: + var typeMap = (entry.StorageType.Value2 as StorageEntryTypeMapV14).ToStorageEntryTypeMap(); + palletModule.Storage.Entries[i].TypeMap = (0, new TypeMap() + { + Hashers = typeMap.Hashers.Value.Select(p => p.Value).ToArray(), + Key = (uint)typeMap.Key.Value, + Value = (uint)typeMap.Value.Value + }); + break; + + default: + throw new NotImplementedException(); + } + } + } + + if (module.Calls.OptionFlag) + { + var calls = module.Calls.Value; + palletModule.Calls = new PalletCalls() + { + TypeId = (uint)calls.ElemType.Value + }; + } + + if (module.Events.OptionFlag) + { + var events = module.Events.Value; + palletModule.Events = new PalletEvents() + { + TypeId = (uint)events.ElemType.Value + }; + } + + var constants = module.Constants.Value; + palletModule.Constants = new PalletConstant[constants.Length]; + for (int i = 0; i < constants.Length; i++) + { + NetApi.Model.Types.Metadata.V14.PalletConstantMetadata constant = constants[i].ToPalletConstantNetApi(); + palletModule.Constants[i] = new PalletConstant() + { + Name = constant.ConstantName.Value, + TypeId = (uint)constant.ConstantType.Value, + Value = constant.ConstantValue.Value.Select(p => p.Value).ToArray(), + Docs = constant.Docs.Value.Select(p => p.Value).ToArray() + }; + } + + if (module.Errors.OptionFlag) + { + var errors = module.Errors.Value; + palletModule.Errors = new PalletErrors() + { + TypeId = (uint)errors.ElemType.Value + }; + } + } + + return result; + } + + /// + /// Create Extrinsic + /// + /// + /// + private static ExtrinsicMetadata CreateExtrinsic(ExtrinsicMetadataV14 extrinsic) + { + return new ExtrinsicMetadata() + { + //TypeId = (uint)extrinsic.ExtrinsicType.Value, + //Version = (int)extrinsic.Version.Value, + //SignedExtensions = extrinsic.SignedExtensions.Value.Select(p => new SignedExtensionMetadata() + //{ + // SignedIdentifier = p.SignedIdentifier.Value, + // SignedExtType = (uint)p.SignedExtType.Value, + // AddSignedExtType = (uint)p.AddSignedExtType.Value, + //}).ToArray() + }; + } } } diff --git a/Substrate.NET.Metadata/V14/PalletMetadataV14.cs b/Substrate.NET.Metadata/V14/PalletMetadataV14.cs index ca4d80c..6249e60 100644 --- a/Substrate.NET.Metadata/V14/PalletMetadataV14.cs +++ b/Substrate.NET.Metadata/V14/PalletMetadataV14.cs @@ -134,6 +134,13 @@ public override void Decode(byte[] byteArray, ref int p) public BaseVec> Hashers { get; internal set; } = default!; public TType Key { get; internal set; } = default!; public TType Value { get; internal set; } = default!; + + public NetApi.Model.Types.Metadata.Base.StorageEntryTypeMap ToStorageEntryTypeMap() + { + var res = new NetApi.Model.Types.Metadata.Base.StorageEntryTypeMap(); + res.Create(Encode()); + return res; + } } public class PalletCallMetadataV14 : BaseType, IMetadataName, IMetadataType @@ -218,6 +225,14 @@ public override void Decode(byte[] byteArray, ref int p) public TType ConstantType { get; internal set; } = default!; public ByteGetter ConstantValue { get; internal set; } = default!; public BaseVec Documentation { get; internal set; } = default!; + + public NetApi.Model.Types.Metadata.V14.PalletConstantMetadata ToPalletConstantNetApi() + { + var res = new NetApi.Model.Types.Metadata.V14.PalletConstantMetadata(); + res.Create(Encode()); + + return res; + } } public class PalletErrorMetadataV14 : BaseType, IMetadataName, IMetadataType diff --git a/Substrate.NET.Metadata/V9/RuntimeMetadataV9.cs b/Substrate.NET.Metadata/V9/RuntimeMetadataV9.cs index 9ff0ae7..a806dc9 100644 --- a/Substrate.NET.Metadata/V9/RuntimeMetadataV9.cs +++ b/Substrate.NET.Metadata/V9/RuntimeMetadataV9.cs @@ -33,7 +33,7 @@ internal RuntimeMetadataV14 ToRuntimeMetadataV14() { var conversion = new ConversionBuilder(new List()); - conversion.CreateUnknownNode(); + conversion.CreateUnknownType(); conversion.CreateEventBlockchainRuntimeEvent(); var res = new RuntimeMetadataV14(); From 9e7b471f1c468a388fe5d6d4fdc5d94537b395c0 Mon Sep 17 00:00:00 2001 From: Apolixit Date: Wed, 11 Sep 2024 23:29:25 +0200 Subject: [PATCH 10/15] Bump to 0.9.24-rc5 --- Substrate.NET.Metadata/Substrate.NET.Metadata.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Substrate.NET.Metadata/Substrate.NET.Metadata.csproj b/Substrate.NET.Metadata/Substrate.NET.Metadata.csproj index 00c91e2..14d70df 100644 --- a/Substrate.NET.Metadata/Substrate.NET.Metadata.csproj +++ b/Substrate.NET.Metadata/Substrate.NET.Metadata.csproj @@ -18,7 +18,7 @@ - + From bc5e0f47b6630ef34cf917b9b49d416fee2de202 Mon Sep 17 00:00:00 2001 From: Apolixit Date: Sat, 14 Sep 2024 12:29:07 +0200 Subject: [PATCH 11/15] Remove uncessary MetadataService and convert it to a simple class with static method --- .../MetadataServiceBasicTest.cs | 32 +++---- .../MetadataServiceV10Test.cs | 18 ++-- .../MetadataServiceV11Test.cs | 24 ++---- .../MetadataServiceV12Test.cs | 16 +--- .../MetadataServiceV13Test.cs | 16 +--- .../MetadataServiceV14Test.cs | 28 +++--- .../MetadataServiceV15Test.cs | 7 -- .../MetadataServiceV9Test.cs | 17 +--- .../Substrate.NET.Metadata.Tests.csproj | 2 +- .../Service/IMetadataService.cs | 86 ------------------- .../{MetadataService.cs => MetadataUtils.cs} | 72 ++++++++-------- .../Substrate.NET.Metadata.csproj | 2 +- 12 files changed, 85 insertions(+), 235 deletions(-) delete mode 100644 Substrate.NET.Metadata/Service/IMetadataService.cs rename Substrate.NET.Metadata/Service/{MetadataService.cs => MetadataUtils.cs} (89%) diff --git a/Substrate.NET.Metadata.Tests/MetadataServiceBasicTest.cs b/Substrate.NET.Metadata.Tests/MetadataServiceBasicTest.cs index d2a1d59..096b33d 100644 --- a/Substrate.NET.Metadata.Tests/MetadataServiceBasicTest.cs +++ b/Substrate.NET.Metadata.Tests/MetadataServiceBasicTest.cs @@ -11,14 +11,6 @@ namespace Substrate.NET.Metadata.Tests { public class MetadataServiceBasicTest : MetadataBaseTest { - private MetadataService _metadataService; - - [SetUp] - public void Setup() - { - _metadataService = new MetadataService(); - } - private IList generatePalletCallMetadataV9(int nb) { return Enumerable.Range(1, nb).Select(x => new PalletCallMetadataV9() @@ -81,7 +73,7 @@ public void MetadataV9_PalletCallDiff_ShouldSuceed() calls2[2].Args.Value[0].CallType.Value = "Changed !"; var calls_2 = new List() { calls2[1], calls2[2], calls2[3] }; - var res = _metadataService.CompareName(calls_1, calls_2).ToList(); + var res = MetadataUtils.CompareName(calls_1, calls_2).ToList(); Assert.That(res, Is.Not.Null); Assert.That(res[0], Is.EqualTo((CompareStatus.Added, calls2[3]))); @@ -99,7 +91,7 @@ public void MetadataV9_PalletEventDiff_ShouldSuceed() calls2[2].Args.Value[0].Value = "Changed !"; var calls_2 = new List() { calls2[1], calls2[2], calls2[3] }; - var res = _metadataService.CompareName(calls_1, calls_2).ToList(); + var res = MetadataUtils.CompareName(calls_1, calls_2).ToList(); Assert.That(res, Is.Not.Null); Assert.That(res[0], Is.EqualTo((CompareStatus.Added, calls2[3]))); @@ -117,7 +109,7 @@ public void MetadataV9_PalletConstantDiff_ShouldSuceed() calls2[2].ConstantType.Value = "Changed !"; var calls_2 = new List() { calls2[1], calls2[2], calls2[3] }; - var res = _metadataService.CompareName(calls_1, calls_2).ToList(); + var res = MetadataUtils.CompareName(calls_1, calls_2).ToList(); Assert.That(res, Is.Not.Null); Assert.That(res[0], Is.EqualTo((CompareStatus.Added, calls2[3]))); @@ -135,7 +127,7 @@ public void MetadataV9_PalletErrorDiff_ShouldSuceed() calls2[2].Docs.Value[0].Value = "Changed !"; var calls_2 = new List() { calls2[1], calls2[2], calls2[3] }; - var res = _metadataService.CompareName(calls_1, calls_2).ToList(); + var res = MetadataUtils.CompareName(calls_1, calls_2).ToList(); Assert.That(res, Is.Not.Null); Assert.That(res[0], Is.EqualTo((CompareStatus.Added, calls2[3]))); @@ -177,25 +169,25 @@ public void Metadata_CheckDifferentialPallet_ShouldSuceed() } }; - Assert.That(_metadataService.CompareName(null, null).Count(), Is.EqualTo(0)); + Assert.That(MetadataUtils.CompareName(null, null).Count(), Is.EqualTo(0)); - var resOnlyFirstListNull = _metadataService.CompareName(m1, null); + var resOnlyFirstListNull = MetadataUtils.CompareName(m1, null); Assert.That(resOnlyFirstListNull.All(x => x.Item1 == CompareStatus.Removed), Is.True); Assert.That(resOnlyFirstListNull.Count(), Is.EqualTo(m1.Count)); - var resOnlyFirstListEmpty = _metadataService.CompareName(m1, new List()); + var resOnlyFirstListEmpty = MetadataUtils.CompareName(m1, new List()); Assert.That(resOnlyFirstListEmpty.All(x => x.Item1 == CompareStatus.Removed), Is.True); Assert.That(resOnlyFirstListEmpty.Count(), Is.EqualTo(m1.Count)); - var resOnlySecondListNull = _metadataService.CompareName(null, m2); + var resOnlySecondListNull = MetadataUtils.CompareName(null, m2); Assert.That(resOnlySecondListNull.All(x => x.Item1 == CompareStatus.Added), Is.True); Assert.That(resOnlySecondListNull.Count(), Is.EqualTo(m2.Count)); - var resOnlySecondListEmpty = _metadataService.CompareName(null, m2); + var resOnlySecondListEmpty = MetadataUtils.CompareName(null, m2); Assert.That(resOnlySecondListEmpty.All(x => x.Item1 == CompareStatus.Added), Is.True); Assert.That(resOnlySecondListEmpty.Count(), Is.EqualTo(m2.Count)); - var res = _metadataService.CompareName(m1, m2).ToList(); + var res = MetadataUtils.CompareName(m1, m2).ToList(); Assert.That(res[0].Item1, Is.EqualTo(CompareStatus.Added)); Assert.That(res[1].Item1, Is.EqualTo(CompareStatus.Removed)); @@ -204,7 +196,7 @@ public void Metadata_CheckDifferentialPallet_ShouldSuceed() [Test] public void DifferentMetadataMajorVersion_ShouldFail() { - Assert.Throws(() => _metadataService.EnsureMetadataVersion( + Assert.Throws(() => MetadataUtils.EnsureMetadataVersion( readMetadataFromFile("V11\\MetadataV11_0"), readMetadataFromFile("V14\\MetadataV14_9420"))); } @@ -213,7 +205,7 @@ public void DifferentMetadataMajorVersion_ShouldFail() public void MetadataV14_GetMetadataVersion_ShouldSucceed() { Assert.That( - _metadataService.GetMetadataVersion(readMetadataFromFile("V14\\MetadataV14_9420")), + MetadataUtils.GetMetadataVersion(readMetadataFromFile("V14\\MetadataV14_9420")), Is.EqualTo(MetadataVersion.V14)); } } diff --git a/Substrate.NET.Metadata.Tests/MetadataServiceV10Test.cs b/Substrate.NET.Metadata.Tests/MetadataServiceV10Test.cs index ca3579e..f3508ab 100644 --- a/Substrate.NET.Metadata.Tests/MetadataServiceV10Test.cs +++ b/Substrate.NET.Metadata.Tests/MetadataServiceV10Test.cs @@ -12,14 +12,6 @@ namespace Substrate.NET.Metadata.Tests { public class MetadataServiceV10Test : MetadataBaseTest { - private MetadataService _metadataService; - - [SetUp] - public void Setup() - { - _metadataService = new MetadataService(); - } - [Test] public void MetadataV10_SpecVersionCompare_V1032_And_V1039_ShouldSucceed() { @@ -29,7 +21,7 @@ public void MetadataV10_SpecVersionCompare_V1032_And_V1039_ShouldSucceed() // TODO : debug this //Assert.That(_metadataService.EnsureMetadataVersion(metadataSource, metadataDestination), Is.EqualTo(MetadataVersion.V10)); - var res = _metadataService.MetadataCompareV10( + var res = MetadataUtils.MetadataCompareV10( new MetadataV10(metadataSource), new MetadataV10(metadataDestination)); @@ -42,9 +34,9 @@ public void MetadataV10_SpecVersionCompare_V1039_And_V1040_ShouldSucceed() var metadataSource = readMetadataFromFile("V10\\MetadataV10_Kusama_1039"); var metadataDestination = readMetadataFromFile("V10\\MetadataV10_Kusama_1040"); - Assert.That(_metadataService.EnsureMetadataVersion(metadataSource, metadataDestination), Is.EqualTo(MetadataVersion.V10)); + Assert.That(MetadataUtils.EnsureMetadataVersion(metadataSource, metadataDestination), Is.EqualTo(MetadataVersion.V10)); - var res = _metadataService.MetadataCompareV10( + var res = MetadataUtils.MetadataCompareV10( new MetadataV10(metadataSource), new MetadataV10(metadataDestination)); @@ -58,8 +50,8 @@ public void MetadataV10_V1039_And_V1040_PalletHasChanged_ShouldSucceed() var metadataSource = readMetadataFromFile("V10\\MetadataV10_Kusama_1039"); var metadataDestination = readMetadataFromFile("V10\\MetadataV10_Kusama_1040"); - Assert.That(_metadataService.HasPalletChangedVersionBetween("Society", metadataSource, metadataDestination), Is.False); - Assert.That(_metadataService.HasPalletChangedVersionBetween("Balances", metadataSource, metadataDestination), Is.False); + Assert.That(MetadataUtils.HasPalletChangedVersionBetween("Society", metadataSource, metadataDestination), Is.False); + Assert.That(MetadataUtils.HasPalletChangedVersionBetween("Balances", metadataSource, metadataDestination), Is.False); } } } diff --git a/Substrate.NET.Metadata.Tests/MetadataServiceV11Test.cs b/Substrate.NET.Metadata.Tests/MetadataServiceV11Test.cs index e72b9c5..8d3bf88 100644 --- a/Substrate.NET.Metadata.Tests/MetadataServiceV11Test.cs +++ b/Substrate.NET.Metadata.Tests/MetadataServiceV11Test.cs @@ -6,23 +6,15 @@ namespace Substrate.NET.Metadata.Tests { public class MetadataServiceV11Test : MetadataBaseTest { - private MetadataService _metadataService; - - [SetUp] - public void Setup() - { - _metadataService = new MetadataService(); - } - [Test] public void MetadataV11_SpecVersionCompare_V0_And_V1_ShouldSucceed() { var metadataSource = readMetadataFromFile("V11\\MetadataV11_0"); var metadataDestination = readMetadataFromFile("V11\\MetadataV11_1"); - Assert.That(_metadataService.EnsureMetadataVersion(metadataSource, metadataDestination), Is.EqualTo(MetadataVersion.V11)); + Assert.That(MetadataUtils.EnsureMetadataVersion(metadataSource, metadataDestination), Is.EqualTo(MetadataVersion.V11)); - var res = _metadataService.MetadataCompareV11( + var res = MetadataUtils.MetadataCompareV11( new MetadataV11(metadataSource), new MetadataV11(metadataDestination)); @@ -51,9 +43,9 @@ public void MetadataV11_SpecVersionCompare_V6_And_V7_ShouldSucceed() var metadataSource = readMetadataFromFile("V11\\MetadataV11_6"); var metadataDestination = readMetadataFromFile("V11\\MetadataV11_7"); - Assert.That(_metadataService.EnsureMetadataVersion(metadataSource, metadataDestination), Is.EqualTo(MetadataVersion.V11)); + Assert.That(MetadataUtils.EnsureMetadataVersion(metadataSource, metadataDestination), Is.EqualTo(MetadataVersion.V11)); - var res = _metadataService.MetadataCompareV11( + var res = MetadataUtils.MetadataCompareV11( new MetadataV11(metadataSource), new MetadataV11(metadataDestination)); @@ -81,9 +73,9 @@ public void MetadataV11_SpecVersionCompare_V23_And_V24_ShouldSucceed() var metadataSource = readMetadataFromFile("V11\\MetadataV11_23"); var metadataDestination = readMetadataFromFile("V11\\MetadataV11_24"); - Assert.That(_metadataService.EnsureMetadataVersion(metadataSource, metadataDestination), Is.EqualTo(MetadataVersion.V11)); + Assert.That(MetadataUtils.EnsureMetadataVersion(metadataSource, metadataDestination), Is.EqualTo(MetadataVersion.V11)); - var res = _metadataService.MetadataCompareV11( + var res = MetadataUtils.MetadataCompareV11( new MetadataV11(metadataSource), new MetadataV11(metadataDestination)); @@ -133,10 +125,10 @@ public void MetadataV11_V23_And_V24_PalletHasChanged_ShouldSucceed() var metadataSource = readMetadataFromFile("V11\\MetadataV11_23"); var metadataDestination = readMetadataFromFile("V11\\MetadataV11_24"); - Assert.That(_metadataService.HasPalletChangedVersionBetween("Multisig", metadataSource, metadataDestination)); + Assert.That(MetadataUtils.HasPalletChangedVersionBetween("Multisig", metadataSource, metadataDestination)); // Purschase has been removed, but does not count as changed - Assert.That(_metadataService.HasPalletChangedVersionBetween("Purchase", metadataSource, metadataDestination), Is.False); + Assert.That(MetadataUtils.HasPalletChangedVersionBetween("Purchase", metadataSource, metadataDestination), Is.False); } [Test] diff --git a/Substrate.NET.Metadata.Tests/MetadataServiceV12Test.cs b/Substrate.NET.Metadata.Tests/MetadataServiceV12Test.cs index 6e90339..9b09e14 100644 --- a/Substrate.NET.Metadata.Tests/MetadataServiceV12Test.cs +++ b/Substrate.NET.Metadata.Tests/MetadataServiceV12Test.cs @@ -6,23 +6,15 @@ namespace Substrate.NET.Metadata.Tests { public class MetadataServiceV12Test : MetadataBaseTest { - private MetadataService _metadataService; - - [SetUp] - public void Setup() - { - _metadataService = new MetadataService(); - } - [Test] public void MetadataV12_SpecVersionCompare_V27_And_V28_ShouldSucceed() { var metadataSource = readMetadataFromFile("V12\\MetadataV12_27"); var metadataDestination = readMetadataFromFile("V12\\MetadataV12_28"); - Assert.That(_metadataService.EnsureMetadataVersion(metadataSource, metadataDestination), Is.EqualTo(MetadataVersion.V12)); + Assert.That(MetadataUtils.EnsureMetadataVersion(metadataSource, metadataDestination), Is.EqualTo(MetadataVersion.V12)); - var res = _metadataService.MetadataCompareV12( + var res = MetadataUtils.MetadataCompareV12( new MetadataV12(metadataSource), new MetadataV12(metadataDestination)); @@ -105,9 +97,9 @@ public void MetadataV12_V27_And_V28_PalletHasChanged_ShouldSucceed() var metadataSource = readMetadataFromFile("V12\\MetadataV12_27"); var metadataDestination = readMetadataFromFile("V12\\MetadataV12_28"); - Assert.That(_metadataService.HasPalletChangedVersionBetween("ElectionsPhragmen", metadataSource, metadataDestination)); + Assert.That(MetadataUtils.HasPalletChangedVersionBetween("ElectionsPhragmen", metadataSource, metadataDestination)); - Assert.That(_metadataService.HasPalletChangedVersionBetween("Balances", metadataSource, metadataDestination), Is.False); + Assert.That(MetadataUtils.HasPalletChangedVersionBetween("Balances", metadataSource, metadataDestination), Is.False); } } } diff --git a/Substrate.NET.Metadata.Tests/MetadataServiceV13Test.cs b/Substrate.NET.Metadata.Tests/MetadataServiceV13Test.cs index 6283f2c..79b2dfe 100644 --- a/Substrate.NET.Metadata.Tests/MetadataServiceV13Test.cs +++ b/Substrate.NET.Metadata.Tests/MetadataServiceV13Test.cs @@ -6,23 +6,15 @@ namespace Substrate.NET.Metadata.Tests { public class MetadataServiceV13Test : MetadataBaseTest { - private MetadataService _metadataService; - - [SetUp] - public void Setup() - { - _metadataService = new MetadataService(); - } - [Test] public void MetadataV13_SpecVersionCompare_V9080_And_V9090_ShouldSucceed() { var metadataSource = readMetadataFromFile("V13\\MetadataV13_9080"); var metadataDestination = readMetadataFromFile("V13\\MetadataV13_9090"); - Assert.That(_metadataService.EnsureMetadataVersion(metadataSource, metadataDestination), Is.EqualTo(MetadataVersion.V13)); + Assert.That(MetadataUtils.EnsureMetadataVersion(metadataSource, metadataDestination), Is.EqualTo(MetadataVersion.V13)); - var res = _metadataService.MetadataCompareV13( + var res = MetadataUtils.MetadataCompareV13( new MetadataV13(metadataSource), new MetadataV13(metadataDestination)); @@ -51,8 +43,8 @@ public void MetadataV13_V9080_And_V9090_PalletHasChanged_ShouldSucceed() var metadataSource = readMetadataFromFile("V13\\MetadataV13_9080"); var metadataDestination = readMetadataFromFile("V13\\MetadataV13_9090"); - Assert.That(_metadataService.HasPalletChangedVersionBetween("Balances", metadataSource, metadataDestination)); - Assert.That(_metadataService.HasPalletChangedVersionBetween("Babe", metadataSource, metadataDestination), Is.False); + Assert.That(MetadataUtils.HasPalletChangedVersionBetween("Balances", metadataSource, metadataDestination)); + Assert.That(MetadataUtils.HasPalletChangedVersionBetween("Babe", metadataSource, metadataDestination), Is.False); } } } diff --git a/Substrate.NET.Metadata.Tests/MetadataServiceV14Test.cs b/Substrate.NET.Metadata.Tests/MetadataServiceV14Test.cs index e46a08d..ef146b2 100644 --- a/Substrate.NET.Metadata.Tests/MetadataServiceV14Test.cs +++ b/Substrate.NET.Metadata.Tests/MetadataServiceV14Test.cs @@ -6,23 +6,15 @@ namespace Substrate.NET.Metadata.Tests { public class MetadataServiceV14Test : MetadataBaseTest { - private MetadataService _metadataService; - - [SetUp] - public void Setup() - { - _metadataService = new MetadataService(); - } - [Test] public void MetadataV14_SpecVersionCompare_V9110_And_V9122_ShouldSucceed() { var metadataSource = readMetadataFromFile("V14\\MetadataV14_9110"); var metadataDestination = readMetadataFromFile("V14\\MetadataV14_9122"); - Assert.That(_metadataService.EnsureMetadataVersion(metadataSource, metadataDestination), Is.EqualTo(MetadataVersion.V14)); + Assert.That(MetadataUtils.EnsureMetadataVersion(metadataSource, metadataDestination), Is.EqualTo(MetadataVersion.V14)); - var res = _metadataService.MetadataCompareV14( + var res = MetadataUtils.MetadataCompareV14( new MetadataV14(metadataSource), new MetadataV14(metadataDestination)); @@ -35,9 +27,9 @@ public void MetadataV14_SpecVersionCompare_V9420_And_V9430_ShouldSucceed() var metadataSource = readMetadataFromFile("V14\\MetadataV14_9420"); var metadataDestination = readMetadataFromFile("V14\\MetadataV14_9430"); - Assert.That(_metadataService.EnsureMetadataVersion(metadataSource, metadataDestination), Is.EqualTo(MetadataVersion.V14)); + Assert.That(MetadataUtils.EnsureMetadataVersion(metadataSource, metadataDestination), Is.EqualTo(MetadataVersion.V14)); - var res = _metadataService.MetadataCompareV14( + var res = MetadataUtils.MetadataCompareV14( new MetadataV14(metadataSource), new MetadataV14(metadataDestination)); @@ -50,9 +42,9 @@ public void MetadataV14_SpecVersionCompare_V9370_And_V9420_ShouldSucceed() var metadataSource = readMetadataFromFile("V14\\MetadataV14_9370"); var metadataDestination = readMetadataFromFile("V14\\MetadataV14_9420"); - Assert.That(_metadataService.EnsureMetadataVersion(metadataSource, metadataDestination), Is.EqualTo(MetadataVersion.V14)); + Assert.That(MetadataUtils.EnsureMetadataVersion(metadataSource, metadataDestination), Is.EqualTo(MetadataVersion.V14)); - var res = _metadataService.MetadataCompareV14( + var res = MetadataUtils.MetadataCompareV14( new MetadataV14(metadataSource), new MetadataV14(metadataDestination)); @@ -87,9 +79,9 @@ public void MetadataV14_SpecVersionCompare_V9270_And_V9280_ShouldSucceed() var metadataSource = readMetadataFromFile("V14\\MetadataV14_9270"); var metadataDestination = readMetadataFromFile("V14\\MetadataV14_9280"); - Assert.That(_metadataService.EnsureMetadataVersion(metadataSource, metadataDestination), Is.EqualTo(MetadataVersion.V14)); + Assert.That(MetadataUtils.EnsureMetadataVersion(metadataSource, metadataDestination), Is.EqualTo(MetadataVersion.V14)); - var res = _metadataService.MetadataCompareV14( + var res = MetadataUtils.MetadataCompareV14( new MetadataV14(metadataSource), new MetadataV14(metadataDestination)); @@ -105,9 +97,9 @@ public void MetadataV14_V9270_And_V9280_PalletHasChanged_ShouldSucceed() var metadataSource = readMetadataFromFile("V14\\MetadataV14_9270"); var metadataDestination = readMetadataFromFile("V14\\MetadataV14_9280"); - Assert.That(_metadataService.HasPalletChangedVersionBetween("Auctions", metadataSource, metadataDestination)); + Assert.That(MetadataUtils.HasPalletChangedVersionBetween("Auctions", metadataSource, metadataDestination)); - Assert.That(_metadataService.HasPalletChangedVersionBetween("AuthorityDiscovery", metadataSource, metadataDestination), Is.False); + Assert.That(MetadataUtils.HasPalletChangedVersionBetween("AuthorityDiscovery", metadataSource, metadataDestination), Is.False); } [Test] diff --git a/Substrate.NET.Metadata.Tests/MetadataServiceV15Test.cs b/Substrate.NET.Metadata.Tests/MetadataServiceV15Test.cs index 9dd3d95..8f1e0a8 100644 --- a/Substrate.NET.Metadata.Tests/MetadataServiceV15Test.cs +++ b/Substrate.NET.Metadata.Tests/MetadataServiceV15Test.cs @@ -7,12 +7,5 @@ namespace Substrate.NET.Metadata.Tests { public class MetadataServiceV15Test : MetadataBaseTest { - private MetadataService _metadataService; - - [SetUp] - public void Setup() - { - _metadataService = new MetadataService(); - } } } diff --git a/Substrate.NET.Metadata.Tests/MetadataServiceV9Test.cs b/Substrate.NET.Metadata.Tests/MetadataServiceV9Test.cs index eec2602..653e46d 100644 --- a/Substrate.NET.Metadata.Tests/MetadataServiceV9Test.cs +++ b/Substrate.NET.Metadata.Tests/MetadataServiceV9Test.cs @@ -12,24 +12,15 @@ namespace Substrate.NET.Metadata.Tests { public class MetadataServiceV9Test : MetadataBaseTest { - - private MetadataService _metadataService; - - [SetUp] - public void Setup() - { - _metadataService = new MetadataService(); - } - [Test] public void MetadataV9_SpecVersionCompare_V1020_And_V1022_ShouldSucceed() { var metadataSource = readMetadataFromFile("V9\\MetadataV9_Kusama_1020"); var metadataDestination = readMetadataFromFile("V9\\MetadataV9_Kusama_1022"); - Assert.That(_metadataService.EnsureMetadataVersion(metadataSource, metadataDestination), Is.EqualTo(MetadataVersion.V9)); + Assert.That(MetadataUtils.EnsureMetadataVersion(metadataSource, metadataDestination), Is.EqualTo(MetadataVersion.V9)); - var res = _metadataService.MetadataCompareV9( + var res = MetadataUtils.MetadataCompareV9( new MetadataV9(metadataSource), new MetadataV9(metadataDestination)); @@ -42,8 +33,8 @@ public void MetadataV9_V1020_And_V1022_PalletHasChanged_ShouldSucceed() var metadataSource = readMetadataFromFile("V9\\MetadataV9_Kusama_1020"); var metadataDestination = readMetadataFromFile("V9\\MetadataV9_Kusama_1022"); - Assert.That(_metadataService.HasPalletChangedVersionBetween("Democracy", metadataSource, metadataDestination)); - Assert.That(_metadataService.HasPalletChangedVersionBetween("Balances", metadataSource, metadataDestination), Is.False); + Assert.That(MetadataUtils.HasPalletChangedVersionBetween("Democracy", metadataSource, metadataDestination)); + Assert.That(MetadataUtils.HasPalletChangedVersionBetween("Balances", metadataSource, metadataDestination), Is.False); } } } diff --git a/Substrate.NET.Metadata.Tests/Substrate.NET.Metadata.Tests.csproj b/Substrate.NET.Metadata.Tests/Substrate.NET.Metadata.Tests.csproj index 193cc87..c3158c9 100644 --- a/Substrate.NET.Metadata.Tests/Substrate.NET.Metadata.Tests.csproj +++ b/Substrate.NET.Metadata.Tests/Substrate.NET.Metadata.Tests.csproj @@ -20,7 +20,7 @@ all runtime; build; native; contentfiles; analyzers; buildtransitive - + diff --git a/Substrate.NET.Metadata/Service/IMetadataService.cs b/Substrate.NET.Metadata/Service/IMetadataService.cs deleted file mode 100644 index 84c567f..0000000 --- a/Substrate.NET.Metadata/Service/IMetadataService.cs +++ /dev/null @@ -1,86 +0,0 @@ -using Substrate.NET.Metadata.Base; -using Substrate.NET.Metadata.Compare; -using Substrate.NET.Metadata.V10; -using Substrate.NET.Metadata.V11; -using Substrate.NET.Metadata.V12; -using Substrate.NET.Metadata.V13; -using Substrate.NET.Metadata.V14; -using Substrate.NET.Metadata.V9; - -namespace Substrate.NET.Metadata.Service -{ - public interface IMetadataService - { - /// - /// Get major version from metadata - /// - /// - /// - MetadataVersion GetMetadataVersion(string hexMetadata); - - /// - /// Check if metadatas have same major version - /// - /// - /// - /// - MetadataVersion EnsureMetadataVersion(string hexMetadata1, string hexMetadata2); - - /// - /// Return true if pallet version has been found and has been modified - /// - /// - /// - /// - /// - bool HasPalletChangedVersionBetween(string palletName, string hexMetadata1, string hexMetadata2); - - /// - /// Compare V9 metadata - /// - /// - /// - /// - MetadataDiffV9 MetadataCompareV9(MetadataV9 m1, MetadataV9 m2); - - /// - /// Compare V10 metadata - /// - /// - /// - /// - MetadataDiffV10 MetadataCompareV10(MetadataV10 m1, MetadataV10 m2); - - /// - /// Compare V11 metadata - /// - /// - /// - /// - MetadataDiffV11 MetadataCompareV11(MetadataV11 m1, MetadataV11 m2); - - /// - /// Compare V12 metadata - /// - /// - /// - /// - MetadataDiffV12 MetadataCompareV12(MetadataV12 m1, MetadataV12 m2); - - /// - /// Compare V13 metadata - /// - /// - /// - /// - MetadataDiffV13 MetadataCompareV13(MetadataV13 m1, MetadataV13 m2); - - /// - /// Compare V14 metadata - /// - /// - /// - /// - MetadataDiffV14 MetadataCompareV14(MetadataV14 m1, MetadataV14 m2); - } -} \ No newline at end of file diff --git a/Substrate.NET.Metadata/Service/MetadataService.cs b/Substrate.NET.Metadata/Service/MetadataUtils.cs similarity index 89% rename from Substrate.NET.Metadata/Service/MetadataService.cs rename to Substrate.NET.Metadata/Service/MetadataUtils.cs index fd5fb3e..9dd5f2f 100644 --- a/Substrate.NET.Metadata/Service/MetadataService.cs +++ b/Substrate.NET.Metadata/Service/MetadataUtils.cs @@ -17,7 +17,7 @@ namespace Substrate.NET.Metadata.Service { - public class MetadataService : IMetadataService + public class MetadataUtils { /// /// Get major version from metadata @@ -25,7 +25,7 @@ public class MetadataService : IMetadataService /// /// The major version (V9 to v15) /// - public MetadataVersion GetMetadataVersion(string hexMetadata) + public static MetadataVersion GetMetadataVersion(string hexMetadata) { Guard.Against.NullOrEmpty(hexMetadata); CheckRuntimeMetadata checkVersion = new(hexMetadata); @@ -50,7 +50,7 @@ public MetadataVersion GetMetadataVersion(string hexMetadata) /// /// /// - public MetadataVersion EnsureMetadataVersion(string hexMetadata1, string hexMetadata2) + public static MetadataVersion EnsureMetadataVersion(string hexMetadata1, string hexMetadata2) { // To be compared, Metadata should have same Major version var v1 = GetMetadataVersion(hexMetadata1); @@ -62,7 +62,7 @@ public MetadataVersion EnsureMetadataVersion(string hexMetadata1, string hexMeta return v1; } - public bool HasPalletChangedVersionBetween(string palletName, string hexMetadata1, string hexMetadata2) + public static bool HasPalletChangedVersionBetween(string palletName, string hexMetadata1, string hexMetadata2) { Guard.Against.NullOrEmpty(palletName); @@ -90,7 +90,7 @@ public bool HasPalletChangedVersionBetween(string palletName, string hexMetadata /// /// /// - public IEnumerable<(CompareStatus, T)> CompareName( + public static IEnumerable<(CompareStatus, T)> CompareName( IEnumerable? source, IEnumerable? destination) where T : IMetadataName @@ -103,7 +103,7 @@ public bool HasPalletChangedVersionBetween(string palletName, string hexMetadata /// /// /// - public IEnumerable<(CompareStatus, T)> CompareType( + public static IEnumerable<(CompareStatus, T)> CompareType( IEnumerable? source, IEnumerable? destination) where T : IMetadataType @@ -115,7 +115,7 @@ public bool HasPalletChangedVersionBetween(string palletName, string hexMetadata /// /// /// - public IEnumerable<(CompareStatus, TType)> CompareType( + public static IEnumerable<(CompareStatus, TType)> CompareType( IEnumerable? source, IEnumerable? destination) => MetadataModuleCompare(source, destination, (x, y) => x.Value == y.Value); @@ -128,7 +128,7 @@ public bool HasPalletChangedVersionBetween(string palletName, string hexMetadata /// /// /// - protected IEnumerable FilterModuleByStatus(IEnumerable modulesStart, IEnumerable<(CompareStatus, T)> uncommonModules, CompareStatus status) + protected static IEnumerable FilterModuleByStatus(IEnumerable modulesStart, IEnumerable<(CompareStatus, T)> uncommonModules, CompareStatus status) where T : IMetadataName, IType, new() { if (uncommonModules.Any()) @@ -151,7 +151,7 @@ protected IEnumerable FilterModuleByStatus(IEnumerable modulesStart, IE /// /// /// - private IEnumerable<(CompareStatus, T)> MetadataModuleCompare( + private static IEnumerable<(CompareStatus, T)> MetadataModuleCompare( IEnumerable? source, IEnumerable? destination, Func predicate) @@ -178,7 +178,7 @@ protected IEnumerable FilterModuleByStatus(IEnumerable modulesStart, IE /// /// /// - private bool AreStringsEquals(BaseVec source, BaseVec target) + private static bool AreStringsEquals(BaseVec source, BaseVec target) => AreStringsEquals(source.Value, target.Value); /// @@ -187,12 +187,12 @@ private bool AreStringsEquals(BaseVec source, BaseVec target) /// /// /// - private bool AreStringsEquals(IEnumerable source, IEnumerable target) + private static bool AreStringsEquals(IEnumerable source, IEnumerable target) { return !source.Select(x => x.Value).Except(target.Select(x => x.Value)).Any(); } - private IEnumerable Sanitize(BaseOpt> elems) + private static IEnumerable Sanitize(BaseOpt> elems) where T : IType, new() { if (elems == null || !elems.OptionFlag) return Enumerable.Empty(); @@ -200,7 +200,7 @@ private IEnumerable Sanitize(BaseOpt> elems) return elems.Value.Value; } - private IEnumerable Sanitize(BaseVec elems) + private static IEnumerable Sanitize(BaseVec elems) where T : IType, new() { if (elems == null) return Enumerable.Empty(); @@ -210,7 +210,7 @@ private IEnumerable Sanitize(BaseVec elems) #endregion #region Compare V9 - public MetadataDiffV9 MetadataCompareV9(MetadataV9 m1, MetadataV9 m2) + public static MetadataDiffV9 MetadataCompareV9(MetadataV9 m1, MetadataV9 m2) { var resModulesDiff = new List(); @@ -242,7 +242,7 @@ public MetadataDiffV9 MetadataCompareV9(MetadataV9 m1, MetadataV9 m2) }; } - protected IEnumerable<(string prefix, (CompareStatus status, StorageEntryMetadataV9 storage))> CompareModuleStorageV9( + protected static IEnumerable<(string prefix, (CompareStatus status, StorageEntryMetadataV9 storage))> CompareModuleStorageV9( PalletStorageMetadataV9 source, PalletStorageMetadataV9 destination) { @@ -260,7 +260,7 @@ public MetadataDiffV9 MetadataCompareV9(MetadataV9 m1, MetadataV9 m2) #endregion #region Compare V10 - public MetadataDiffV10 MetadataCompareV10(MetadataV10 m1, MetadataV10 m2) + public static MetadataDiffV10 MetadataCompareV10(MetadataV10 m1, MetadataV10 m2) { var resModulesDiff = new List(); @@ -294,7 +294,7 @@ public MetadataDiffV10 MetadataCompareV10(MetadataV10 m1, MetadataV10 m2) }; } - protected IEnumerable<(string prefix, (CompareStatus status, StorageEntryMetadataV10 storage))> CompareModuleStorageV10( + protected static IEnumerable<(string prefix, (CompareStatus status, StorageEntryMetadataV10 storage))> CompareModuleStorageV10( PalletStorageMetadataV10? source, PalletStorageMetadataV10? destination) { @@ -311,7 +311,7 @@ public MetadataDiffV10 MetadataCompareV10(MetadataV10 m1, MetadataV10 m2) #endregion #region Compare V11 - public MetadataDiffV11 MetadataCompareV11(MetadataV11 m1, MetadataV11 m2) + public static MetadataDiffV11 MetadataCompareV11(MetadataV11 m1, MetadataV11 m2) { var resModulesDiff = new List(); @@ -345,7 +345,7 @@ public MetadataDiffV11 MetadataCompareV11(MetadataV11 m1, MetadataV11 m2) }; } - protected IEnumerable<(string prefix, (CompareStatus status, StorageEntryMetadataV11 storage))> CompareModuleStorageV11( + protected static IEnumerable<(string prefix, (CompareStatus status, StorageEntryMetadataV11 storage))> CompareModuleStorageV11( PalletStorageMetadataV11? source, PalletStorageMetadataV11? destination) { @@ -362,7 +362,7 @@ public MetadataDiffV11 MetadataCompareV11(MetadataV11 m1, MetadataV11 m2) #endregion #region Compare V12 - public MetadataDiffV12 MetadataCompareV12(MetadataV12 m1, MetadataV12 m2) + public static MetadataDiffV12 MetadataCompareV12(MetadataV12 m1, MetadataV12 m2) { var resModulesDiff = new List(); @@ -396,7 +396,7 @@ public MetadataDiffV12 MetadataCompareV12(MetadataV12 m1, MetadataV12 m2) }; } - protected IEnumerable<(string prefix, (CompareStatus status, StorageEntryMetadataV11 storage))> CompareModuleStorageV12( + protected static IEnumerable<(string prefix, (CompareStatus status, StorageEntryMetadataV11 storage))> CompareModuleStorageV12( PalletStorageMetadataV12? source, PalletStorageMetadataV12? destination) { @@ -413,7 +413,7 @@ public MetadataDiffV12 MetadataCompareV12(MetadataV12 m1, MetadataV12 m2) #endregion #region Compare V13 - public MetadataDiffV13 MetadataCompareV13(MetadataV13 m1, MetadataV13 m2) + public static MetadataDiffV13 MetadataCompareV13(MetadataV13 m1, MetadataV13 m2) { var resModulesDiff = new List(); @@ -447,7 +447,7 @@ public MetadataDiffV13 MetadataCompareV13(MetadataV13 m1, MetadataV13 m2) }; } - protected IEnumerable<(string prefix, (CompareStatus status, StorageEntryMetadataV13 storage))> CompareModuleStorageV13( + protected static IEnumerable<(string prefix, (CompareStatus status, StorageEntryMetadataV13 storage))> CompareModuleStorageV13( PalletStorageMetadataV13? source, PalletStorageMetadataV13? destination) { @@ -464,7 +464,7 @@ public MetadataDiffV13 MetadataCompareV13(MetadataV13 m1, MetadataV13 m2) #endregion #region Compare V14 - public MetadataDiffV14 MetadataCompareV14(MetadataV14 m1, MetadataV14 m2) + public static MetadataDiffV14 MetadataCompareV14(MetadataV14 m1, MetadataV14 m2) { var resModulesDiff = new List(); @@ -505,7 +505,7 @@ public MetadataDiffV14 MetadataCompareV14(MetadataV14 m1, MetadataV14 m2) }; } - protected LookupDifferential CompareModuleV14( + protected static LookupDifferential CompareModuleV14( BaseOpt source, BaseOpt destination, PortableRegistry lookupSource, @@ -526,7 +526,7 @@ protected LookupDifferential CompareModuleV14( (uint)destination.Value.ElemType.Value.Value, lookupSource, lookupDestination); } - protected IEnumerable<(string prefix, (CompareStatus status, StorageEntryMetadataV14 storage))> CompareModuleStorageV14( + protected static IEnumerable<(string prefix, (CompareStatus status, StorageEntryMetadataV14 storage))> CompareModuleStorageV14( PalletStorageMetadataV14? source, PalletStorageMetadataV14? destination) { @@ -541,7 +541,7 @@ protected LookupDifferential CompareModuleV14( .Select(x => (prefix, x)); } - protected LookupDifferential CompareLookup( + protected static LookupDifferential CompareLookup( uint idSource, uint idDestination, PortableRegistry lookupSource, PortableRegistry lookupDestination) { var result = new LookupDifferential(); @@ -559,7 +559,7 @@ protected LookupDifferential CompareLookup( } - private IList<(CompareStatus status, U32 id)> CompareId(U32 source, U32 destination) + private static IList<(CompareStatus status, U32 id)> CompareId(U32 source, U32 destination) { var res = new List<(CompareStatus status, U32 id)>(); if (source.Value != destination.Value) @@ -574,7 +574,7 @@ protected LookupDifferential CompareLookup( return res; } - private IList<(CompareStatus status, BaseVec docs)> ComparePath(Base.Portable.Path source, Base.Portable.Path destination) + private static IList<(CompareStatus status, BaseVec docs)> ComparePath(Base.Portable.Path source, Base.Portable.Path destination) { var res = new List<(CompareStatus status, BaseVec docs)>(); if (!AreStringsEquals(source, destination)) @@ -589,7 +589,7 @@ protected LookupDifferential CompareLookup( return res; } - private IList<(CompareStatus status, BaseVec param)> CompareParams(BaseVec source, BaseVec destination) + private static IList<(CompareStatus status, BaseVec param)> CompareParams(BaseVec source, BaseVec destination) { var res = new List<(CompareStatus status, BaseVec param)>(); @@ -605,7 +605,7 @@ protected LookupDifferential CompareLookup( return res; } - private LookupDifferentialTypeDef CompareTypeDef(PortableType typeSource, PortableType typeDestination) + private static LookupDifferentialTypeDef CompareTypeDef(PortableType typeSource, PortableType typeDestination) { var result = new LookupDifferentialTypeDef(); if (typeSource.Ty.TypeDef.Value != typeDestination.Ty.TypeDef.Value) @@ -677,7 +677,7 @@ private LookupDifferentialTypeDef CompareTypeDef(PortableType typeSource, Portab return result; } - private IList<(CompareStatus, T)> CompareTypeBased(T source, T destination) + private static IList<(CompareStatus, T)> CompareTypeBased(T source, T destination) where T : BaseType, IMetadataType, new() { if (source.ElemType != destination.ElemType) @@ -692,7 +692,7 @@ private LookupDifferentialTypeDef CompareTypeDef(PortableType typeSource, Portab return new List<(CompareStatus, T)>(); } - private DifferentialComposite CompareComposite(TypeDefComposite source, TypeDefComposite destination) + private static DifferentialComposite CompareComposite(TypeDefComposite source, TypeDefComposite destination) { return new DifferentialComposite() { @@ -700,14 +700,14 @@ private DifferentialComposite CompareComposite(TypeDefComposite source, TypeDefC }; } - private IEnumerable<(CompareStatus, Variant)> CompareVariant(TypeDefVariant variantSource, TypeDefVariant variantDestination) + private static IEnumerable<(CompareStatus, Variant)> CompareVariant(TypeDefVariant variantSource, TypeDefVariant variantDestination) { var res = CompareName(variantSource.TypeParam.Value, variantDestination.TypeParam.Value); return res; } - private DifferentialTuple CompareTuple(TypeDefTuple source, TypeDefTuple destination) + private static DifferentialTuple CompareTuple(TypeDefTuple source, TypeDefTuple destination) { return new DifferentialTuple() { @@ -715,7 +715,7 @@ private DifferentialTuple CompareTuple(TypeDefTuple source, TypeDefTuple destina }; } - private IList<(CompareStatus status, BaseVec docs)> CompareDocs(BaseVec source, BaseVec typeDestination) + private static IList<(CompareStatus status, BaseVec docs)> CompareDocs(BaseVec source, BaseVec typeDestination) { var res = new List<(CompareStatus status, BaseVec docs)>(); if (!AreStringsEquals(source, typeDestination)) diff --git a/Substrate.NET.Metadata/Substrate.NET.Metadata.csproj b/Substrate.NET.Metadata/Substrate.NET.Metadata.csproj index 14d70df..43848d3 100644 --- a/Substrate.NET.Metadata/Substrate.NET.Metadata.csproj +++ b/Substrate.NET.Metadata/Substrate.NET.Metadata.csproj @@ -18,7 +18,7 @@ - + From 13d715ae619499032b69383f27f3fd574d7888fc Mon Sep 17 00:00:00 2001 From: Apolixit Date: Sat, 14 Sep 2024 12:50:54 +0200 Subject: [PATCH 12/15] Remove Conversion projects which are not necessary anymore --- .../ConversionBuilderTest.cs | 25 - ...trate.NET.Metadata.Conversion.Tests.csproj | 28 - .../TmpTests.cs | 1329 ----------------- .../UnitTest1.cs | 16 - Substrate.NET.Metadata.Conversion/Class1.cs | 7 - .../ConversionV14Helper.cs | 112 -- .../Substrate.NET.Metadata.Conversion.csproj | 13 - 7 files changed, 1530 deletions(-) delete mode 100644 Substrate.NET.Metadata.Conversion.Tests/ConversionBuilderTest.cs delete mode 100644 Substrate.NET.Metadata.Conversion.Tests/Substrate.NET.Metadata.Conversion.Tests.csproj delete mode 100644 Substrate.NET.Metadata.Conversion.Tests/TmpTests.cs delete mode 100644 Substrate.NET.Metadata.Conversion.Tests/UnitTest1.cs delete mode 100644 Substrate.NET.Metadata.Conversion/Class1.cs delete mode 100644 Substrate.NET.Metadata.Conversion/ConversionV14Helper.cs delete mode 100644 Substrate.NET.Metadata.Conversion/Substrate.NET.Metadata.Conversion.csproj diff --git a/Substrate.NET.Metadata.Conversion.Tests/ConversionBuilderTest.cs b/Substrate.NET.Metadata.Conversion.Tests/ConversionBuilderTest.cs deleted file mode 100644 index 5f9ff4d..0000000 --- a/Substrate.NET.Metadata.Conversion.Tests/ConversionBuilderTest.cs +++ /dev/null @@ -1,25 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Substrate.NET.Metadata.Conversion.Tests -{ - internal class ConversionBuilderTest - { - [Test] - [TestCase("Option>")] - public void BuildTypeDictionnary_FromPrimitive_ShouldSucceed(string primitiveType) - { - - } - - [Test] - [TestCase("Option>")] - public void BuildTypeDictionnary_FromTuple_ShouldSucceed(string primitiveType) - { - - } - } -} diff --git a/Substrate.NET.Metadata.Conversion.Tests/Substrate.NET.Metadata.Conversion.Tests.csproj b/Substrate.NET.Metadata.Conversion.Tests/Substrate.NET.Metadata.Conversion.Tests.csproj deleted file mode 100644 index 3a76a33..0000000 --- a/Substrate.NET.Metadata.Conversion.Tests/Substrate.NET.Metadata.Conversion.Tests.csproj +++ /dev/null @@ -1,28 +0,0 @@ - - - - net8.0 - enable - enable - - false - true - - - - - - - - - - - - - - - - - - - diff --git a/Substrate.NET.Metadata.Conversion.Tests/TmpTests.cs b/Substrate.NET.Metadata.Conversion.Tests/TmpTests.cs deleted file mode 100644 index bf51f49..0000000 --- a/Substrate.NET.Metadata.Conversion.Tests/TmpTests.cs +++ /dev/null @@ -1,1329 +0,0 @@ -using NUnit.Framework.Internal.Execution; -using Substrate.NET.Metadata.Base; -using Substrate.NET.Metadata.Base.Portable; -using Substrate.NET.Metadata.Compare.TypeDef; -using Substrate.NET.Metadata.Service; -using Substrate.NET.Metadata.V10; -using Substrate.NET.Metadata.V11; -using Substrate.NET.Metadata.V12; -using Substrate.NET.Metadata.V13; -using Substrate.NET.Metadata.V14; -using Substrate.NET.Metadata.V15; -using Substrate.NET.Metadata.V9; -using Substrate.NetApi; -using Substrate.NetApi.Model.Extrinsics; -using Substrate.NetApi.Model.Meta; -using Substrate.NetApi.Model.Types.Base; -using Substrate.NetApi.Model.Types.Metadata; -using Substrate.NetApi.Model.Types.Primitive; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Text.RegularExpressions; -using System.Threading.Tasks; - -namespace Substrate.NET.Metadata.Conversion.Tests -{ - internal class StorageClass - { - public StorageClass(StorageType type, string moduleName, string propName, string className) - { - Type = type; - ModuleName = moduleName; - PropName = propName; - ClassName = className; - FoundInV14 = false; - } - - public bool FoundInV14 { get; private set; } - public int? Index_v14_9110 { get; private set; } - public StorageType Type { get; set; } - public string ModuleName { get; set; } - public string PropName { get; set; } - public string ClassName { get; set; } - - private string? classNameMapped = null; - public string ClassNameMapped - { - get - { - if (classNameMapped is null) - classNameMapped = CustomMapping(ClassName); - - return classNameMapped; - } - } - - public static string HarmonizeTypeName(string className) - { - return className.Replace("T::", ""); - } - - public static List HarmonizeFullType(string className) - { - var res = new List(); - - if (ExtractMap(className) is (string, string) map) - { - res.Add(map.key); - res.Add(map.value); - return ExtractDeeper(res); - } - - if (ExtractDoubleMap(className) is (string, string, string) doubleMap) - { - res.Add(doubleMap.key1); - res.Add(doubleMap.key2); - res.Add(doubleMap.value); - - return ExtractDeeper(res); - } - - if (ExtractTuple(className) is List tuples) - { - res.AddRange(tuples); - return ExtractDeeper(res); - } - - if (ExtractArray(className) is List array) - { - res.AddRange(array); - return ExtractDeeper(res); - } - - if (ExtractParameters(className) is List parameters) - { - res.AddRange(parameters); - return ExtractDeeper(res); - } - - var extractGeneric = ExtractGeneric(className); - - if (extractGeneric is not null) - { - res.AddRange(extractGeneric.Value.genericParameters); - - return ExtractDeeper(res); - } - - if (ExtractRustGeneric(className) is string param) - { - res.Add(param); - return ExtractDeeper(res); - } - - res.Add(HarmonizeTypeName(className)); - return res; - } - - /// - /// Extract Rust generic from a class name - /// For example ::AccountId => AccountId - /// - /// - /// - internal static string? ExtractRustGeneric(string className) - { - string pattern = @"<[^>]+>::(\w+)"; - - Match match = Regex.Match(className, pattern); - - if (match.Success) - { - return match.Groups[1].Value; - } - - return null; - } - - internal static List? ExtractParameters(string className) - { - List result = new(); - - var splitted = className.Split(new[] { "," }, StringSplitOptions.None).Select(x => x.Trim()).ToList(); - result.AddRange(splitted); - - if (splitted.Count > 1) - { - List indexBracketOpen = new(); - List indexBracketClose = new(); - int lastIndexRemoved = 0; - - for (int i = 0; i < splitted.Count; i++) - { - var diff = splitted[i].Count(i => i == '<') - splitted[i].Count(i => i == '>'); - - if (diff > 0) - { - Enumerable.Range(0, diff).ToList().ForEach(x => indexBracketOpen.Add(i)); - } - - if (diff < 0) - { - Enumerable.Range(0, Math.Abs(diff)).ToList().ForEach(x => indexBracketClose.Add(i)); - - if (indexBracketClose.Count == indexBracketOpen.Count) - { - var start = indexBracketOpen.First(); - var end = indexBracketClose.Last(); - - var sub = string.Join(", ", splitted.GetRange(start, end - start + 1)); - - //result.RemoveRange(start - lastIndexRemoved, end - start + 1 - lastIndexRemoved); - Enumerable.Range(start, end - start + 1).ToList().ForEach(x => result.Remove(splitted[x])); - result.Insert(start - lastIndexRemoved, sub); - - lastIndexRemoved = end; - indexBracketOpen.Clear(); - indexBracketClose.Clear(); - } - } - } - - // At the end, let's check if something has changed - return result.First() == className ? null : result; - } - - return null; - } - - private static List? ExtractArray(string className) - { - string pattern = @"\[(.*);\s*(\d+)\]"; - Match match = Regex.Match(className, pattern); - - if (match.Success) - { - //match.Groups[1].Value -> array size - return new List() { match.Groups[1].Value }; - } - - return null; - } - - private static List? ExtractTuple(string className) - { - string pattern = @"\((.*)\)$"; - Match match = Regex.Match(className, pattern); - - if (match.Success) - { - return new List() { match.Groups[1].Value }; - } - - return null; - } - - private static List ExtractDeeper(List res) - { - //if (res.Count > 1) - //{ - for (int i = 0; i < res.Count; i++) - { - var r = HarmonizeFullType(res[i]); - if (r.Count > 1) - { - res.Remove(res[i]); - res.AddRange(r); - i = -1; - } - else - { - res[i] = r[0]; - } - } - //} - - return res; - } - - public static (string key1, string key2, string value)? ExtractDoubleMap(string className) - { - string pattern = @"Key1\s*=\s*([^\/]+)\s*\/\s*Key1Hasher\s*=\s*([^\/]+)\s*\/\s*Key2\s*=\s*([^\/]+)\s*\/\s*Key2Hasher\s*=\s*([^\/]+)\s*\/\s*Value\s*=\s*([^\]]+)"; - - Match match = Regex.Match(className, pattern); - if (match.Success) - { - string key1 = match.Groups[1].Value.Trim(); - string key2 = match.Groups[3].Value.Trim(); - string value = match.Groups[5].Value.Trim(); - return (key1, key2, value); - } - - return null; - } - public static (string key, string value)? ExtractMap(string className) - { - string pattern = @"Key\s*=\s*([^\/]+)\s*\/\s*Value\s*=\s*([^\]]+)"; - - Match match = Regex.Match(className, pattern); - if (match.Success) - { - string key = match.Groups[1].Value.Trim(); - string value = match.Groups[2].Value.Trim(); - return (key, value); - } - - return null; - } - - public static (TypeDefEnum typeDefEnum, List genericParameters)? ExtractGeneric(string className) - { - //string pattern = @"(\w*)<\(?([^(>|))]+)\)?>"; - string pattern = @"([a-zA-Z:]*|)<(.*)>$"; - Match match = Regex.Match(className, pattern); - - if (match.Success) - { - var genericParameters = match.Groups[2].Value; - - // A valid pattern should have the same number of '<' and '>' and '<' should be before '>' - if (!HaveValidParametersPattern(genericParameters)) - { - return null; - } - - var typeDef = GetTypeDefFromString(match.Groups[1].Value); - - List genericValue = new(); - if (!GenericValueToIgnore.Contains(genericParameters)) - { - genericValue.Add(genericParameters); - } - - // A composite is basically a class, so let's add it - if (typeDef == TypeDefEnum.Composite) - { - genericValue.Insert(0, match.Groups[1].Value); - } - return (typeDef, genericValue); - } - - return null; - } - - /// - /// A valid pattern should have the same number of '<' and '>' and '<' should be before '>' - /// - /// - /// - private static bool HaveValidParametersPattern(string genericParameters) - { - var nbOpenBracket = genericParameters.Count(x => x == '<'); - var nbClosedBracket = genericParameters.Count(x => x == '<'); - - return nbOpenBracket == nbClosedBracket && - nbOpenBracket == 0 || (genericParameters.IndexOf('<') < genericParameters.IndexOf('>')); - } - - public static string[] GenericValueToIgnore = ["T"]; - - public static TypeDefEnum GetTypeDefFromString(string genericType) - { - return genericType switch - { - "Vec" => TypeDefEnum.Sequence, - _ => TypeDefEnum.Composite - }; - } - - public string CustomMapping(string className) - { - return className switch - { - "TaskAddress" => "TaskAddress", - "Vec" => "Vec>", - "Vec" => "Vec", - "Vec<(AccountId, Balance)>" => "Vec<(::AccountId, BalanceOf)>", - "sp_std::marker::PhantomData<(AccountId, Event)>" => "BaseVoid", // Pas sur de moi - "Timepoint" => "Timepoint", - "limits::BlockWeights" => "BlockWeights", - "limits::BlockLength" => "BlockLength", - "TransactionPriority" => "u64", - "& 'static[u8]" => "vec", - "&[u8]" => "vec", - "Moment" => "u64", - "ModuleId" => "PalletId", - "LeasePeriod" => "LeasePeriodOf", - _ => className - }; - } - - public static int? TryHardBinding(string className) - { - return className switch - { - "u8" => 2, - "u16" => 73, - "u32" => 4, - "u64" => 8, - "u128" => 6, - "bool" => 58, - "Str" => 108, - "Vec>>" => 386, - "LockIdentifier" => 125, - "[u8;8]" => 125, - _ => null - }; - } - - public void SetToFoundInV14(int index) - { - FoundInV14 = true; - Index_v14_9110 = index; - } - - public static string WriteStoragePlain(Str plain) => WriteStoragePlain(plain.Value); - public static string WriteStoragePlain(string plain) - { - return StorageClass.HarmonizeTypeName(plain.ToString()); - } - - public static string WriteStorageMap(string hasher, string key, string value, bool? linked) - { - return $"[Hasher = {HarmonizeTypeName(hasher)} / Key = {HarmonizeTypeName(key)} / Value = {HarmonizeTypeName(value)}]"; - } - - public static string WriteStorageDoubleMap(string key1, string key1Hasher, string key2, string key2Hasher, string value) - { - return $"Key1 = {HarmonizeTypeName(key1)} / Key1Hasher = {HarmonizeTypeName(key1Hasher)} / Key2 = {HarmonizeTypeName(key2)} / Key2Hasher = {HarmonizeTypeName(key2Hasher)} / Value = {HarmonizeTypeName(value)}"; - } - - public static string WriteStorageMap(StorageEntryTypeMapV9 typeMap) - => WriteStorageMap(typeMap.Hasher.Value.ToString(), typeMap.Key.Value, typeMap.Value.Value, typeMap.Linked.Value); - - public static string WriteStorageMap(StorageEntryTypeMapV10 typeMap) - => WriteStorageMap(typeMap.Hasher.Value.ToString(), typeMap.Key.Value, typeMap.Value.Value, typeMap.Linked.Value); - - public static string WriteStorageMap(StorageEntryTypeMapV11 typeMap) - => WriteStorageMap(typeMap.Hasher.Value.ToString(), typeMap.Key.Value, typeMap.Value.Value, typeMap.Linked.Value); - - public static string WriteStorageMap(StorageEntryTypeMapV14 typeMap, MetadataV14 metadataV14) - { - return WriteStorageMap( - typeMap.Hashers.Value.First().Value.ToString(), - WriteStorageKey(typeMap, metadataV14), - WriteStorageValue(typeMap, metadataV14), null); - } - - public static string WriteStorageKey(StorageEntryTypeMapV14 typeMap, MetadataV14 metadataV14) - { - return WriteStorage(metadataV14.RuntimeMetadataData.Lookup, typeMap.Key.Value); - } - - public static string WriteStorageValue(StorageEntryTypeMapV14 typeMap, MetadataV14 metadataV14) - { - return WriteStorage(metadataV14.RuntimeMetadataData.Lookup, typeMap.Value.Value); - } - - private static string WriteStorage(PortableRegistry p, int index) - { - if (p.Value[index].Ty.TypeDef.Value2 is BaseEnum typeDefPrimitive) - { - return StorageClass.HarmonizeTypeName(typeDefPrimitive.Value.ToString()); - } - else - { - if (p.Value[index].Ty.Path.Value.Count() == 0) - { - - } - else - { - return StorageClass.HarmonizeTypeName(p.Value[index].Ty.Path.Value.Last().Value); - } - } - - return ""; - } - - public static string WriteStorageDoubleMap(StorageEntryTypeDoubleMapV9 doubleMap) - => WriteStorageDoubleMap(doubleMap.Key1.Value, doubleMap.Key1Hasher.Value.ToString(), doubleMap.Key2.Value, doubleMap.Key2Hasher.Value.ToString(), doubleMap.Value.Value); - - public static string WriteStorageDoubleMap(StorageEntryTypeDoubleMapV10 doubleMap) - => WriteStorageDoubleMap(doubleMap.Key1.Value, doubleMap.Key1Hasher.Value.ToString(), doubleMap.Key2.Value, doubleMap.Key2Hasher.Value.ToString(), doubleMap.Value.Value); - - public static string WriteStorageDoubleMap(StorageEntryTypeDoubleMapV11 doubleMap) - => WriteStorageDoubleMap(doubleMap.Key1.Value, doubleMap.Key1Hasher.Value.ToString(), doubleMap.Key2.Value, doubleMap.Key2Hasher.Value.ToString(), doubleMap.Value.Value); - - public static string WriteStorageNMap(StorageEntryTypeNMapV13 nMap) - { - var hasher = string.Join(",", nMap.Hashers.Value.Select(x => x.Value)); - var keyVec = string.Join(",", nMap.KeyVec.Value.Select(x => x.Value)); - return $"[Hashers = [{hasher} / Keys = {keyVec} / Value = {nMap.Value.Value}"; - } - - public override string ToString() - { - return $"{ModuleName}|{Type}|{PropName}|{ClassName}|{(FoundInV14 ? ClassNameMapped : "")}|{FoundInV14}|{(Index_v14_9110 is not null ? Index_v14_9110.Value : "")}"; - } - - public enum StorageType - { - Call, - Event, - Storage, - Constant, - Error - } - } - - internal class MetadataVersionCompact - { - public MetadataVersionCompact(int majorVersion, int minorVersion, string blockHash) - { - MajorVersion = majorVersion; - MinorVersion = minorVersion; - BlockHash = blockHash; - } - - public int MajorVersion { get; set; } - public int MinorVersion { get; set; } - public string BlockHash { get; set; } - - public List StorageClasses { get; set; } = new List(); - - public List Flatten() - { - var res = new List(); - - foreach (var storageClass in StorageClasses) - { - res.Add($"{MajorVersion}|{MinorVersion}|{storageClass.ToString()}"); - } - - return res; - } - - public void AddOrInc(Dictionary uniqueName, string name) - { - if (uniqueName.ContainsKey(name)) - { - uniqueName[name] += 1; - } - else - { - uniqueName[name] = 1; - } - } - - public void GetDistinctStorageClasses(Dictionary uniqueName) - { - var res = new List(); - - var distinctClasses = StorageClasses.Select(x => x.ClassNameMapped).Distinct().ToList(); - - for (int i = 0; i < distinctClasses.Count; i++) - { - var classes = StorageClass.HarmonizeFullType(distinctClasses[i]); - - foreach (var c in classes) - { - AddOrInc(uniqueName, c); - } - } - } - - public override string ToString() => $"{MajorVersion}.{MinorVersion}.{BlockHash}"; - } - - internal class TmpTests - { - private MetadataService _metadataService; - private SubstrateClient _substrateClient; - - [SetUp] - public async Task SetupAsync() - { - _metadataService = new MetadataService(); - _substrateClient = new SubstrateClient(new Uri("wss://polkadot-rpc.dwellir.com"), ChargeTransactionPayment.Default()); - - //await _substrateClient.ConnectAsync(); - //Assert.That(_substrateClient.IsConnected, Is.True); - } - - [TearDown] - public void Teardown() - { - _substrateClient.Dispose(); - } - - public string v14Hex - { - get - { - return _substrateClient.State.GetMetaDataAtAsync(Utils.HexToByteArray("0x7a233affefea10b90b3b5b2b37a6e9d8ef0029ef7add14ac4a56a3520b602927"), CancellationToken.None).Result; - } - } - - private MetadataV14? _v14 = null; - public MetadataV14 v14 - { - get - { - if (_v14 == null) - { - _v14 = new MetadataV14(v14Hex); - } - - return _v14; - } - } - - public Substrate.NetApi.Model.Meta.MetaData MetadataNetApi - { - get - { - var mdv14 = new Substrate.NetApi.Model.Types.Metadata.RuntimeMetadata(); - mdv14.Create(v14Hex); - return new MetaData(mdv14, ""); - } - } - - //[Test] - //[TestCase("[Hasher = BlakeTwo128Concat / Key = AccountId / Value = AccountInfo]", new string[] { "AccountId", "AccountInfo", "Index", "AccountData" })] - //[TestCase("Vec<(AccountId, Balance)>", new string[] { "AccountId", "Balance" })] - //[TestCase("DigestOf", new string[] { "DigestOf" })] - //[TestCase("Vec>", new string[] { "EventRecord", "Event", "Hash" })] - //[TestCase("TaskAddress", new string[] { "TaskAddress", "BlockNumber" })] - //[TestCase("MaybeRandomness", new string[] { "MaybeRandomness" })] - //[TestCase("Vec>>", new string[] { "WeightToFeeCoefficient", "BalanceOf" })] - //[TestCase("Option>", new string[] { "Option", "u8" })] - //[TestCase("Vec", new string[] { "AccountId" })] - //[TestCase("[Hasher = BlakeTwo128Concat / Key = AccountId / Value = StakingLedger>]", new string[] { "AccountId", "StakingLedger", "BalanceOf" })] - //[TestCase("[Hasher = Twox64Concat / Key = (AccountId, slashing::SpanIndex) / Value = slashing::SpanRecord>]", new string[] { "AccountId", "slashing::SpanIndex", "slashing::SpanRecord", "BalanceOf" })] - //[TestCase("Option>", new string[] { "Option", "u8" })] - //[TestCase("ElectionStatus", new string[] { "ElectionStatus", "BlockNumber" })] - //[TestCase("ElectionStatus", new string[] { "ElectionStatus", "BlockNumber" })] - //[TestCase("Vec>", new string[] { "ParaId", "CollatorId" })] - //[TestCase("Vec<(ParaId, Option<(CollatorId, Retriable)>)>", new string[] { "ParaId", "Option", "CollatorId", "Retriable" })] - //[TestCase("Vec>", new string[] { "DeferredOffenceOf" })] - //[TestCase("[Hasher = Identity / Key = Hash / Value = (BlockNumber, Vec)]", new string[] { "Hash", "BlockNumber", "AccountId" })] - //[TestCase("Vec<(::AccountId, BalanceOf)>", new string[] { "AccountId", "BalanceOf" })] - //[TestCase("OpenTip, BlockNumber, Hash>", new string[] { "OpenTip", "AccountId", "BalanceOf", "BlockNumber", "Hash" })] - //[TestCase("[Key1 = BlockNumber / Key1Hasher = Twox64Concat / Key2 = Hash / Key2Hasher = Identity / Value = BlockAttestations]", new string[] { "BlockNumber", "Hash", "BlockAttestations" })] - //[TestCase("[Hasher = Identity / Key = EthereumAddress / Value = (BalanceOf, BalanceOf, BlockNumber)]", new string[] { "EthereumAddress", "BalanceOf", "BlockNumber" })] - //[TestCase("[Hasher = Identity / Key = EthereumAddress / Value = (BalanceOf, BalanceOf, BlockNumber)]", new string[] { "EthereumAddress", "BalanceOf", "BlockNumber" })] - //[TestCase("[Hasher = Identity / Key = [u8; 32] / Value = (Vec, AccountId, BalanceOf)]", new string[] { "u8", "AccountId", "BalanceOf" })] - ////[TestCase("Hey, (Titi, B>, Titi, L>)", new string[] { "Hey", "Titi", "A", "XX", "YY", "B", "TT", "L" })] - //public void HarmonizeFullType_WithMap_ShouldSucceed(string original, string[] mapped) - //{ - // // Todo Romain : gérer les tableaux du genre [u8; 32] - // var res = StorageClass.HarmonizeFullType(original).Distinct().ToList(); - - // Assert.That(res.Count, Is.EqualTo(mapped.Length)); - - // for (int i = 0; i < res.Count; i++) - // { - // Assert.That(res[i], Is.EqualTo(mapped[i])); - // } - //} - - - - - //[Test] - //[TestCase("AccountId, Balance", new string[] { "AccountId", "Balance" })] - //[TestCase("Toto, Titi", new string[] { "Toto", "Titi" })] - //[TestCase("Titi, Toto", new string[] { "Titi", "Toto" })] - //[TestCase("Titi, B>, Titi, L>", new string[] { "Titi, B>", "Titi, L>" })] - //public void ExtractParameters_ShouldSucceed(string input, string[] expected) - //{ - // var res = StorageClass.ExtractParameters(input); - - // Assert.That(res, Is.Not.Null); - // Assert.That(res.Count, Is.EqualTo(expected.Length)); - - // for (int i = 0; i < res.Count; i++) - // { - // Assert.That(res[i], Is.EqualTo(expected[i])); - // } - //} - - [Test] - public async Task GetAllStorageClasses_FromEveryVersionBeforeV14_ShouldSucceedAsync() - { - //var v14HexLast = await _substrateClient.State.GetMetaDataAsync(); - //var v14Hex = await _substrateClient.State.GetMetaDataAtAsync(Utils.HexToByteArray("0x7a233affefea10b90b3b5b2b37a6e9d8ef0029ef7add14ac4a56a3520b602927"), CancellationToken.None); - - var metadatas = new List - { - new MetadataVersionCompact(11, 1, "0xa15bf122d7a9b2cd07956c3af8f7eda61298aff0a3bd1193018df413d982a4ef"), - new MetadataVersionCompact(11, 5, "0x49a695416fcf55487adf9b9f5808619cee6618bd285a0119a78db60c5a7f3e13"), - new MetadataVersionCompact(11, 6, "0xdab56553594fd489adc085d2f83f3dcb65f5de5b1878325d5547fcf72b6dd6b3"), - new MetadataVersionCompact(11, 7, "0xaff11447ba47e853bcadb73920c0780013e581a0286831eadce0e48bf1db9942"), - new MetadataVersionCompact(11, 8, "0x3eef3df8dd7eedfe6baaed544dcef9c36ee7a142035bd6ae3fd7fd2969ad5933"), - new MetadataVersionCompact(11, 9, "0x773e8d8c1fdcbc94d79bb2cdcaf2f7fca5ff869d34c50171fe50ac1640f3e05c"), - new MetadataVersionCompact(11, 10, "0x209d24943d81e5910bfb7a57c8a5c3037c4a434af7c486a536d4f96a2160c9f5"), - new MetadataVersionCompact(11, 11, "0x3eef3df8dd7eedfe6baaed544dcef9c36ee7a142035bd6ae3fd7fd2969ad5933"), - new MetadataVersionCompact(11, 12, "0x4f61e8e6017cce5a10e2de7340061a037895411c19e7bc27f607953d8a56a943"), - new MetadataVersionCompact(11, 13, "0x7cf0e5e3671b02ca341ab439453e1a9ca6616c6e351bdfa8cbb6f5124a8224b8"), - new MetadataVersionCompact(11, 14, "0x349399f6b6481070047626f184d0152699bd02cb71040ef045adefc4f8daec5b"), - new MetadataVersionCompact(11, 15, "0xab6f40697e72d0a4ab0d105145b1ddc1bd8cead0bb1d6a13f4ac1a05508b1882"), - new MetadataVersionCompact(11, 16, "0x78433cba37c0cbc777faad71f27e21094defe24451033dd4d9a0443a1dc291b2"), - new MetadataVersionCompact(11, 17, "0x9a18fb9522d9688eadefb59bf7389fc0deaf219b080a462d6db5ee1d3ec79562"), - new MetadataVersionCompact(11, 18, "0xe187cabcfb9d30b66fae7257f3820b947c89b65e6e20f6ead2af4fd78926825f"), - new MetadataVersionCompact(11, 23, "0xd85988f4f7bc3594200fd5f8e738153260f2ba342b56d9bf4edabf9209c65ae0"), - new MetadataVersionCompact(11, 24, "0x8a0f28f399d3a85643413435e5a001c4ade7b8195eaf7e91f399549f192a56c7"), - new MetadataVersionCompact(12, 25, "0x0b40f111395a0871b1a59da4bd8587bcddf662e3e7b4ba06d8862a44dacf6256"), - new MetadataVersionCompact(12, 26, "0x780cd3091ef9cdc3a94dbcdfa7908d6120f5e037a1e534b4f18249c37005a533"), - new MetadataVersionCompact(12, 27, "0x26fa4c7e27aad01f5a8367aefece17f8c0940b75423628d52a8c07a203bd2458"), - new MetadataVersionCompact(12, 28, "0xd00026d2bdca30cd20f7c361544e9651041107a1fd35ea447d8dfabb5001960f"), - new MetadataVersionCompact(12, 29, "0x766a02e9abe37328ad0dee3a64aad557dd1bade9e9f27849a9cf5838c0e7e6bb"), - new MetadataVersionCompact(12, 30, "0x8a8a7aa9ac863359b2cc609b836e3ebd7086d775c31f8c177f183ed9ffa71fa5"), - new MetadataVersionCompact(13, 9050, "0x89f4608b568a05a89737bc826a32f8677f2646a5773312d7dee3a667458e5a98"), - new MetadataVersionCompact(13, 9080, "0xddca674d4e6e4935b1e5e81ed697f7ce027c2a9602523424bcc8dee3184e4863"), - new MetadataVersionCompact(13, 9090, "0x4b34bd42835a084af0f441c5986d216b18a85abb4d03762096692e6f06365203"), - new MetadataVersionCompact(13, 9100, "0x8192df1609d4478d1c1fcf5d39975596a8162d42d745c141c22148b0931708f2") - }; - - foreach (var metadata in metadatas) - { - var metadataHex = await _substrateClient.State.GetMetaDataAtAsync(Utils.HexToByteArray(metadata.BlockHash), CancellationToken.None); - var metadataVersion = _metadataService.GetMetadataVersion(metadataHex); - Assert.That(metadata.MajorVersion, Is.EqualTo((int)metadataVersion)); - - switch (metadata.MajorVersion) - { - case 9: - StoreV9(metadata, metadataHex); - break; - case 10: - StoreV10(metadata, metadataHex); - break; - case 11: - StoreV11(metadata, metadataHex); - break; - case 12: - StoreV12(metadata, metadataHex); - break; - case 13: - StoreV13(metadata, metadataHex); - break; - } - } - - var uniqueName = new Dictionary(); - metadatas[0].GetDistinctStorageClasses(uniqueName); - var classes = new List(); - var v14Classed = BuildV14ClassesDic(v14); - - foreach (var searchType in classes) - { - var index = FindInV14(v14, searchType); - - var flattenClasses = metadatas.SelectMany(x => x.StorageClasses).Where(x => x.ClassNameMapped.Equals(searchType, StringComparison.InvariantCultureIgnoreCase)).ToList(); - if (index is not null) - { - flattenClasses.ForEach(x => x.SetToFoundInV14(index.Value)); - } - } - - var flatten = metadatas.SelectMany(x => x.Flatten()).ToList(); - var flattenHuman = string.Join("\n", flatten); - - Assert.Pass(); - } - - [Test] - public async Task SearchInV14Async() - { - var v14Hex = await _substrateClient.State.GetMetaDataAtAsync(Utils.HexToByteArray("0x7a233affefea10b90b3b5b2b37a6e9d8ef0029ef7add14ac4a56a3520b602927"), CancellationToken.None); - var v14 = new MetadataV14(v14Hex); - - List searchTypes = ["BlockNumber", "AccountId", "u32", "TaskAddress", "Option>", "DispatchResult", "AccountIndex", "Balance", "EraIndex", "SessionIndex", "ElectionCompute", "Kind", "OpaqueTimeSlot", "bool", "AuthorityList", "AuthorityId", "DispatchInfo", "DispatchError"]; - - //var t1 = FindInV14(v14, "AccountId"); - - foreach (var searchType in searchTypes) - { - var lookupIndex = FindInV14(v14, searchType); - } - - } - - public void AddDic(Dictionary dic, string key, int index) - { - key = StorageClass.HarmonizeTypeName(key); - - if (!dic.ContainsKey(key)) - { - dic.Add(key, index); - } - } - - public void LoopType(Dictionary dic, int index, MetadataV14 metadataV14) - { - var ty = metadataV14.RuntimeMetadataData.Lookup.Value[index].Ty; - - if (ty.TypeDef.Value2 is BaseEnum typeDefPrimitive) - { - AddDic(dic, typeDefPrimitive.Value.ToString(), index); - } - else if (ty.TypeDef.Value2 is TypeDefVariant variant) - { - foreach (var field in variant.TypeParam.Value.SelectMany(x => x.VariantFields.Value)) - { - LoopType(dic, field.FieldTy.Value, metadataV14); - //AddDic(dic, field.FieldTypeName.Value.Value, field.FieldTy.Value); - } - } - else if (ty.TypeDef.Value2 is TypeDefComposite composite) - { - AddDic(dic, ty.Path.Value[^1].Value, index); - - foreach (var field in composite.Fields.Value) - { - LoopType(dic, field.FieldTy.Value, metadataV14); - //AddDic(dic, field.FieldTypeName.Value.Value, field.FieldTy.Value); - } - } - else if (ty.TypeDef.Value2 is TypeDefArray array) - { - LoopType(dic, array.ElemType.Value, metadataV14); - } - else if (ty.TypeDef.Value2 is TypeDefSequence sequence) - { - LoopType(dic, sequence.ElemType.Value, metadataV14); - } - else if (ty.TypeDef.Value2 is TypeDefTuple tuple) - { - foreach (var field in tuple.Fields.Value) - { - LoopType(dic, field.Value, metadataV14); - } - } - else if (ty.TypeDef.Value2 is TypeDefCompact compact) - { - LoopType(dic, compact.ElemType.Value, metadataV14); - } - else - { - - } - } - - public Dictionary BuildV14ClassesDic(MetadataV14 metadataV14) - { - Dictionary dic = new Dictionary(); - var modules = metadataV14.RuntimeMetadataData.Modules.Value; - - foreach (var module in modules) - { - var storage = module.Storage.Value; - if (storage == null) - continue; - - foreach (var entry in storage.Entries.Value) - { - //AddDic(dic, entry.Name.Value, ((CompactIntegerType)entry.StorageType.Value2).Value); - - if (entry.StorageType.Value == StorageType.Type.Plain) - { - var storagePlainIndex = entry.StorageType.Value2 as TType ?? throw new InvalidOperationException(); - LoopType(dic, storagePlainIndex.Value, metadataV14); - } - else if (entry.StorageType.Value == StorageType.Type.Map) - { - var storageMap = entry.StorageType.Value2 as StorageEntryTypeMapV14 ?? throw new InvalidOperationException(); - - var keyString = WriteType(storageMap.Key.Value); - var valueString = WriteType(storageMap.Value.Value); - - LoopType(dic, storageMap.Key.Value, metadataV14); - LoopType(dic, storageMap.Value.Value, metadataV14); - } - else if (entry.StorageType.Value == StorageType.Type.DoubleMap) - { - throw new InvalidOperationException(); - } - else if (entry.StorageType.Value == StorageType.Type.NMap) - { - throw new InvalidOperationException(); - } - - } - - if (module.Events.OptionFlag) - { - LoopType(dic, module.Events.Value.ElemType.Value, metadataV14); - } - - foreach (var constant in module.Constants.Value) - { - LoopType(dic, constant.ConstantType.Value, metadataV14); - } - } - - return dic; - } - - public int? FindInV14(MetadataV14 metadataV14, string storageClass) - { - var modules = metadataV14.RuntimeMetadataData.Modules.Value; - - foreach (var module in modules) - { - var storage = module.Storage.Value; - if (storage == null) - { - continue; - } - - foreach (var entry in storage.Entries.Value) - { - if (entry.Name.Value == storageClass) - { - return ((CompactIntegerType)entry.StorageType.Value2).Value; - } - - if (entry.StorageType.Value == StorageType.Type.Plain) - { - var storagePlainIndex = entry.StorageType.Value2 as TType ?? throw new InvalidOperationException(); - var typeDef = metadataV14.RuntimeMetadataData.Lookup.Value[storagePlainIndex.Value].Ty.TypeDef; - var storagePlainName = ""; - if (typeDef.Value2 is BaseEnum typeDefPrimitive) - { - storagePlainName = typeDefPrimitive.Value.ToString(); - } - else - { - - } - - if (StorageClass.WriteStoragePlain(storagePlainName).Equals(storageClass, StringComparison.CurrentCultureIgnoreCase)) - { - return ((CompactIntegerType)entry.StorageType.Value2).Value; - } - } - else if (entry.StorageType.Value == StorageType.Type.Map) - { - var storageMap = entry.StorageType.Value2 as StorageEntryTypeMapV14 ?? throw new InvalidOperationException(); - - if (StorageClass.WriteStorageKey(storageMap, metadataV14).Equals(storageClass, StringComparison.CurrentCultureIgnoreCase)) - { - return storageMap.Key.Value; - } - if (StorageClass.WriteStorageValue(storageMap, metadataV14).Equals(storageClass, StringComparison.CurrentCultureIgnoreCase)) - { - return storageMap.Value.Value; - } - } - else if (entry.StorageType.Value == StorageType.Type.DoubleMap) - { - throw new InvalidOperationException(); - } - else if (entry.StorageType.Value == StorageType.Type.NMap) - { - throw new InvalidOperationException(); - } - - - } - - if (module.Events.OptionFlag) - { - var events = metadataV14.RuntimeMetadataData.Lookup.Value[(int)module.Events.Value.ElemType.Value]; - if (events.Ty.TypeDef.Value2 is TypeDefVariant variant) - { - foreach (var field in variant.TypeParam.Value.SelectMany(x => x.VariantFields.Value)) - { - var fieldValue = StorageClass.HarmonizeTypeName(field.FieldTypeName.Value.Value); - if (fieldValue.Equals(storageClass, StringComparison.CurrentCultureIgnoreCase)) - { - return field.FieldTy.Value; - } - } - } - } - - foreach (var constant in module.Constants.Value) - { - var associatedLookup = metadataV14.RuntimeMetadataData.Lookup.Value[constant.ConstantType.Value]; - - if (associatedLookup.Ty.Path is not null && - associatedLookup.Ty.Path.Value.Length > 0 && - associatedLookup.Ty.Path.Value.Last().Value.Equals(storageClass, StringComparison.CurrentCultureIgnoreCase)) - { - return constant.ConstantType.Value; - } - } - } - - // Last chance bro - return StorageClass.TryHardBinding(storageClass); - } - - [Test] - public async Task DebugAsync() - { - var v14Hex = await _substrateClient.State.GetMetaDataAtAsync(Utils.HexToByteArray("0x7a233affefea10b90b3b5b2b37a6e9d8ef0029ef7add14ac4a56a3520b602927"), CancellationToken.None); - var v14 = new MetadataV14(v14Hex); - - var test1 = FindInV14(v14, "WonDeploy"); - //var test2 = FindInV14(v14, "LockIdentifier"); - - // Constants - var moduleName = "Slots"; - //var constantName = "BlockLength"; - - var moduleFound = v14.RuntimeMetadataData.Modules.Value.Single(x => x.Name.Value.Equals(moduleName)); - //var constantFound = moduleFound.Constants.Value.Single(x => x.Name.Value.Equals(constantName)); - //var constant = v14.RuntimeMetadataData.Lookup.Value.First(x => x.Id.Value == constantFound.ConstantType.Value); - - // Events - var eventName = "LeasePeriodOf"; - var dico = (v14.RuntimeMetadataData.Lookup.Value.Single(x => x.Id.Value == moduleFound.Events.Value.ElemType.Value).Ty.TypeDef.Value2 as TypeDefVariant).TypeParam.Value.Single(x => x.Name.Value.Equals(eventName, StringComparison.CurrentCultureIgnoreCase)); - var x = 0; - } - - private static void StoreV9(MetadataVersionCompact metadata, string metadataHex) - { - var currentMetadata = new MetadataV9(metadataHex); - var modules = currentMetadata.RuntimeMetadataData.Modules.Value; - - foreach (var module in modules) - { - // Get all storage classes from events - if (module.Events.OptionFlag) - { - var vEvents = module.Events.Value.Value; - foreach (var vEvent in vEvents) - { - foreach (var args in vEvent.Args.Value.Select(y => y.Value)) - { - metadata.StorageClasses.Add(new StorageClass(StorageClass.StorageType.Event, module.Name.Value, vEvent.Name.Value, args)); - } - } - } - - var distinctStorageConstants = module.Constants.Value.Select(x => new { constName = x.Name.Value, constType = StorageClass.HarmonizeTypeName(x.ConstantType.Value) }).Distinct().ToList(); - - foreach (var distinctStorageConstant in distinctStorageConstants) - { - metadata.StorageClasses.Add(new StorageClass(StorageClass.StorageType.Constant, module.Name.Value, distinctStorageConstant.constName, distinctStorageConstant.constType)); - } - - if (module.Storage.OptionFlag) - { - var distinctStorage = module.Storage.Value.Entries.Value.ToList(); - - foreach (var storage in distinctStorage) - { - if (storage.StorageType.Value == StorageType.TypeV9.Plain) - { - var storagePlain = storage.StorageType.Value2 as Str ?? throw new InvalidOperationException(); - - metadata.StorageClasses.Add(new StorageClass(StorageClass.StorageType.Storage, module.Name.Value, storage.Name.Value, StorageClass.WriteStoragePlain(storagePlain))); - } - else if (storage.StorageType.Value == StorageType.TypeV9.Map) - { - var storageMap = storage.StorageType.Value2 as StorageEntryTypeMapV9 ?? throw new InvalidOperationException(); - - metadata.StorageClasses.Add(new StorageClass(StorageClass.StorageType.Storage, module.Name.Value, storage.Name.Value, StorageClass.WriteStorageMap(storageMap))); - } - else if (storage.StorageType.Value == StorageType.TypeV9.DoubleMap) - { - var storageDoubleMap = storage.StorageType.Value2 as StorageEntryTypeDoubleMapV9 ?? throw new InvalidOperationException(); - metadata.StorageClasses.Add(new StorageClass(StorageClass.StorageType.Storage, module.Name.Value, storage.Name.Value, StorageClass.WriteStorageDoubleMap(storageDoubleMap))); - } - } - } - } - } - - private static void StoreV10(MetadataVersionCompact metadata, string metadataHex) - { - var currentMetadata = new MetadataV10(metadataHex); - var modules = currentMetadata.RuntimeMetadataData.Modules.Value; - - foreach (var module in modules) - { - // Get all storage classes from events - if (module.Events.OptionFlag) - { - var vEvents = module.Events.Value.Value; - foreach (var vEvent in vEvents) - { - foreach (var args in vEvent.Args.Value.Select(y => y.Value)) - { - metadata.StorageClasses.Add(new StorageClass(StorageClass.StorageType.Event, module.Name.Value, vEvent.Name.Value, args)); - } - } - } - - var distinctStorageConstants = module.Constants.Value.Select(x => new { constName = x.Name.Value, constType = StorageClass.HarmonizeTypeName(x.ConstantType.Value) }).Distinct().ToList(); - - foreach (var distinctStorageConstant in distinctStorageConstants) - { - metadata.StorageClasses.Add(new StorageClass(StorageClass.StorageType.Constant, module.Name.Value, distinctStorageConstant.constName, distinctStorageConstant.constType)); - } - - if (module.Storage.OptionFlag) - { - var distinctStorage = module.Storage.Value.Entries.Value.ToList(); - - foreach (var storage in distinctStorage) - { - if (storage.StorageType.Value == StorageType.TypeV9.Plain) - { - var storagePlain = storage.StorageType.Value2 as Str ?? throw new InvalidOperationException(); - - metadata.StorageClasses.Add(new StorageClass(StorageClass.StorageType.Storage, module.Name.Value, storage.Name.Value, StorageClass.WriteStoragePlain(storagePlain))); - } - else if (storage.StorageType.Value == StorageType.TypeV9.Map) - { - var storageMap = storage.StorageType.Value2 as StorageEntryTypeMapV10 ?? throw new InvalidOperationException(); - - metadata.StorageClasses.Add(new StorageClass(StorageClass.StorageType.Storage, module.Name.Value, storage.Name.Value, StorageClass.WriteStorageMap(storageMap))); - } - else if (storage.StorageType.Value == StorageType.TypeV9.DoubleMap) - { - var storageDoubleMap = storage.StorageType.Value2 as StorageEntryTypeDoubleMapV10 ?? throw new InvalidOperationException(); - metadata.StorageClasses.Add(new StorageClass(StorageClass.StorageType.Storage, module.Name.Value, storage.Name.Value, StorageClass.WriteStorageDoubleMap(storageDoubleMap))); - } - } - } - } - } - - private static void StoreV11(MetadataVersionCompact metadata, string metadataHex) - { - var currentMetadata = new MetadataV11(metadataHex); - var modules = currentMetadata.RuntimeMetadataData.Modules.Value; - - foreach (var module in modules) - { - // Get all storage classes from events - if (module.Events.OptionFlag) - { - var vEvents = module.Events.Value.Value; - foreach (var vEvent in vEvents) - { - foreach (var args in vEvent.Args.Value.Select(y => y.Value)) - { - metadata.StorageClasses.Add(new StorageClass(StorageClass.StorageType.Event, module.Name.Value, vEvent.Name.Value, StorageClass.HarmonizeTypeName(args))); - } - } - } - - var distinctStorageConstants = module.Constants.Value.Select(x => new { constName = x.Name.Value, constType = StorageClass.HarmonizeTypeName(x.ConstantType.Value) }).Distinct().ToList(); - - foreach (var distinctStorageConstant in distinctStorageConstants) - { - metadata.StorageClasses.Add(new StorageClass(StorageClass.StorageType.Constant, module.Name.Value, distinctStorageConstant.constName, distinctStorageConstant.constType)); - } - - if (module.Storage.OptionFlag) - { - var distinctStorage = module.Storage.Value.Entries.Value.ToList(); - - foreach (var storage in distinctStorage) - { - if (storage.StorageType.Value == StorageType.TypeV9.Plain) - { - var storagePlain = storage.StorageType.Value2 as Str ?? throw new InvalidOperationException(); - - metadata.StorageClasses.Add(new StorageClass(StorageClass.StorageType.Storage, module.Name.Value, storage.Name.Value, StorageClass.WriteStoragePlain(storagePlain))); - } - else if (storage.StorageType.Value == StorageType.TypeV9.Map) - { - var storageMap = storage.StorageType.Value2 as StorageEntryTypeMapV11 ?? throw new InvalidOperationException(); - - metadata.StorageClasses.Add(new StorageClass(StorageClass.StorageType.Storage, module.Name.Value, storage.Name.Value, StorageClass.WriteStorageMap(storageMap))); - } - else if (storage.StorageType.Value == StorageType.TypeV9.DoubleMap) - { - var storageDoubleMap = storage.StorageType.Value2 as StorageEntryTypeDoubleMapV11 ?? throw new InvalidOperationException(); - metadata.StorageClasses.Add(new StorageClass(StorageClass.StorageType.Storage, module.Name.Value, storage.Name.Value, StorageClass.WriteStorageDoubleMap(storageDoubleMap))); - } - } - } - } - } - - private static void StoreV12(MetadataVersionCompact metadata, string metadataHex) - { - var currentMetadata = new MetadataV12(metadataHex); - var modules = currentMetadata.RuntimeMetadataData.Modules.Value; - - foreach (var module in modules) - { - // Get all storage classes from events - if (module.Events.OptionFlag) - { - var vEvents = module.Events.Value.Value; - foreach (var vEvent in vEvents) - { - foreach (var args in vEvent.Args.Value.Select(y => y.Value)) - { - metadata.StorageClasses.Add(new StorageClass(StorageClass.StorageType.Event, module.Name.Value, vEvent.Name.Value, StorageClass.HarmonizeTypeName(args))); - } - } - } - - var distinctStorageConstants = module.Constants.Value.Select(x => new { constName = x.Name.Value, constType = StorageClass.HarmonizeTypeName(x.ConstantType.Value) }).Distinct().ToList(); - - foreach (var distinctStorageConstant in distinctStorageConstants) - { - metadata.StorageClasses.Add(new StorageClass(StorageClass.StorageType.Constant, module.Name.Value, distinctStorageConstant.constName, distinctStorageConstant.constType)); - } - - if (module.Storage.OptionFlag) - { - var distinctStorage = module.Storage.Value.Entries.Value.ToList(); - - foreach (var storage in distinctStorage) - { - if (storage.StorageType.Value == StorageType.TypeV9.Plain) - { - var storagePlain = storage.StorageType.Value2 as Str ?? throw new InvalidOperationException(); - - metadata.StorageClasses.Add(new StorageClass(StorageClass.StorageType.Storage, module.Name.Value, storage.Name.Value, StorageClass.WriteStoragePlain(storagePlain))); - } - else if (storage.StorageType.Value == StorageType.TypeV9.Map) - { - var storageMap = storage.StorageType.Value2 as StorageEntryTypeMapV11 ?? throw new InvalidOperationException(); - - metadata.StorageClasses.Add(new StorageClass(StorageClass.StorageType.Storage, module.Name.Value, storage.Name.Value, StorageClass.WriteStorageMap(storageMap))); - } - else if (storage.StorageType.Value == StorageType.TypeV9.DoubleMap) - { - var storageDoubleMap = storage.StorageType.Value2 as StorageEntryTypeDoubleMapV11 ?? throw new InvalidOperationException(); - metadata.StorageClasses.Add(new StorageClass(StorageClass.StorageType.Storage, module.Name.Value, storage.Name.Value, StorageClass.WriteStorageDoubleMap(storageDoubleMap))); - } - } - } - } - } - - private static void StoreV13(MetadataVersionCompact metadata, string metadataHex) - { - var currentMetadata = new MetadataV13(metadataHex); - var modules = currentMetadata.RuntimeMetadataData.Modules.Value; - - foreach (var module in modules) - { - // Get all storage classes from events - if (module.Events.OptionFlag) - { - var vEvents = module.Events.Value.Value; - foreach (var vEvent in vEvents) - { - foreach (var args in vEvent.Args.Value.Select(y => y.Value)) - { - metadata.StorageClasses.Add(new StorageClass(StorageClass.StorageType.Event, module.Name.Value, vEvent.Name.Value, StorageClass.HarmonizeTypeName(args))); - } - } - } - - var distinctStorageConstants = module.Constants.Value.Select(x => new { constName = x.Name.Value, constType = StorageClass.HarmonizeTypeName(x.ConstantType.Value) }).Distinct().ToList(); - - foreach (var distinctStorageConstant in distinctStorageConstants) - { - metadata.StorageClasses.Add(new StorageClass(StorageClass.StorageType.Constant, module.Name.Value, distinctStorageConstant.constName, distinctStorageConstant.constType)); - } - - if (module.Storage.OptionFlag) - { - var distinctStorage = module.Storage.Value.Entries.Value.ToList(); - - foreach (var storage in distinctStorage) - { - if (storage.StorageType.Value == StorageType.Type.Plain) - { - var storagePlain = storage.StorageType.Value2 as Str ?? throw new InvalidOperationException(); - - metadata.StorageClasses.Add(new StorageClass(StorageClass.StorageType.Storage, module.Name.Value, storage.Name.Value, StorageClass.WriteStoragePlain(storagePlain))); - } - else if (storage.StorageType.Value == StorageType.Type.Map) - { - var storageMap = storage.StorageType.Value2 as StorageEntryTypeMapV11 ?? throw new InvalidOperationException(); - - metadata.StorageClasses.Add(new StorageClass(StorageClass.StorageType.Storage, module.Name.Value, storage.Name.Value, StorageClass.WriteStorageMap(storageMap))); - } - else if (storage.StorageType.Value == StorageType.Type.DoubleMap) - { - var storageDoubleMap = storage.StorageType.Value2 as StorageEntryTypeDoubleMapV11 ?? throw new InvalidOperationException(); - metadata.StorageClasses.Add(new StorageClass(StorageClass.StorageType.Storage, module.Name.Value, storage.Name.Value, StorageClass.WriteStorageDoubleMap(storageDoubleMap))); - } - else if (storage.StorageType.Value == StorageType.Type.NMap) - { - var storageNMap = storage.StorageType.Value2 as StorageEntryTypeNMapV13 ?? throw new InvalidOperationException(); - metadata.StorageClasses.Add(new StorageClass(StorageClass.StorageType.Storage, module.Name.Value, storage.Name.Value, StorageClass.WriteStorageNMap(storageNMap))); - } - } - } - } - } - - public string WriteType(uint typeId) - { - var detailType = MetadataNetApi.NodeMetadata.Types[typeId]; //GetPalletType(typeId); - - if (detailType is NodeTypeVariant detailVariant) - return WriteNodeVariant(detailVariant); - else if (detailType is NodeTypeCompact detailCompact) - return WriteNodeCompact(detailCompact); - else if (detailType is NodeTypePrimitive detailPrimitive) - return WriteNodePrimitive(detailPrimitive); - else if (detailType is NodeTypeComposite detailComposite) - return WriteNodeComposite(detailComposite); - else if (detailType is NodeTypeSequence detailSequence) - return WriteNodeSequence(detailSequence); - else if (detailType is NodeTypeTuple detailTuple) - return WriteNodeTuple(detailTuple); - else if (detailType is NodeTypeArray detailArray) - return WriteNodeArray(detailArray); - else - throw new NotSupportedException("Type not supported yet..."); // BitSequence ?? - } - - public string WriteNodeVariant(NodeTypeVariant nodeType) - { - string display = string.Join(":", nodeType.Path); - if (nodeType.TypeParams != null && nodeType.TypeParams.Length > 0) - { - display = $"{display}<{string.Join(",", nodeType.TypeParams.Where(p => p.TypeId != null).Select(p => WriteType((uint)p.TypeId)))}>"; - } - - return display; - } - - public string WriteNodeCompact(NodeTypeCompact nodeType) - { - return $"{nodeType.TypeDef}<{WriteType(nodeType.TypeId)}>"; - } - - public string WriteNodePrimitive(NodeTypePrimitive nodeType) - { - return nodeType.Primitive.ToString(); - } - - public string WriteNodeComposite(NodeTypeComposite nodeType) - { - var display = string.Join(":", nodeType.Path); - if (nodeType.TypeParams != null && nodeType.TypeParams.Length > 0) - { - display = $"{display}<{string.Join(",", nodeType.TypeParams.Select(x => x.Name))}>"; - } - return display; - } - - public string WriteNodeSequence(NodeTypeSequence nodeType) - { - return $"Vec<{WriteType(nodeType.TypeId)}>"; - } - - public string WriteNodeTuple(NodeTypeTuple nodeType) - { - return $"({string.Join(",", nodeType.TypeIds.Select(WriteType))})"; - } - - public string WriteNodeArray(NodeTypeArray nodeType) - { - return $"{WriteType(nodeType.TypeId)}[{nodeType.Length}]"; - } - } -} diff --git a/Substrate.NET.Metadata.Conversion.Tests/UnitTest1.cs b/Substrate.NET.Metadata.Conversion.Tests/UnitTest1.cs deleted file mode 100644 index c1001fb..0000000 --- a/Substrate.NET.Metadata.Conversion.Tests/UnitTest1.cs +++ /dev/null @@ -1,16 +0,0 @@ -namespace Substrate.NET.Metadata.Conversion.Tests -{ - public class Tests - { - [SetUp] - public void Setup() - { - } - - [Test] - public void Test1() - { - Assert.Pass(); - } - } -} \ No newline at end of file diff --git a/Substrate.NET.Metadata.Conversion/Class1.cs b/Substrate.NET.Metadata.Conversion/Class1.cs deleted file mode 100644 index 1482eee..0000000 --- a/Substrate.NET.Metadata.Conversion/Class1.cs +++ /dev/null @@ -1,7 +0,0 @@ -namespace Substrate.NET.Metadata.Conversion -{ - public class Class1 - { - - } -} diff --git a/Substrate.NET.Metadata.Conversion/ConversionV14Helper.cs b/Substrate.NET.Metadata.Conversion/ConversionV14Helper.cs deleted file mode 100644 index c8cb211..0000000 --- a/Substrate.NET.Metadata.Conversion/ConversionV14Helper.cs +++ /dev/null @@ -1,112 +0,0 @@ -using Ardalis.GuardClauses; -using Substrate.NET.Metadata.Base; -using Substrate.NET.Metadata.V14; -using Substrate.NetApi.Model.Types.Base; -using Substrate.NetApi.Model.Types.Primitive; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Text.RegularExpressions; -using System.Threading.Tasks; - -namespace Substrate.NET.Metadata.Conversion -{ - public static class ConversionV14Helper - { - #region V14 metadata - public const string metadataV14_9110 = "0x6d6574610e1109000c1c73705f636f72651863727970746f2c4163636f756e7449643332000004000401205b75383b2033325d0000040000032000000008000800000503000c08306672616d655f73797374656d2c4163636f756e74496e666f0814496e64657801102c4163636f756e74446174610114001401146e6f6e6365100114496e646578000124636f6e73756d657273100120526566436f756e7400012470726f766964657273100120526566436f756e7400012c73756666696369656e7473100120526566436f756e740001106461746114012c4163636f756e7444617461000010000005050014083c70616c6c65745f62616c616e6365732c4163636f756e7444617461041c42616c616e63650118001001106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500012c6d6973635f66726f7a656e18011c42616c616e63650001286665655f66726f7a656e18011c42616c616e636500001800000507001c0c346672616d655f737570706f72741c77656967687473405065724469737061746368436c6173730404540120000c01186e6f726d616c2001045400012c6f7065726174696f6e616c200104540001246d616e6461746f727920010454000020000005060024083c7072696d69746976655f74797065731048323536000004000401205b75383b2033325d00002800000208002c102873705f72756e74696d651c67656e6572696318646967657374184469676573740410486173680124000401106c6f67733001545665633c4469676573744974656d3c486173683e3e000030000002340034102873705f72756e74696d651c67656e6572696318646967657374284469676573744974656d0410486173680124011c3c4368616e67657354726965526f6f740400240110486173680002002850726552756e74696d650800380144436f6e73656e737573456e67696e654964000028011c5665633c75383e00060024436f6e73656e7375730800380144436f6e73656e737573456e67696e654964000028011c5665633c75383e000400105365616c0800380144436f6e73656e737573456e67696e654964000028011c5665633c75383e000500444368616e676573547269655369676e616c04003c01444368616e676573547269655369676e616c000700144f74686572040028011c5665633c75383e0000006452756e74696d65456e7669726f6e6d656e745570646174656400080000380000030400000008003c102873705f72756e74696d651c67656e6572696318646967657374444368616e676573547269655369676e616c000104404e6577436f6e66696775726174696f6e04004001804f7074696f6e3c4368616e67657354726965436f6e66696775726174696f6e3e000000004004184f7074696f6e04045401440108104e6f6e6500000010536f6d650400440000010000440c1c73705f636f7265306368616e6765735f74726965604368616e67657354726965436f6e66696775726174696f6e000008013c6469676573745f696e74657276616c10010c7533320001346469676573745f6c6576656c7310010c7533320000480000024c004c08306672616d655f73797374656d2c4576656e745265636f7264080445015004540124000c011470686173659d01011450686173650001146576656e7450010445000118746f70696373a10101185665633c543e0000500840706f6c6b61646f745f72756e74696d65144576656e740001801853797374656d04005401706672616d655f73797374656d3a3a4576656e743c52756e74696d653e000000245363686564756c6572040070018070616c6c65745f7363686564756c65723a3a4576656e743c52756e74696d653e0001001c496e6469636573040084017870616c6c65745f696e64696365733a3a4576656e743c52756e74696d653e0004002042616c616e636573040088017c70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d653e0005001c5374616b696e67040090017870616c6c65745f7374616b696e673a3a4576656e743c52756e74696d653e000700204f6666656e636573040094015870616c6c65745f6f6666656e6365733a3a4576656e740008001c53657373696f6e04009c015470616c6c65745f73657373696f6e3a3a4576656e740009001c4772616e6470610400a0015470616c6c65745f6772616e6470613a3a4576656e74000b0020496d4f6e6c696e650400b4018070616c6c65745f696d5f6f6e6c696e653a3a4576656e743c52756e74696d653e000c002444656d6f63726163790400d8018070616c6c65745f64656d6f63726163793a3a4576656e743c52756e74696d653e000e001c436f756e63696c0400e401fc70616c6c65745f636f6c6c6563746976653a3a4576656e743c52756e74696d652c2070616c6c65745f636f6c6c6563746976653a3a496e7374616e6365313e000f0048546563686e6963616c436f6d6d69747465650400ec01fc70616c6c65745f636f6c6c6563746976653a3a4576656e743c52756e74696d652c2070616c6c65745f636f6c6c6563746976653a3a496e7374616e6365323e0010004050687261676d656e456c656374696f6e0400f001a470616c6c65745f656c656374696f6e735f70687261676d656e3a3a4576656e743c52756e74696d653e0011004c546563686e6963616c4d656d626572736869700400fc01fc70616c6c65745f6d656d626572736869703a3a4576656e743c52756e74696d652c2070616c6c65745f6d656d626572736869703a3a496e7374616e6365313e00120020547265617375727904000101017c70616c6c65745f74726561737572793a3a4576656e743c52756e74696d653e00130018436c61696d73040005010158636c61696d733a3a4576656e743c52756e74696d653e0018001c56657374696e6704001101017870616c6c65745f76657374696e673a3a4576656e743c52756e74696d653e0019001c5574696c69747904001501015470616c6c65745f7574696c6974793a3a4576656e74001a00204964656e7469747904001901017c70616c6c65745f6964656e746974793a3a4576656e743c52756e74696d653e001c001450726f787904001d01017070616c6c65745f70726f78793a3a4576656e743c52756e74696d653e001d00204d756c746973696704002901017c70616c6c65745f6d756c74697369673a3a4576656e743c52756e74696d653e001e0020426f756e7469657304003101017c70616c6c65745f626f756e746965733a3a4576656e743c52756e74696d653e002200105469707304003501016c70616c6c65745f746970733a3a4576656e743c52756e74696d653e00230068456c656374696f6e50726f76696465724d756c746950686173650400390101d070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173653a3a4576656e743c52756e74696d653e0024003450617261496e636c7573696f6e04004501019070617261636861696e735f696e636c7573696f6e3a3a4576656e743c52756e74696d653e00350014506172617304007501015c70617261636861696e735f70617261733a3a4576656e740038000c556d7004007901015470617261636861696e735f756d703a3a4576656e74003b001048726d7004008501017c70617261636861696e735f68726d703a3a4576656e743c52756e74696d653e003c002452656769737472617204008d01017c70617261735f7265676973747261723a3a4576656e743c52756e74696d653e00460014536c6f7473040091010154736c6f74733a3a4576656e743c52756e74696d653e0047002041756374696f6e7304009501016061756374696f6e733a3a4576656e743c52756e74696d653e0048002443726f77646c6f616e04009901016463726f77646c6f616e3a3a4576656e743c52756e74696d653e00490000540c306672616d655f73797374656d1870616c6c6574144576656e740404540001184045787472696e7369635375636365737304005801304469737061746368496e666f000004b4416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e205c5b696e666f5c5d3c45787472696e7369634661696c6564080064013444697370617463684572726f7200005801304469737061746368496e666f00010490416e2065787472696e736963206661696c65642e205c5b6572726f722c20696e666f5c5d2c436f64655570646174656400020450603a636f6465602077617320757064617465642e284e65774163636f756e740400000130543a3a4163636f756e7449640003047841206e6577205c5b6163636f756e745c5d2077617320637265617465642e344b696c6c65644163636f756e740400000130543a3a4163636f756e74496400040468416e205c5b6163636f756e745c5d20776173207265617065642e2052656d61726b65640800000130543a3a4163636f756e744964000024011c543a3a48617368000504d04f6e206f6e2d636861696e2072656d61726b2068617070656e65642e205c5b6f726967696e2c2072656d61726b5f686173685c5d04704576656e7420666f72207468652053797374656d2070616c6c65742e580c346672616d655f737570706f72741c77656967687473304469737061746368496e666f00000c0118776569676874200118576569676874000114636c6173735c01344469737061746368436c617373000120706179735f6665656001105061797300005c0c346672616d655f737570706f72741c77656967687473344469737061746368436c61737300010c184e6f726d616c0000002c4f7065726174696f6e616c000100244d616e6461746f727900020000600c346672616d655f737570706f72741c7765696768747310506179730001080c596573000000084e6f0001000064082873705f72756e74696d653444697370617463684572726f72000120144f746865720000003043616e6e6f744c6f6f6b7570000100244261644f726967696e000200184d6f64756c65080114696e64657808010875380001146572726f72080108753800030044436f6e73756d657252656d61696e696e670004002c4e6f50726f76696465727300050014546f6b656e0400680128546f6b656e4572726f720006002841726974686d6574696304006c013c41726974686d657469634572726f720007000068082873705f72756e74696d6528546f6b656e4572726f7200011c1c4e6f46756e647300000020576f756c644469650001003042656c6f774d696e696d756d0002003043616e6e6f7443726561746500030030556e6b6e6f776e41737365740004001846726f7a656e0005002c556e737570706f72746564000600006c082873705f72756e74696d653c41726974686d657469634572726f7200010c24556e646572666c6f77000000204f766572666c6f77000100384469766973696f6e42795a65726f00020000700c4070616c6c65745f7363686564756c65721870616c6c6574144576656e7404045400010c245363686564756c65640800100138543a3a426c6f636b4e756d626572000010010c753332000004905363686564756c656420736f6d65207461736b2e205c5b7768656e2c20696e6465785c5d2043616e63656c65640800100138543a3a426c6f636b4e756d626572000010010c7533320001048c43616e63656c656420736f6d65207461736b2e205c5b7768656e2c20696e6465785c5d28446973706174636865640c0074016c5461736b416464726573733c543a3a426c6f636b4e756d6265723e000078013c4f7074696f6e3c5665633c75383e3e00007c01384469737061746368526573756c74000204a84469737061746368656420736f6d65207461736b2e205c5b7461736b2c2069642c20726573756c745c5d04304576656e747320747970652e74000004081010007804184f7074696f6e04045401280108104e6f6e6500000010536f6d6504002800000100007c0418526573756c740804540180044501640108084f6b040080000000000c4572720400640000010000800000040000840c3870616c6c65745f696e64696365731870616c6c6574144576656e7404045400010c34496e64657841737369676e65640800000130543a3a4163636f756e744964000010013c543a3a4163636f756e74496e646578000004b041206163636f756e7420696e646578207761732061737369676e65642e205c5b696e6465782c2077686f5c5d28496e6465784672656564040010013c543a3a4163636f756e74496e646578000104e441206163636f756e7420696e64657820686173206265656e2066726565642075702028756e61737369676e6564292e205c5b696e6465785c5d2c496e64657846726f7a656e080010013c543a3a4163636f756e74496e6465780000000130543a3a4163636f756e744964000204250141206163636f756e7420696e64657820686173206265656e2066726f7a656e20746f206974732063757272656e74206163636f756e742049442e205c5b696e6465782c2077686f5c5d04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a090909880c3c70616c6c65745f62616c616e6365731870616c6c6574144576656e740804540004490001201c456e646f7765640800000130543a3a4163636f756e7449640000180128543a3a42616c616e63650000042101416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e205c5b6163636f756e742c20667265655f62616c616e63655c5d20447573744c6f73740800000130543a3a4163636f756e7449640000180128543a3a42616c616e63650001083d01416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742ccc726573756c74696e6720696e20616e206f75747269676874206c6f73732e205c5b6163636f756e742c2062616c616e63655c5d205472616e736665720c00000130543a3a4163636f756e7449640000000130543a3a4163636f756e7449640000180128543a3a42616c616e63650002049c5472616e73666572207375636365656465642e205c5b66726f6d2c20746f2c2076616c75655c5d2842616c616e63655365740c00000130543a3a4163636f756e7449640000180128543a3a42616c616e63650000180128543a3a42616c616e6365000304c8412062616c616e6365207761732073657420627920726f6f742e205c5b77686f2c20667265652c2072657365727665645c5d1c4465706f7369740800000130543a3a4163636f756e7449640000180128543a3a42616c616e63650004041d01536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e205c5b77686f2c206465706f7369745c5d2052657365727665640800000130543a3a4163636f756e7449640000180128543a3a42616c616e63650005041d01536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e205c5b77686f2c2076616c75655c5d28556e72657365727665640800000130543a3a4163636f756e7449640000180128543a3a42616c616e63650006042501536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e205c5b77686f2c2076616c75655c5d485265736572766552657061747269617465641000000130543a3a4163636f756e7449640000000130543a3a4163636f756e7449640000180128543a3a42616c616e636500008c011853746174757300070c4d01536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742ed846696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652ea45c5b66726f6d2c20746f2c2062616c616e63652c2064657374696e6174696f6e5f7374617475735c5d04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a0909098c14346672616d655f737570706f72741874726169747318746f6b656e73106d6973633442616c616e636553746174757300010810467265650000002052657365727665640001000090103870616c6c65745f7374616b696e671870616c6c65741870616c6c6574144576656e740404540001301c457261506169640c00100120457261496e646578000018013042616c616e63654f663c543e000018013042616c616e63654f663c543e00000c550154686520657261207061796f757420686173206265656e207365743b207468652066697273742062616c616e6365206973207468652076616c696461746f722d7061796f75743b20746865207365636f6e64206973c07468652072656d61696e6465722066726f6d20746865206d6178696d756d20616d6f756e74206f66207265776172642ea85c5b6572615f696e6465782c2076616c696461746f725f7061796f75742c2072656d61696e6465725c5d2052657761726465640800000130543a3a4163636f756e744964000018013042616c616e63654f663c543e0001040501546865206e6f6d696e61746f7220686173206265656e207265776172646564206279207468697320616d6f756e742e205c5b73746173682c20616d6f756e745c5d1c536c61736865640800000130543a3a4163636f756e744964000018013042616c616e63654f663c543e00020821014f6e652076616c696461746f722028616e6420697473206e6f6d696e61746f72732920686173206265656e20736c61736865642062792074686520676976656e20616d6f756e742e545c5b76616c696461746f722c20616d6f756e745c5d684f6c64536c617368696e675265706f7274446973636172646564040010013053657373696f6e496e6465780003081901416e206f6c6420736c617368696e67207265706f72742066726f6d2061207072696f72206572612077617320646973636172646564206265636175736520697420636f756c648c6e6f742062652070726f6365737365642e205c5b73657373696f6e5f696e6465785c5d385374616b657273456c65637465640004048441206e657720736574206f66207374616b6572732077617320656c65637465642e18426f6e6465640800000130543a3a4163636f756e744964000018013042616c616e63654f663c543e000510d0416e206163636f756e742068617320626f6e646564207468697320616d6f756e742e205c5b73746173682c20616d6f756e745c5d004d014e4f54453a2054686973206576656e74206973206f6e6c7920656d6974746564207768656e2066756e64732061726520626f6e64656420766961206120646973706174636861626c652e204e6f7461626c792c210169742077696c6c206e6f7420626520656d697474656420666f72207374616b696e672072657761726473207768656e20746865792061726520616464656420746f207374616b652e20556e626f6e6465640800000130543a3a4163636f756e744964000018013042616c616e63654f663c543e000604d8416e206163636f756e742068617320756e626f6e646564207468697320616d6f756e742e205c5b73746173682c20616d6f756e745c5d2457697468647261776e0800000130543a3a4163636f756e744964000018013042616c616e63654f663c543e0007085901416e206163636f756e74206861732063616c6c6564206077697468647261775f756e626f6e6465646020616e642072656d6f76656420756e626f6e64696e67206368756e6b7320776f727468206042616c616e636560ac66726f6d2074686520756e6c6f636b696e672071756575652e205c5b73746173682c20616d6f756e745c5d184b69636b65640800000130543a3a4163636f756e7449640000000130543a3a4163636f756e744964000804090141206e6f6d696e61746f7220686173206265656e206b69636b65642066726f6d20612076616c696461746f722e205c5b6e6f6d696e61746f722c2073746173685c5d545374616b696e67456c656374696f6e4661696c6564000904ac54686520656c656374696f6e206661696c65642e204e6f206e65772065726120697320706c616e6e65642e1c4368696c6c65640400000130543a3a4163636f756e744964000a082101416e206163636f756e74206861732073746f707065642070617274696369706174696e672061732065697468657220612076616c696461746f72206f72206e6f6d696e61746f722e245c5b73746173685c5d345061796f7574537461727465640800100120457261496e6465780000000130543a3a4163636f756e744964000b041501546865207374616b657273272072657761726473206172652067657474696e6720706169642e205c5b6572615f696e6465782c2076616c696461746f725f73746173685c5d04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a090909940c3c70616c6c65745f6f6666656e6365731870616c6c6574144576656e740001041c4f6666656e636508009801104b696e6400002801384f706171756554696d65536c6f7400000c5101546865726520697320616e206f6666656e6365207265706f72746564206f662074686520676976656e20606b696e64602068617070656e656420617420746865206073657373696f6e5f696e6465786020616e643501286b696e642d7370656369666963292074696d6520736c6f742e2054686973206576656e74206973206e6f74206465706f736974656420666f72206475706c696361746520736c61736865732e4c5c5b6b696e642c2074696d65736c6f745c5d2e04304576656e747320747970652e980000031000000008009c0c3870616c6c65745f73657373696f6e1870616c6c6574144576656e74000104284e657753657373696f6e040010013053657373696f6e496e64657800000849014e65772073657373696f6e206861732068617070656e65642e204e6f746520746861742074686520617267756d656e7420697320746865205c5b73657373696f6e5f696e6465785c5d2c206e6f74207468659c626c6f636b206e756d626572206173207468652074797065206d6967687420737567676573742e04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a090909a00c3870616c6c65745f6772616e6470611870616c6c6574144576656e7400010c384e6577417574686f7269746965730400a40134417574686f726974794c697374000004d44e657720617574686f726974792073657420686173206265656e206170706c6965642e205c5b617574686f726974795f7365745c5d185061757365640001049843757272656e7420617574686f726974792073657420686173206265656e207061757365642e1c526573756d65640002049c43757272656e7420617574686f726974792073657420686173206265656e20726573756d65642e04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a090909a4000002a800a800000408ac2000ac0c4c73705f66696e616c6974795f6772616e6470610c617070185075626c696300000400b0013c656432353531393a3a5075626c69630000b00c1c73705f636f72651c65643235353139185075626c6963000004000401205b75383b2033325d0000b40c4070616c6c65745f696d5f6f6e6c696e651870616c6c6574144576656e7404045400010c4448656172746265617452656365697665640400b80138543a3a417574686f726974794964000004010141206e657720686561727462656174207761732072656365697665642066726f6d2060417574686f72697479496460205c5b617574686f726974795f69645c5d1c416c6c476f6f64000104d041742074686520656e64206f66207468652073657373696f6e2c206e6f206f6666656e63652077617320636f6d6d69747465642e2c536f6d654f66666c696e650400c0016c5665633c4964656e74696669636174696f6e5475706c653c543e3e000204390141742074686520656e64206f66207468652073657373696f6e2c206174206c65617374206f6e652076616c696461746f722077617320666f756e6420746f206265205c5b6f66666c696e655c5d2e04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a090909b8104070616c6c65745f696d5f6f6e6c696e651c737232353531392c6170705f73723235353139185075626c696300000400bc013c737232353531393a3a5075626c69630000bc0c1c73705f636f72651c73723235353139185075626c6963000004000401205b75383b2033325d0000c0000002c400c40000040800c800c8083870616c6c65745f7374616b696e67204578706f7375726508244163636f756e74496401001c42616c616e63650118000c0114746f74616ccc011c42616c616e636500010c6f776ecc011c42616c616e63650001186f7468657273d001ac5665633c496e646976696475616c4578706f737572653c4163636f756e7449642c2042616c616e63653e3e0000cc0000061800d0000002d400d4083870616c6c65745f7374616b696e6748496e646976696475616c4578706f7375726508244163636f756e74496401001c42616c616e636501180008010c77686f0001244163636f756e74496400011476616c7565cc011c42616c616e63650000d80c4070616c6c65745f64656d6f63726163791870616c6c6574144576656e740404540001442050726f706f736564080010012450726f70496e646578000018013042616c616e63654f663c543e0000042d0141206d6f74696f6e20686173206265656e2070726f706f7365642062792061207075626c6963206163636f756e742e205c5b70726f706f73616c5f696e6465782c206465706f7369745c5d185461626c65640c0010012450726f70496e646578000018013042616c616e63654f663c543e0000dc01445665633c543a3a4163636f756e7449643e000108450141207075626c69632070726f706f73616c20686173206265656e207461626c656420666f72207265666572656e64756d20766f74652e205c5b70726f706f73616c5f696e6465782c206465706f7369742c306465706f7369746f72735c5d3845787465726e616c5461626c656400020494416e2065787465726e616c2070726f706f73616c20686173206265656e207461626c65642e1c53746172746564080010013c5265666572656e64756d496e6465780000e00134566f74655468726573686f6c64000304c041207265666572656e64756d2068617320626567756e2e205c5b7265665f696e6465782c207468726573686f6c645c5d18506173736564040010013c5265666572656e64756d496e646578000404e4412070726f706f73616c20686173206265656e20617070726f766564206279207265666572656e64756d2e205c5b7265665f696e6465785c5d244e6f74506173736564040010013c5265666572656e64756d496e646578000504e4412070726f706f73616c20686173206265656e2072656a6563746564206279207265666572656e64756d2e205c5b7265665f696e6465785c5d2443616e63656c6c6564040010013c5265666572656e64756d496e646578000604b841207265666572656e64756d20686173206265656e2063616e63656c6c65642e205c5b7265665f696e6465785c5d204578656375746564080010013c5265666572656e64756d496e64657800007c01384469737061746368526573756c74000704c8412070726f706f73616c20686173206265656e20656e61637465642e205c5b7265665f696e6465782c20726573756c745c5d2444656c6567617465640800000130543a3a4163636f756e7449640000000130543a3a4163636f756e7449640008041d01416e206163636f756e74206861732064656c65676174656420746865697220766f746520746f20616e6f74686572206163636f756e742e205c5b77686f2c207461726765745c5d2c556e64656c6567617465640400000130543a3a4163636f756e744964000904f4416e205c5b6163636f756e745c5d206861732063616e63656c6c656420612070726576696f75732064656c65676174696f6e206f7065726174696f6e2e185665746f65640c00000130543a3a4163636f756e744964000024011c543a3a486173680000100138543a3a426c6f636b4e756d626572000a040d01416e2065787465726e616c2070726f706f73616c20686173206265656e207665746f65642e205c5b77686f2c2070726f706f73616c5f686173682c20756e74696c5c5d34507265696d6167654e6f7465640c0024011c543a3a486173680000000130543a3a4163636f756e744964000018013042616c616e63654f663c543e000b045d01412070726f706f73616c277320707265696d61676520776173206e6f7465642c20616e6420746865206465706f7369742074616b656e2e205c5b70726f706f73616c5f686173682c2077686f2c206465706f7369745c5d30507265696d616765557365640c0024011c543a3a486173680000000130543a3a4163636f756e744964000018013042616c616e63654f663c543e000c081101412070726f706f73616c20707265696d616765207761732072656d6f76656420616e6420757365642028746865206465706f736974207761732072657475726e6564292e905c5b70726f706f73616c5f686173682c2070726f76696465722c206465706f7369745c5d3c507265696d616765496e76616c6964080024011c543a3a48617368000010013c5265666572656e64756d496e646578000d080901412070726f706f73616c20636f756c64206e6f7420626520657865637574656420626563617573652069747320707265696d6167652077617320696e76616c69642e705c5b70726f706f73616c5f686173682c207265665f696e6465785c5d3c507265696d6167654d697373696e67080024011c543a3a48617368000010013c5265666572656e64756d496e646578000e080901412070726f706f73616c20636f756c64206e6f7420626520657865637574656420626563617573652069747320707265696d61676520776173206d697373696e672e705c5b70726f706f73616c5f686173682c207265665f696e6465785c5d38507265696d616765526561706564100024011c543a3a486173680000000130543a3a4163636f756e744964000018013042616c616e63654f663c543e0000000130543a3a4163636f756e744964000f08290141207265676973746572656420707265696d616765207761732072656d6f76656420616e6420746865206465706f73697420636f6c6c656374656420627920746865207265617065722eb05c5b70726f706f73616c5f686173682c2070726f76696465722c206465706f7369742c207265617065725c5d2c426c61636b6c6973746564040024011c543a3a48617368001004d4412070726f706f73616c205c5b686173685c5d20686173206265656e20626c61636b6c6973746564207065726d616e656e746c792e04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a090909dc0000020000e00c4070616c6c65745f64656d6f637261637938766f74655f7468726573686f6c6434566f74655468726573686f6c6400010c5053757065724d616a6f72697479417070726f76650000005053757065724d616a6f72697479416761696e73740001003853696d706c654d616a6f7269747900020000e40c4470616c6c65745f636f6c6c6563746976651870616c6c6574144576656e7408045400044900011c2050726f706f7365641000000130543a3a4163636f756e744964000010013450726f706f73616c496e646578000024011c543a3a48617368000010012c4d656d626572436f756e7400000c490141206d6f74696f6e2028676976656e20686173682920686173206265656e2070726f706f7365642028627920676976656e206163636f756e742920776974682061207468726573686f6c642028676976656e3c604d656d626572436f756e7460292ed45c5b6163636f756e742c2070726f706f73616c5f696e6465782c2070726f706f73616c5f686173682c207468726573686f6c645c5d14566f7465641400000130543a3a4163636f756e744964000024011c543a3a486173680000e80110626f6f6c000010012c4d656d626572436f756e74000010012c4d656d626572436f756e7400010c050141206d6f74696f6e2028676976656e20686173682920686173206265656e20766f746564206f6e20627920676976656e206163636f756e742c206c656176696e671501612074616c6c79202879657320766f74657320616e64206e6f20766f74657320676976656e20726573706563746976656c7920617320604d656d626572436f756e7460292ea85c5b6163636f756e742c2070726f706f73616c5f686173682c20766f7465642c207965732c206e6f5c5d20417070726f766564040024011c543a3a48617368000208c041206d6f74696f6e2077617320617070726f76656420627920746865207265717569726564207468726573686f6c642e445c5b70726f706f73616c5f686173685c5d2c446973617070726f766564040024011c543a3a48617368000308d041206d6f74696f6e20776173206e6f7420617070726f76656420627920746865207265717569726564207468726573686f6c642e445c5b70726f706f73616c5f686173685c5d204578656375746564080024011c543a3a4861736800007c01384469737061746368526573756c74000408210141206d6f74696f6e207761732065786563757465643b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e645c5b70726f706f73616c5f686173682c20726573756c745c5d384d656d6265724578656375746564080024011c543a3a4861736800007c01384469737061746368526573756c740005084901412073696e676c65206d656d6265722064696420736f6d6520616374696f6e3b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e645c5b70726f706f73616c5f686173682c20726573756c745c5d18436c6f7365640c0024011c543a3a48617368000010012c4d656d626572436f756e74000010012c4d656d626572436f756e740006085501412070726f706f73616c2077617320636c6f736564206265636175736520697473207468726573686f6c64207761732072656163686564206f7220616674657220697473206475726174696f6e207761732075702e685c5b70726f706f73616c5f686173682c207965732c206e6f5c5d04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a090909e80000050000ec0c4470616c6c65745f636f6c6c6563746976651870616c6c6574144576656e7408045400044900011c2050726f706f7365641000000130543a3a4163636f756e744964000010013450726f706f73616c496e646578000024011c543a3a48617368000010012c4d656d626572436f756e7400000c490141206d6f74696f6e2028676976656e20686173682920686173206265656e2070726f706f7365642028627920676976656e206163636f756e742920776974682061207468726573686f6c642028676976656e3c604d656d626572436f756e7460292ed45c5b6163636f756e742c2070726f706f73616c5f696e6465782c2070726f706f73616c5f686173682c207468726573686f6c645c5d14566f7465641400000130543a3a4163636f756e744964000024011c543a3a486173680000e80110626f6f6c000010012c4d656d626572436f756e74000010012c4d656d626572436f756e7400010c050141206d6f74696f6e2028676976656e20686173682920686173206265656e20766f746564206f6e20627920676976656e206163636f756e742c206c656176696e671501612074616c6c79202879657320766f74657320616e64206e6f20766f74657320676976656e20726573706563746976656c7920617320604d656d626572436f756e7460292ea85c5b6163636f756e742c2070726f706f73616c5f686173682c20766f7465642c207965732c206e6f5c5d20417070726f766564040024011c543a3a48617368000208c041206d6f74696f6e2077617320617070726f76656420627920746865207265717569726564207468726573686f6c642e445c5b70726f706f73616c5f686173685c5d2c446973617070726f766564040024011c543a3a48617368000308d041206d6f74696f6e20776173206e6f7420617070726f76656420627920746865207265717569726564207468726573686f6c642e445c5b70726f706f73616c5f686173685c5d204578656375746564080024011c543a3a4861736800007c01384469737061746368526573756c74000408210141206d6f74696f6e207761732065786563757465643b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e645c5b70726f706f73616c5f686173682c20726573756c745c5d384d656d6265724578656375746564080024011c543a3a4861736800007c01384469737061746368526573756c740005084901412073696e676c65206d656d6265722064696420736f6d6520616374696f6e3b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e645c5b70726f706f73616c5f686173682c20726573756c745c5d18436c6f7365640c0024011c543a3a48617368000010012c4d656d626572436f756e74000010012c4d656d626572436f756e740006085501412070726f706f73616c2077617320636c6f736564206265636175736520697473207468726573686f6c64207761732072656163686564206f7220616674657220697473206475726174696f6e207761732075702e685c5b70726f706f73616c5f686173682c207965732c206e6f5c5d04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a090909f00c6470616c6c65745f656c656374696f6e735f70687261676d656e1870616c6c6574144576656e7404045400011c1c4e65775465726d0400f401ec5665633c283c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e7449642c2042616c616e63654f663c543e293e000014550141206e6577207465726d2077697468205c5b6e65775f6d656d626572735c5d2e205468697320696e64696361746573207468617420656e6f7567682063616e64696461746573206578697374656420746f2072756e550174686520656c656374696f6e2c206e6f74207468617420656e6f756768206861766520686173206265656e20656c65637465642e2054686520696e6e65722076616c7565206d757374206265206578616d696e65644501666f72207468697320707572706f73652e204120604e65775465726d285c5b5c5d296020696e64696361746573207468617420736f6d652063616e6469646174657320676f7420746865697220626f6e645501736c617368656420616e64206e6f6e65207765726520656c65637465642c207768696c73742060456d7074795465726d60206d65616e732074686174206e6f2063616e64696461746573206578697374656420746f2c626567696e20776974682e24456d7074795465726d00010831014e6f20286f72206e6f7420656e6f756768292063616e64696461746573206578697374656420666f72207468697320726f756e642e205468697320697320646966666572656e742066726f6dc8604e65775465726d285c5b5c5d29602e2053656520746865206465736372697074696f6e206f6620604e65775465726d602e34456c656374696f6e4572726f72000204e4496e7465726e616c206572726f722068617070656e6564207768696c6520747279696e6720746f20706572666f726d20656c656374696f6e2e304d656d6265724b69636b656404000001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e744964000308510141205c5b6d656d6265725c5d20686173206265656e2072656d6f7665642e20546869732073686f756c6420616c7761797320626520666f6c6c6f7765642062792065697468657220604e65775465726d60206f723060456d7074795465726d602e2452656e6f756e63656404000001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e74496400040498536f6d656f6e65206861732072656e6f756e6365642074686569722063616e6469646163792e4043616e646964617465536c617368656408000001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e744964000018013042616c616e63654f663c543e000510590141205c5b63616e6469646174655c5d2077617320736c6173686564206279205c5b616d6f756e745c5d2064756520746f206661696c696e6720746f206f627461696e20612073656174206173206d656d626572206f722872756e6e65722d75702e00e44e6f74652074686174206f6c64206d656d6265727320616e642072756e6e6572732d75702061726520616c736f2063616e646964617465732e4453656174486f6c646572536c617368656408000001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e744964000018013042616c616e63654f663c543e000604550141205c5b7365617420686f6c6465725c5d2077617320736c6173686564206279205c5b616d6f756e745c5d206279206265696e6720666f72636566756c6c792072656d6f7665642066726f6d20746865207365742e04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a090909f4000002f800f800000408001800fc0c4470616c6c65745f6d656d626572736869701870616c6c6574144576656e740804540004490001182c4d656d6265724164646564000004e054686520676976656e206d656d626572207761732061646465643b2073656520746865207472616e73616374696f6e20666f722077686f2e344d656d62657252656d6f766564000104e854686520676976656e206d656d626572207761732072656d6f7665643b2073656520746865207472616e73616374696f6e20666f722077686f2e384d656d6265727353776170706564000204d854776f206d656d62657273207765726520737761707065643b2073656520746865207472616e73616374696f6e20666f722077686f2e304d656d6265727352657365740003041501546865206d656d62657273686970207761732072657365743b2073656520746865207472616e73616374696f6e20666f722077686f20746865206e6577207365742069732e284b65794368616e676564000404844f6e65206f6620746865206d656d6265727327206b657973206368616e6765642e1444756d6d790005046c5068616e746f6d206d656d6265722c206e6576657220757365642e04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a09090901010c3c70616c6c65745f74726561737572791870616c6c6574144576656e7408045400044900011c2050726f706f736564040010013450726f706f73616c496e646578000004804e65772070726f706f73616c2e205c5b70726f706f73616c5f696e6465785c5d205370656e64696e67040018013c42616c616e63654f663c542c20493e00010439015765206861766520656e6465642061207370656e6420706572696f6420616e642077696c6c206e6f7720616c6c6f636174652066756e64732e205c5b6275646765745f72656d61696e696e675c5d1c417761726465640c0010013450726f706f73616c496e646578000018013c42616c616e63654f663c542c20493e0000000130543a3a4163636f756e7449640002041901536f6d652066756e64732068617665206265656e20616c6c6f63617465642e205c5b70726f706f73616c5f696e6465782c2061776172642c2062656e65666963696172795c5d2052656a6563746564080010013450726f706f73616c496e646578000018013c42616c616e63654f663c542c20493e0003042101412070726f706f73616c207761732072656a65637465643b2066756e6473207765726520736c61736865642e205c5b70726f706f73616c5f696e6465782c20736c61736865645c5d144275726e74040018013c42616c616e63654f663c542c20493e000404ac536f6d65206f66206f75722066756e64732068617665206265656e206275726e742e205c5b6275726e5c5d20526f6c6c6f766572040018013c42616c616e63654f663c542c20493e0005082d015370656e64696e67206861732066696e69736865643b20746869732069732074686520616d6f756e74207468617420726f6c6c73206f76657220756e74696c206e657874207370656e642e505c5b6275646765745f72656d61696e696e675c5d1c4465706f736974040018013c42616c616e63654f663c542c20493e000604ac536f6d652066756e64732068617665206265656e206465706f73697465642e205c5b6465706f7369745c5d04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a0909090501105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e18636c61696d731870616c6c6574144576656e740404540001041c436c61696d65640c00000130543a3a4163636f756e74496400000901013c457468657265756d41646472657373000018013042616c616e63654f663c543e000004f0536f6d656f6e6520636c61696d656420736f6d6520444f54732e20605b77686f2c20657468657265756d5f616464726573732c20616d6f756e745d6004a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a09090909010c5c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e18636c61696d733c457468657265756d41646472657373000004000d0101205b75383b2032305d00000d0100000314000000080011010c3870616c6c65745f76657374696e671870616c6c6574144576656e740404540001083856657374696e67557064617465640800000130543a3a4163636f756e744964000018013042616c616e63654f663c543e00000c510154686520616d6f756e742076657374656420686173206265656e20757064617465642e205468697320636f756c6420696e6469636174652061206368616e676520696e2066756e647320617661696c61626c652e25015468652062616c616e636520676976656e2069732074686520616d6f756e74207768696368206973206c65667420756e7665737465642028616e642074687573206c6f636b6564292e545c5b6163636f756e742c20756e7665737465645c5d4056657374696e67436f6d706c657465640400000130543a3a4163636f756e7449640001049c416e205c5b6163636f756e745c5d20686173206265636f6d652066756c6c79207665737465642e04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a09090915010c3870616c6c65745f7574696c6974791870616c6c6574144576656e7400010c404261746368496e746572727570746564080010010c753332000064013444697370617463684572726f7200000855014261746368206f66206469737061746368657320646964206e6f7420636f6d706c6574652066756c6c792e20496e646578206f66206669727374206661696c696e6720646973706174636820676976656e2c2061738c77656c6c20617320746865206572726f722e205c5b696e6465782c206572726f725c5d384261746368436f6d706c65746564000104c84261746368206f66206469737061746368657320636f6d706c657465642066756c6c792077697468206e6f206572726f722e344974656d436f6d706c657465640002041d01412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206e6f206572726f722e04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a09090919010c3c70616c6c65745f6964656e746974791870616c6c6574144576656e740404540001282c4964656e746974795365740400000130543a3a4163636f756e7449640000040d0141206e616d652077617320736574206f72207265736574202877686963682077696c6c2072656d6f766520616c6c206a756467656d656e7473292e205c5b77686f5c5d3c4964656e74697479436c65617265640800000130543a3a4163636f756e744964000018013042616c616e63654f663c543e000104110141206e616d652077617320636c65617265642c20616e642074686520676976656e2062616c616e63652072657475726e65642e205c5b77686f2c206465706f7369745c5d384964656e746974794b696c6c65640800000130543a3a4163636f756e744964000018013042616c616e63654f663c543e000204090141206e616d65207761732072656d6f76656420616e642074686520676976656e2062616c616e636520736c61736865642e205c5b77686f2c206465706f7369745c5d484a756467656d656e745265717565737465640800000130543a3a4163636f756e7449640000100138526567697374726172496e646578000304010141206a756467656d656e74207761732061736b65642066726f6d2061207265676973747261722e205c5b77686f2c207265676973747261725f696e6465785c5d504a756467656d656e74556e7265717565737465640800000130543a3a4163636f756e7449640000100138526567697374726172496e646578000404ec41206a756467656d656e74207265717565737420776173207265747261637465642e205c5b77686f2c207265676973747261725f696e6465785c5d384a756467656d656e74476976656e0800000130543a3a4163636f756e7449640000100138526567697374726172496e646578000504050141206a756467656d656e742077617320676976656e2062792061207265676973747261722e205c5b7461726765742c207265676973747261725f696e6465785c5d3852656769737472617241646465640400100138526567697374726172496e646578000604a84120726567697374726172207761732061646465642e205c5b7265676973747261725f696e6465785c5d405375624964656e7469747941646465640c00000130543a3a4163636f756e7449640000000130543a3a4163636f756e744964000018013042616c616e63654f663c543e000704510141207375622d6964656e746974792077617320616464656420746f20616e206964656e7469747920616e6420746865206465706f73697420706169642e205c5b7375622c206d61696e2c206465706f7369745c5d485375624964656e7469747952656d6f7665640c00000130543a3a4163636f756e7449640000000130543a3a4163636f756e744964000018013042616c616e63654f663c543e000808090141207375622d6964656e74697479207761732072656d6f7665642066726f6d20616e206964656e7469747920616e6420746865206465706f7369742066726565642e585c5b7375622c206d61696e2c206465706f7369745c5d485375624964656e746974795265766f6b65640c00000130543a3a4163636f756e7449640000000130543a3a4163636f756e744964000018013042616c616e63654f663c543e000908190141207375622d6964656e746974792077617320636c65617265642c20616e642074686520676976656e206465706f7369742072657061747269617465642066726f6d2074686525016d61696e206964656e74697479206163636f756e7420746f20746865207375622d6964656e74697479206163636f756e742e205c5b7375622c206d61696e2c206465706f7369745c5d04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a0909091d010c3070616c6c65745f70726f78791870616c6c6574144576656e740404540001103450726f7879457865637574656404007c01384469737061746368526573756c74000004e8412070726f78792077617320657865637574656420636f72726563746c792c20776974682074686520676976656e205c5b726573756c745c5d2e40416e6f6e796d6f7573437265617465641000000130543a3a4163636f756e7449640000000130543a3a4163636f756e744964000021010130543a3a50726f78795479706500002501010c75313600010ce8416e6f6e796d6f7573206163636f756e7420686173206265656e2063726561746564206279206e65772070726f7879207769746820676976656e0901646973616d626967756174696f6e20696e64657820616e642070726f787920747970652e205c5b616e6f6e796d6f75732c2077686f2c2070726f78795f747970652c58646973616d626967756174696f6e5f696e6465785c5d24416e6e6f756e6365640c00000130543a3a4163636f756e7449640000000130543a3a4163636f756e744964000024013443616c6c486173684f663c543e0002044d01416e20616e6e6f756e63656d656e742077617320706c6163656420746f206d616b6520612063616c6c20696e20746865206675747572652e205c5b7265616c2c2070726f78792c2063616c6c5f686173685c5d2850726f787941646465641000000130543a3a4163636f756e7449640000000130543a3a4163636f756e744964000021010130543a3a50726f7879547970650000100138543a3a426c6f636b4e756d626572000304f8412070726f7879207761732061646465642e205c5b64656c656761746f722c2064656c6567617465652c2070726f78795f747970652c2064656c61795c5d04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a09090921010840706f6c6b61646f745f72756e74696d652450726f78795479706500011c0c416e790000002c4e6f6e5472616e7366657200010028476f7665726e616e63650002001c5374616b696e67000300444964656e746974794a756467656d656e740005002c43616e63656c50726f78790006001c41756374696f6e000700002501000005040029010c3c70616c6c65745f6d756c74697369671870616c6c6574144576656e740404540001102c4e65774d756c74697369670c00000130543a3a4163636f756e7449640000000130543a3a4163636f756e744964000004012043616c6c48617368000004190141206e6577206d756c7469736967206f7065726174696f6e2068617320626567756e2e205c5b617070726f76696e672c206d756c74697369672c2063616c6c5f686173685c5d404d756c7469736967417070726f76616c1000000130543a3a4163636f756e74496400002d01016454696d65706f696e743c543a3a426c6f636b4e756d6265723e0000000130543a3a4163636f756e744964000004012043616c6c48617368000108c841206d756c7469736967206f7065726174696f6e20686173206265656e20617070726f76656420627920736f6d656f6e652eb45c5b617070726f76696e672c2074696d65706f696e742c206d756c74697369672c2063616c6c5f686173685c5d404d756c746973696745786563757465641400000130543a3a4163636f756e74496400002d01016454696d65706f696e743c543a3a426c6f636b4e756d6265723e0000000130543a3a4163636f756e744964000004012043616c6c4861736800007c01384469737061746368526573756c74000204550141206d756c7469736967206f7065726174696f6e20686173206265656e2065786563757465642e205c5b617070726f76696e672c2074696d65706f696e742c206d756c74697369672c2063616c6c5f686173685c5d444d756c746973696743616e63656c6c65641000000130543a3a4163636f756e74496400002d01016454696d65706f696e743c543a3a426c6f636b4e756d6265723e0000000130543a3a4163636f756e744964000004012043616c6c486173680003045d0141206d756c7469736967206f7065726174696f6e20686173206265656e2063616e63656c6c65642e205c5b63616e63656c6c696e672c2074696d65706f696e742c206d756c74697369672c2063616c6c5f686173685c5d04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a0909092d01083c70616c6c65745f6d756c74697369672454696d65706f696e74042c426c6f636b4e756d62657201100008011868656967687410012c426c6f636b4e756d626572000114696e64657810010c753332000031010c3c70616c6c65745f626f756e746965731870616c6c6574144576656e7404045400011c38426f756e747950726f706f736564040010012c426f756e7479496e646578000004784e657720626f756e74792070726f706f73616c2e205c5b696e6465785c5d38426f756e747952656a6563746564080010012c426f756e7479496e646578000018013042616c616e63654f663c543e0001040d014120626f756e74792070726f706f73616c207761732072656a65637465643b2066756e6473207765726520736c61736865642e205c5b696e6465782c20626f6e645c5d48426f756e7479426563616d65416374697665040010012c426f756e7479496e646578000204e04120626f756e74792070726f706f73616c2069732066756e64656420616e6420626563616d65206163746976652e205c5b696e6465785c5d34426f756e747941776172646564080010012c426f756e7479496e6465780000000130543a3a4163636f756e744964000304f04120626f756e7479206973206177617264656420746f20612062656e65666963696172792e205c5b696e6465782c2062656e65666963696172795c5d34426f756e7479436c61696d65640c0010012c426f756e7479496e646578000018013042616c616e63654f663c543e0000000130543a3a4163636f756e74496400040409014120626f756e747920697320636c61696d65642062792062656e65666963696172792e205c5b696e6465782c207061796f75742c2062656e65666963696172795c5d38426f756e747943616e63656c6564040010012c426f756e7479496e646578000504804120626f756e74792069732063616e63656c6c65642e205c5b696e6465785c5d38426f756e7479457874656e646564040010012c426f756e7479496e646578000604984120626f756e74792065787069727920697320657874656e6465642e205c5b696e6465785c5d04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a09090935010c2c70616c6c65745f746970731870616c6c6574144576656e74040454000114184e6577546970040024011c543a3a48617368000004c841206e6577207469702073756767657374696f6e20686173206265656e206f70656e65642e205c5b7469705f686173685c5d28546970436c6f73696e67040024011c543a3a486173680001040d0141207469702073756767657374696f6e206861732072656163686564207468726573686f6c6420616e6420697320636c6f73696e672e205c5b7469705f686173685c5d24546970436c6f7365640c0024011c543a3a486173680000000130543a3a4163636f756e744964000018013042616c616e63654f663c543e000204ec41207469702073756767657374696f6e20686173206265656e20636c6f7365642e205c5b7469705f686173682c2077686f2c207061796f75745c5d30546970526574726163746564040024011c543a3a48617368000304c441207469702073756767657374696f6e20686173206265656e207265747261637465642e205c5b7469705f686173685c5d28546970536c61736865640c0024011c543a3a486173680000000130543a3a4163636f756e744964000018013042616c616e63654f663c543e000404010141207469702073756767657374696f6e20686173206265656e20736c61736865642e205c5b7469705f686173682c2066696e6465722c206465706f7369745c5d04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a09090939010c9070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173651870616c6c6574144576656e7404045400011838536f6c7574696f6e53746f72656408003d01013c456c656374696f6e436f6d707574650000e80110626f6f6c000018b44120736f6c7574696f6e207761732073746f72656420776974682074686520676976656e20636f6d707574652e003d0149662074686520736f6c7574696f6e206973207369676e65642c2074686973206d65616e732074686174206974206861736e277420796574206265656e2070726f6365737365642e204966207468650501736f6c7574696f6e20697320756e7369676e65642c2074686973206d65616e7320746861742069742068617320616c736f206265656e2070726f6365737365642e0051015468652060626f6f6c6020697320607472756560207768656e20612070726576696f757320736f6c7574696f6e2077617320656a656374656420746f206d616b6520726f6f6d20666f722074686973206f6e652e44456c656374696f6e46696e616c697a656404004101015c4f7074696f6e3c456c656374696f6e436f6d707574653e000108550154686520656c656374696f6e20686173206265656e2066696e616c697a65642c20776974682060536f6d6560206f662074686520676976656e20636f6d7075746174696f6e2c206f7220656c73652069662074686560656c656374696f6e206661696c65642c20604e6f6e65602e20526577617264656408000001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e744964000018013042616c616e63654f663c543e0002042501416e206163636f756e7420686173206265656e20726577617264656420666f72207468656972207369676e6564207375626d697373696f6e206265696e672066696e616c697a65642e1c536c617368656408000001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e744964000018013042616c616e63654f663c543e0003042101416e206163636f756e7420686173206265656e20736c617368656420666f72207375626d697474696e6720616e20696e76616c6964207369676e6564207375626d697373696f6e2e485369676e6564506861736553746172746564040010010c753332000404c0546865207369676e6564207068617365206f662074686520676976656e20726f756e642068617320737461727465642e50556e7369676e6564506861736553746172746564040010010c753332000504c854686520756e7369676e6564207068617365206f662074686520676976656e20726f756e642068617320737461727465642e04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a0909093d01089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173653c456c656374696f6e436f6d707574650001141c4f6e436861696e000000185369676e656400010020556e7369676e65640002002046616c6c6261636b00030024456d657267656e637900040000410104184f7074696f6e040454013d010108104e6f6e6500000010536f6d6504003d0100000100004501106c706f6c6b61646f745f72756e74696d655f70617261636861696e7324696e636c7573696f6e1870616c6c6574144576656e7404045400010c3c43616e6469646174654261636b656410004901016443616e646964617465526563656970743c543a3a486173683e000069010120486561644461746100006d010124436f7265496e64657800007101012847726f7570496e646578000004c0412063616e64696461746520776173206261636b65642e20605b63616e6469646174652c20686561645f646174615d604443616e646964617465496e636c7564656410004901016443616e646964617465526563656970743c543a3a486173683e000069010120486561644461746100006d010124436f7265496e64657800007101012847726f7570496e646578000104c8412063616e6469646174652077617320696e636c756465642e20605b63616e6469646174652c20686561645f646174615d604443616e64696461746554696d65644f75740c004901016443616e646964617465526563656970743c543a3a486173683e000069010120486561644461746100006d010124436f7265496e646578000204bc412063616e6469646174652074696d6564206f75742e20605b63616e6469646174652c20686561645f646174615d6004a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a09090949010c4c706f6c6b61646f745f7072696d6974697665730876314043616e6469646174655265636569707404044801240008012864657363726970746f724d01015843616e64696461746544657363726970746f723c483e000140636f6d6d69746d656e74735f686173682401104861736800004d010c4c706f6c6b61646f745f7072696d6974697665730876314c43616e64696461746544657363726970746f7204044801240024011c706172615f696451010108496400013072656c61795f706172656e7424010448000120636f6c6c61746f7255010128436f6c6c61746f7249640001787065727369737465645f76616c69646174696f6e5f646174615f6861736824011048617368000120706f765f6861736824011048617368000130657261737572655f726f6f74240110486173680001247369676e617475726559010144436f6c6c61746f725369676e6174757265000124706172615f686561642401104861736800015076616c69646174696f6e5f636f64655f686173686501014856616c69646174696f6e436f646548617368000051010c48706f6c6b61646f745f70617261636861696e287072696d6974697665730849640000040010010c75333200005501104c706f6c6b61646f745f7072696d69746976657308763030636f6c6c61746f725f617070185075626c696300000400bc013c737232353531393a3a5075626c696300005901104c706f6c6b61646f745f7072696d69746976657308763030636f6c6c61746f725f617070245369676e6174757265000004005d010148737232353531393a3a5369676e617475726500005d010c1c73705f636f72651c73723235353139245369676e617475726500000400610101205b75383b2036345d0000610100000340000000080065010c48706f6c6b61646f745f70617261636861696e287072696d6974697665734856616c69646174696f6e436f6465486173680000040024011048617368000069010c48706f6c6b61646f745f70617261636861696e287072696d6974697665732048656164446174610000040028011c5665633c75383e00006d010c4c706f6c6b61646f745f7072696d69746976657308763124436f7265496e6465780000040010010c753332000071010c4c706f6c6b61646f745f7072696d6974697665730876312847726f7570496e6465780000040010010c75333200007501106c706f6c6b61646f745f72756e74696d655f70617261636861696e731470617261731870616c6c6574144576656e740001144843757272656e74436f646555706461746564040051010118506172614964000004cc43757272656e7420636f646520686173206265656e207570646174656420666f72206120506172612e2060706172615f6964604843757272656e744865616455706461746564040051010118506172614964000104cc43757272656e74206865616420686173206265656e207570646174656420666f72206120506172612e2060706172615f69646050436f6465557067726164655363686564756c6564040051010118506172614964000204dc4120636f6465207570677261646520686173206265656e207363686564756c656420666f72206120506172612e2060706172615f696460304e6577486561644e6f746564040051010118506172614964000304bc41206e6577206865616420686173206265656e206e6f74656420666f72206120506172612e2060706172615f69646030416374696f6e517565756564080051010118506172614964000010013053657373696f6e496e646578000404f041207061726120686173206265656e2071756575656420746f20657865637574652070656e64696e6720616374696f6e732e2060706172615f69646004a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a0909097901106c706f6c6b61646f745f72756e74696d655f70617261636861696e730c756d701870616c6c6574144576656e7400011c34496e76616c6964466f726d617404000401244d657373616765496400000878557077617264206d65737361676520697320696e76616c69642058434d2e205c5b206964205c5d48556e737570706f7274656456657273696f6e04000401244d6573736167654964000108b4557077617264206d65737361676520697320756e737570706f727465642076657273696f6e206f662058434d2e205c5b206964205c5d38457865637574656455707761726408000401244d657373616765496400007d01011c4f7574636f6d65000208bc557077617264206d65737361676520657865637574656420776974682074686520676976656e206f7574636f6d652e445c5b2069642c206f7574636f6d65205c5d3c5765696768744578686175737465640c000401244d657373616765496400002001185765696768740000200118576569676874000308f054686520776569676874206c696d697420666f722068616e646c696e6720646f776e77617264206d657373616765732077617320726561636865642e745c5b2069642c2072656d61696e696e672c207265717569726564205c5d585570776172644d6573736167657352656365697665640c0051010118506172614964000010010c753332000010010c7533320004080101536f6d6520646f776e77617264206d657373616765732068617665206265656e20726563656976656420616e642077696c6c2062652070726f6365737365642e5c5c5b20706172612c20636f756e742c2073697a65205c5d484f766572776569676874456e71756575656410005101011850617261496400000401244d6573736167654964000020013c4f766572776569676874496e6465780000200118576569676874000518090154686520776569676874206275646765742077617320657863656564656420666f7220616e20696e646976696475616c20646f776e77617264206d6573736167652e00550154686973206d6573736167652063616e206265206c617465722064697370617463686564206d616e75616c6c79207573696e672060736572766963655f6f7665727765696768746020646973706174636861626c65987573696e67207468652061737369676e656420606f7665727765696768745f696e646578602e00a85c5b20706172612c2069642c206f7665727765696768745f696e6465782c207265717569726564205c5d484f7665727765696768745365727669636564080020013c4f766572776569676874496e64657800002001185765696768740006105101446f776e77617264206d6573736167652066726f6d20746865206f7665727765696768742071756575652077617320657865637574656420776974682074686520676976656e2061637475616c2077656967687414757365642e00705c5b206f7665727765696768745f696e6465782c2075736564205c5d04a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a0909097d01100c78636d087632187472616974731c4f7574636f6d6500010c20436f6d706c657465040020011857656967687400000028496e636f6d706c65746508002001185765696768740000810101144572726f72000100144572726f720400810101144572726f72000200008101100c78636d08763218747261697473144572726f72000168204f766572666c6f7700000034556e696d706c656d656e74656400010060556e74727573746564526573657276654c6f636174696f6e00020064556e7472757374656454656c65706f72744c6f636174696f6e000300444d756c74694c6f636174696f6e46756c6c000400684d756c74694c6f636174696f6e4e6f74496e7665727469626c65000500244261644f726967696e0006003c496e76616c69644c6f636174696f6e0007003441737365744e6f74466f756e64000800544661696c6564546f5472616e7361637441737365740009003c4e6f74576974686472617761626c65000a00484c6f636174696f6e43616e6e6f74486f6c64000b0054457863656564734d61784d65737361676553697a65000c005844657374696e6174696f6e556e737570706f72746564000d00245472616e73706f7274000e0028556e726f757461626c65000f0030556e6b6e6f776e436c61696d001000384661696c6564546f4465636f646500110054546f6f4d7563685765696768745265717569726564001200384e6f74486f6c64696e674665657300130030546f6f457870656e736976650014001054726170040020010c7536340015004c556e68616e646c656458636d56657273696f6e001600485765696768744c696d69745265616368656404002001185765696768740017001c426172726965720018004c5765696768744e6f74436f6d70757461626c65001900008501106c706f6c6b61646f745f72756e74696d655f70617261636861696e731068726d701870616c6c6574144576656e74040454000110504f70656e4368616e6e656c526571756573746564100051010118506172614964000051010118506172614964000010010c753332000010010c753332000008704f70656e2048524d50206368616e6e656c207265717565737465642e1d01605b73656e6465722c20726563697069656e742c2070726f706f7365645f6d61785f63617061636974792c2070726f706f7365645f6d61785f6d6573736167655f73697a655d604c4f70656e4368616e6e656c43616e63656c656408005101011850617261496400008901013448726d704368616e6e656c49640001082901416e2048524d50206368616e6e656c20726571756573742073656e7420627920746865207265636569766572207761732063616e63656c6564206279206569746865722070617274792e70605b62795f70617261636861696e2c206368616e6e656c5f69645d604c4f70656e4368616e6e656c4163636570746564080051010118506172614964000051010118506172614964000204c44f70656e2048524d50206368616e6e656c2061636365707465642e20605b73656e6465722c20726563697069656e745d60344368616e6e656c436c6f73656408005101011850617261496400008901013448726d704368616e6e656c4964000304c448524d50206368616e6e656c20636c6f7365642e20605b62795f70617261636861696e2c206368616e6e656c5f69645d6004a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a09090989010c48706f6c6b61646f745f70617261636861696e287072696d6974697665733448726d704368616e6e656c4964000008011873656e646572510101084964000124726563697069656e7451010108496400008d01105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e3c70617261735f7265676973747261721870616c6c6574144576656e7404045400010c28526567697374657265640800510101185061726149640000000130543a3a4163636f756e744964000000304465726567697374657265640400510101185061726149640001002052657365727665640800510101185061726149640000000130543a3a4163636f756e74496400020004a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a0909099101105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e14736c6f74731870616c6c6574144576656e74040454000108384e65774c65617365506572696f6404001001404c65617365506572696f644f663c543e0000049041206e657720605b6c656173655f706572696f645d6020697320626567696e6e696e672e184c65617365641800510101185061726149640000000130543a3a4163636f756e74496400001001404c65617365506572696f644f663c543e00001001404c65617365506572696f644f663c543e000018013042616c616e63654f663c543e000018013042616c616e63654f663c543e00011035014120706172612068617320776f6e2074686520726967687420746f206120636f6e74696e756f757320736574206f66206c6561736520706572696f647320617320612070617261636861696e2e450146697273742062616c616e636520697320616e7920657874726120616d6f756e74207265736572766564206f6e20746f70206f662074686520706172612773206578697374696e67206465706f7369742eb05365636f6e642062616c616e63652069732074686520746f74616c20616d6f756e742072657365727665642e4901605b70617261636861696e5f69642c206c65617365722c20706572696f645f626567696e2c20706572696f645f636f756e742c2065787472615f72657365727665642c20746f74616c5f616d6f756e745d6004a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a0909099501105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e2061756374696f6e731870616c6c6574144576656e7404045400011c3841756374696f6e537461727465640c0010013041756374696f6e496e64657800001001404c65617365506572696f644f663c543e0000100138543a3a426c6f636b4e756d62657200000c4901416e2061756374696f6e20737461727465642e2050726f76696465732069747320696e64657820616e642074686520626c6f636b206e756d6265722077686572652069742077696c6c20626567696e20746f1501636c6f736520616e6420746865206669727374206c6561736520706572696f64206f662074686520717561647275706c657420746861742069732061756374696f6e65642e9c605b61756374696f6e5f696e6465782c206c656173655f706572696f642c20656e64696e675d603441756374696f6e436c6f736564040010013041756374696f6e496e6465780001040101416e2061756374696f6e20656e6465642e20416c6c2066756e6473206265636f6d6520756e72657365727665642e20605b61756374696f6e5f696e6465785d602052657365727665640c00000130543a3a4163636f756e744964000018013042616c616e63654f663c543e000018013042616c616e63654f663c543e000208490146756e6473207765726520726573657276656420666f7220612077696e6e696e67206269642e2046697273742062616c616e63652069732074686520657874726120616d6f756e742072657365727665642ef45365636f6e642069732074686520746f74616c2e20605b6269646465722c2065787472615f72657365727665642c20746f74616c5f616d6f756e745d6028556e72657365727665640800000130543a3a4163636f756e744964000018013042616c616e63654f663c543e000304290146756e6473207765726520756e72657365727665642073696e636520626964646572206973206e6f206c6f6e676572206163746976652e20605b6269646465722c20616d6f756e745d604852657365727665436f6e66697363617465640c00510101185061726149640000000130543a3a4163636f756e744964000018013042616c616e63654f663c543e00040c7501536f6d656f6e6520617474656d7074656420746f206c65617365207468652073616d6520736c6f7420747769636520666f7220612070617261636861696e2e2054686520616d6f756e742069732068656c6420696e207265736572766598627574206e6f2070617261636861696e20736c6f7420686173206265656e206c65617365642e80605b70617261636861696e5f69642c206c65617365722c20616d6f756e745d602c42696441636365707465641400000130543a3a4163636f756e744964000051010118506172614964000018013042616c616e63654f663c543e00001001404c65617365506572696f644f663c543e00001001404c65617365506572696f644f663c543e000508c841206e65772062696420686173206265656e206163636570746564206173207468652063757272656e742077696e6e65722ebc605b77686f2c20706172615f69642c20616d6f756e742c2066697273745f736c6f742c206c6173745f736c6f745d603457696e6e696e674f6666736574080010013041756374696f6e496e6465780000100138543a3a426c6f636b4e756d6265720006086d015468652077696e6e696e67206f6666736574207761732063686f73656e20666f7220616e2061756374696f6e2e20546869732077696c6c206d617020696e746f20746865206057696e6e696e67602073746f72616765206d61702e7c605b61756374696f6e5f696e6465782c20626c6f636b5f6e756d6265725d6004a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a0909099901105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e2463726f77646c6f616e1870616c6c6574144576656e740404540001281c43726561746564040051010118506172614964000004c84372656174652061206e65772063726f77646c6f616e696e672063616d706169676e2e20605b66756e645f696e6465785d602c436f6e74726962757465640c00000130543a3a4163636f756e744964000051010118506172614964000018013042616c616e63654f663c543e000104e0436f6e747269627574656420746f20612063726f77642073616c652e20605b77686f2c2066756e645f696e6465782c20616d6f756e745d602057697468647265770c00000130543a3a4163636f756e744964000051010118506172614964000018013042616c616e63654f663c543e0002040d0157697468647265772066756c6c2062616c616e6365206f66206120636f6e7472696275746f722e20605b77686f2c2066756e645f696e6465782c20616d6f756e745d60445061727469616c6c79526566756e6465640400510101185061726149640003082d01546865206c6f616e7320696e20612066756e642068617665206265656e207061727469616c6c7920646973736f6c7665642c20692e652e2074686572652061726520736f6d65206c656674f06f766572206368696c64206b6579732074686174207374696c6c206e65656420746f206265206b696c6c65642e20605b66756e645f696e6465785d602c416c6c526566756e646564040051010118506172614964000404d8416c6c206c6f616e7320696e20612066756e642068617665206265656e20726566756e6465642e20605b66756e645f696e6465785d6024446973736f6c7665640400510101185061726149640005048446756e6420697320646973736f6c7665642e20605b66756e645f696e6465785d603c48616e646c65426964526573756c7408005101011850617261496400007c01384469737061746368526573756c74000604f454686520726573756c74206f6620747279696e6720746f207375626d69742061206e65772062696420746f2074686520536c6f74732070616c6c65742e18456469746564040051010118506172614964000704010154686520636f6e66696775726174696f6e20746f20612063726f77646c6f616e20686173206265656e206564697465642e20605b66756e645f696e6465785d602c4d656d6f557064617465640c00000130543a3a4163636f756e744964000051010118506172614964000028011c5665633c75383e000804c841206d656d6f20686173206265656e20757064617465642e20605b77686f2c2066756e645f696e6465782c206d656d6f5d603c4164646564546f4e65775261697365040051010118506172614964000904a0412070617261636861696e20686173206265656e206d6f76656420746f20604e657752616973656004a9010a090909546865205b6576656e745d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6576656e74732920656d69747465640a090909627920746869732070616c6c65742e0a0909099d0108306672616d655f73797374656d14506861736500010c384170706c7945787472696e736963040010010c7533320000003046696e616c697a6174696f6e00010038496e697469616c697a6174696f6e00020000a1010000022400a5010000027400a90108306672616d655f73797374656d584c61737452756e74696d6555706772616465496e666f0000080130737065635f76657273696f6ead01014c636f6465633a3a436f6d706163743c7533323e000124737065635f6e616d65b101016473705f72756e74696d653a3a52756e74696d65537472696e670000ad010000061000b1010000050200b5010c306672616d655f73797374656d1870616c6c65741043616c6c0404540001282866696c6c5f626c6f636b040114726174696fb901011c50657262696c6c00000405014120646973706174636820746861742077696c6c2066696c6c2074686520626c6f636b2077656967687420757020746f2074686520676976656e20726174696f2e1872656d61726b04011872656d61726b28011c5665633c75383e000114684d616b6520736f6d65206f6e2d636861696e2072656d61726b2e002823203c7765696768743e202d20604f283129602c23203c2f7765696768743e387365745f686561705f7061676573040114706167657320010c753634000224f853657420746865206e756d626572206f6620706167657320696e2074686520576562417373656d626c7920656e7669726f6e6d656e74277320686561702e002823203c7765696768743e202d20604f28312960482d20312073746f726167652077726974652e602d2042617365205765696768743a20312e34303520c2b5735c2d203120777269746520746f20484541505f50414745533c2d203120646967657374206974656d2c23203c2f7765696768743e207365745f636f6465040110636f646528011c5665633c75383e0003306453657420746865206e65772072756e74696d6520636f64652e002823203c7765696768743e31012d20604f2843202b2053296020776865726520604360206c656e677468206f662060636f64656020616e642060536020636f6d706c6578697479206f66206063616e5f7365745f636f64656045012d20312063616c6c20746f206063616e5f7365745f636f6465603a20604f28532960202863616c6c73206073705f696f3a3a6d6973633a3a72756e74696d655f76657273696f6e60207768696368206973342020657870656e73697665292e842d20312073746f726167652077726974652028636f64656320604f28432960292e402d203120646967657374206974656d2e282d2031206576656e742e4d0154686520776569676874206f6620746869732066756e6374696f6e20697320646570656e64656e74206f6e207468652072756e74696d652c206275742067656e6572616c6c7920746869732069732076657279b8657870656e736976652e2057652077696c6c207472656174207468697320617320612066756c6c20626c6f636b2e2c23203c2f7765696768743e5c7365745f636f64655f776974686f75745f636865636b73040110636f646528011c5665633c75383e000424190153657420746865206e65772072756e74696d6520636f646520776974686f757420646f696e6720616e7920636865636b73206f662074686520676976656e2060636f6465602e002823203c7765696768743e8c2d20604f2843296020776865726520604360206c656e677468206f662060636f646560842d20312073746f726167652077726974652028636f64656320604f28432960292e402d203120646967657374206974656d2e282d2031206576656e742e550154686520776569676874206f6620746869732066756e6374696f6e20697320646570656e64656e74206f6e207468652072756e74696d652e2057652077696c6c207472656174207468697320617320612066756c6c48626c6f636b2e2023203c2f7765696768743e5c7365745f6368616e6765735f747269655f636f6e66696704014c6368616e6765735f747269655f636f6e6669674001804f7074696f6e3c4368616e67657354726965436f6e66696775726174696f6e3e0005289c53657420746865206e6577206368616e676573207472696520636f6e66696775726174696f6e2e002823203c7765696768743e202d20604f28312960ac2d20312073746f72616765207772697465206f722064656c6574652028636f64656320604f28312960292ed42d20312063616c6c20746f20606465706f7369745f6c6f67603a20557365732060617070656e6460204150492c20736f204f283129602d2042617365205765696768743a20372e32313820c2b573302d204442205765696768743aa4202020202d205772697465733a204368616e67657320547269652c2053797374656d204469676573742c23203c2f7765696768743e2c7365745f73746f726167650401146974656d73bd0101345665633c4b657956616c75653e0006206853657420736f6d65206974656d73206f662073746f726167652e002823203c7765696768743e902d20604f2849296020776865726520604960206c656e677468206f6620606974656d7360782d206049602073746f72616765207772697465732028604f28312960292e702d2042617365205765696768743a20302e353638202a206920c2b573642d205772697465733a204e756d626572206f66206974656d732c23203c2f7765696768743e306b696c6c5f73746f726167650401106b657973c50101205665633c4b65793e000720744b696c6c20736f6d65206974656d732066726f6d2073746f726167652e002823203c7765696768743ef82d20604f28494b296020776865726520604960206c656e677468206f6620606b6579736020616e6420604b60206c656e677468206f66206f6e65206b6579602d206049602073746f726167652064656c6574696f6e732e6c2d2042617365205765696768743a202e333738202a206920c2b573642d205772697465733a204e756d626572206f66206974656d732c23203c2f7765696768743e2c6b696c6c5f70726566697808011870726566697828010c4b657900011c7375626b65797310010c75333200082c11014b696c6c20616c6c2073746f72616765206974656d7320776974682061206b657920746861742073746172747320776974682074686520676976656e207072656669782e0039012a2a4e4f54453a2a2a2057652072656c79206f6e2074686520526f6f74206f726967696e20746f2070726f7669646520757320746865206e756d626572206f66207375626b65797320756e6465723d0174686520707265666978207765206172652072656d6f76696e6720746f2061636375726174656c792063616c63756c6174652074686520776569676874206f6620746869732066756e6374696f6e2e002823203c7765696768743ed82d20604f285029602077686572652060506020616d6f756e74206f66206b657973207769746820707265666978206070726566697860602d206050602073746f726167652064656c6574696f6e732e702d2042617365205765696768743a20302e383334202a205020c2b5737c2d205772697465733a204e756d626572206f66207375626b657973202b20312c23203c2f7765696768743e4472656d61726b5f776974685f6576656e7404011872656d61726b28011c5665633c75383e000918a44d616b6520736f6d65206f6e2d636861696e2072656d61726b20616e6420656d6974206576656e742e002823203c7765696768743eb42d20604f28622960207768657265206220697320746865206c656e677468206f66207468652072656d61726b2e282d2031206576656e742e2c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632eb9010c3473705f61726974686d65746963287065725f7468696e67731c50657262696c6c0000040010010c7533320000bd01000002c10100c10100000408282800c5010000022800c9010c306672616d655f73797374656d186c696d69747330426c6f636b5765696768747300000c0128626173655f626c6f636b2001185765696768740001246d61785f626c6f636b2001185765696768740001247065725f636c617373cd0101845065724469737061746368436c6173733c57656967687473506572436c6173733e0000cd010c346672616d655f737570706f72741c77656967687473405065724469737061746368436c61737304045401d101000c01186e6f726d616cd10101045400012c6f7065726174696f6e616cd1010104540001246d616e6461746f7279d1010104540000d1010c306672616d655f73797374656d186c696d6974733c57656967687473506572436c6173730000100138626173655f65787472696e7369632001185765696768740001346d61785f65787472696e736963d50101384f7074696f6e3c5765696768743e0001246d61785f746f74616cd50101384f7074696f6e3c5765696768743e0001207265736572766564d50101384f7074696f6e3c5765696768743e0000d50104184f7074696f6e04045401200108104e6f6e6500000010536f6d650400200000010000d9010c306672616d655f73797374656d186c696d6974732c426c6f636b4c656e677468000004010c6d6178dd0101545065724469737061746368436c6173733c7533323e0000dd010c346672616d655f737570706f72741c77656967687473405065724469737061746368436c6173730404540110000c01186e6f726d616c1001045400012c6f7065726174696f6e616c100104540001246d616e6461746f7279100104540000e1010c346672616d655f737570706f72741c776569676874733c52756e74696d65446257656967687400000801107265616420011857656967687400011477726974652001185765696768740000e501082873705f76657273696f6e3852756e74696d6556657273696f6e00001c0124737065635f6e616d65b101013452756e74696d65537472696e67000124696d706c5f6e616d65b101013452756e74696d65537472696e67000144617574686f72696e675f76657273696f6e10010c753332000130737065635f76657273696f6e10010c753332000130696d706c5f76657273696f6e10010c75333200011061706973e901011c4170697356656300014c7472616e73616374696f6e5f76657273696f6e10010c7533320000e901040c436f7704045401ed01000400ed01000000ed01000002f10100f10100000408f5011000f501000003080000000800f9010c306672616d655f73797374656d1870616c6c6574144572726f720404540001143c496e76616c6964537065634e616d650000081101546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e63726561736500010841015468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e00020cec4661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e0009014569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f73697465000304fc537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e74000404350154686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e046c4572726f7220666f72207468652053797374656d2070616c6c6574fd01000002010200010204184f7074696f6e0404540105020108104e6f6e6500000010536f6d650400050200000100000502084070616c6c65745f7363686564756c65722c5363686564756c65645632101043616c6c0109022c426c6f636b4e756d62657201103450616c6c6574734f726967696e019505244163636f756e7449640100001401206d617962655f696478013c4f7074696f6e3c5665633c75383e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6c0902011043616c6c0001386d617962655f706572696f646963110201944f7074696f6e3c7363686564756c653a3a506572696f643c426c6f636b4e756d6265723e3e0001186f726967696e9505013450616c6c6574734f726967696e000009020840706f6c6b61646f745f72756e74696d651043616c6c00019c1853797374656d0400b50101ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53797374656d2c2052756e74696d653e000000245363686564756c657204000d0201b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5363686564756c65722c2052756e74696d653e00010010426162650400150201a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c426162652c2052756e74696d653e0002002454696d657374616d7004003d0201b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54696d657374616d702c2052756e74696d653e0003001c496e64696365730400450201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c496e64696365732c2052756e74696d653e0004002042616c616e6365730400490201b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42616c616e6365732c2052756e74696d653e00050028417574686f72736869700400550201bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c417574686f72736869702c2052756e74696d653e0006001c5374616b696e6704005d0201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5374616b696e672c2052756e74696d653e0007001c53657373696f6e0400810201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53657373696f6e2c2052756e74696d653e0009001c4772616e6470610400950201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4772616e6470612c2052756e74696d653e000b0020496d4f6e6c696e650400c10201b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c496d4f6e6c696e652c2052756e74696d653e000c002444656d6f63726163790400dd0201b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c44656d6f63726163792c2052756e74696d653e000e001c436f756e63696c0400ed0201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f756e63696c2c2052756e74696d653e000f0048546563686e6963616c436f6d6d69747465650400f50201dd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c546563686e6963616c436f6d6d69747465652c2052756e74696d653e0010004050687261676d656e456c656374696f6e0400f90201d50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50687261676d656e456c656374696f6e2c2052756e74696d653e0011004c546563686e6963616c4d656d626572736869700400010301e10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c546563686e6963616c4d656d626572736869702c2052756e74696d653e0012002054726561737572790400050301b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54726561737572792c2052756e74696d653e00130018436c61696d730400090301ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436c61696d732c2052756e74696d653e0018001c56657374696e670400250301b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c56657374696e672c2052756e74696d653e0019001c5574696c69747904002d0301b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5574696c6974792c2052756e74696d653e001a00204964656e746974790400350301b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4964656e746974792c2052756e74696d653e001c001450726f78790400d50301a90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50726f78792c2052756e74696d653e001d00204d756c74697369670400dd0301b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d756c74697369672c2052756e74696d653e001e0020426f756e746965730400e50301b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c426f756e746965732c2052756e74696d653e00220010546970730400e90301a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c546970732c2052756e74696d653e00230068456c656374696f6e50726f76696465724d756c746950686173650400ed0301fd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c456c656374696f6e50726f76696465724d756c746950686173652c2052756e74696d653e00240034436f6e66696775726174696f6e0400d90401c90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f6e66696775726174696f6e2c2052756e74696d653e0033002c50617261735368617265640400dd0401c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50617261735368617265642c2052756e74696d653e0034003450617261496e636c7573696f6e0400e10401c90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50617261496e636c7573696f6e2c2052756e74696d653e0035003050617261496e686572656e740400e50401c50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50617261496e686572656e742c2052756e74696d653e0036001450617261730400510501a90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50617261732c2052756e74696d653e0038002c496e697469616c697a65720400550501c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c496e697469616c697a65722c2052756e74696d653e0039000c446d700400590501a10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c446d702c2052756e74696d653e003a000c556d7004005d0501a10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c556d702c2052756e74696d653e003b001048726d700400610501a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c48726d702c2052756e74696d653e003c00245265676973747261720400650501b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5265676973747261722c2052756e74696d653e00460014536c6f74730400690501a90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c536c6f74732c2052756e74696d653e0047002041756374696f6e7304006d0501b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c41756374696f6e732c2052756e74696d653e0048002443726f77646c6f616e0400750501b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c43726f77646c6f616e2c2052756e74696d653e004900000d020c4070616c6c65745f7363686564756c65721870616c6c65741043616c6c040454000118207363686564756c651001107768656e100138543a3a426c6f636b4e756d6265720001386d617962655f706572696f646963110201a04f7074696f6e3c7363686564756c653a3a506572696f643c543a3a426c6f636b4e756d6265723e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6c09020160426f783c3c5420617320436f6e6669673e3a3a43616c6c3e00002870416e6f6e796d6f75736c79207363686564756c652061207461736b2e002823203c7765696768743e9c2d2053203d204e756d626572206f6620616c7265616479207363686564756c65642063616c6c738c2d2042617365205765696768743a2032322e3239202b202e313236202a205320c2b573302d204442205765696768743a48202020202d20526561643a204167656e64614c202020202d2057726974653a204167656e646139012d2057696c6c20757365206261736520776569676874206f662032352077686963682073686f756c6420626520676f6f6420666f7220757020746f203330207363686564756c65642063616c6c732c23203c2f7765696768743e1863616e63656c0801107768656e100138543a3a426c6f636b4e756d626572000114696e64657810010c7533320001289443616e63656c20616e20616e6f6e796d6f75736c79207363686564756c6564207461736b2e002823203c7765696768743e9c2d2053203d204e756d626572206f6620616c7265616479207363686564756c65642063616c6c73902d2042617365205765696768743a2032322e3135202b20322e383639202a205320c2b573302d204442205765696768743a48202020202d20526561643a204167656e64616c202020202d2057726974653a204167656e64612c204c6f6f6b75703d012d2057696c6c20757365206261736520776569676874206f66203130302077686963682073686f756c6420626520676f6f6420666f7220757020746f203330207363686564756c65642063616c6c732c23203c2f7765696768743e387363686564756c655f6e616d6564140108696428011c5665633c75383e0001107768656e100138543a3a426c6f636b4e756d6265720001386d617962655f706572696f646963110201a04f7074696f6e3c7363686564756c653a3a506572696f643c543a3a426c6f636b4e756d6265723e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6c09020160426f783c3c5420617320436f6e6669673e3a3a43616c6c3e000228585363686564756c652061206e616d6564207461736b2e002823203c7765696768743e9c2d2053203d204e756d626572206f6620616c7265616479207363686564756c65642063616c6c73882d2042617365205765696768743a2032392e36202b202e313539202a205320c2b573302d204442205765696768743a68202020202d20526561643a204167656e64612c204c6f6f6b75706c202020202d2057726974653a204167656e64612c204c6f6f6b757049012d2057696c6c20757365206261736520776569676874206f662033352077686963682073686f756c6420626520676f6f6420666f72206d6f7265207468616e203330207363686564756c65642063616c6c732c23203c2f7765696768743e3063616e63656c5f6e616d6564040108696428011c5665633c75383e0003287843616e63656c2061206e616d6564207363686564756c6564207461736b2e002823203c7765696768743e9c2d2053203d204e756d626572206f6620616c7265616479207363686564756c65642063616c6c73902d2042617365205765696768743a2032342e3931202b20322e393037202a205320c2b573302d204442205765696768743a68202020202d20526561643a204167656e64612c204c6f6f6b75706c202020202d2057726974653a204167656e64612c204c6f6f6b75703d012d2057696c6c20757365206261736520776569676874206f66203130302077686963682073686f756c6420626520676f6f6420666f7220757020746f203330207363686564756c65642063616c6c732c23203c2f7765696768743e387363686564756c655f61667465721001146166746572100138543a3a426c6f636b4e756d6265720001386d617962655f706572696f646963110201a04f7074696f6e3c7363686564756c653a3a506572696f643c543a3a426c6f636b4e756d6265723e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6c09020160426f783c3c5420617320436f6e6669673e3a3a43616c6c3e000414a8416e6f6e796d6f75736c79207363686564756c652061207461736b20616674657220612064656c61792e002823203c7765696768743e5453616d65206173205b607363686564756c65605d2e2c23203c2f7765696768743e507363686564756c655f6e616d65645f6166746572140108696428011c5665633c75383e0001146166746572100138543a3a426c6f636b4e756d6265720001386d617962655f706572696f646963110201a04f7074696f6e3c7363686564756c653a3a506572696f643c543a3a426c6f636b4e756d6265723e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6c09020160426f783c3c5420617320436f6e6669673e3a3a43616c6c3e000514905363686564756c652061206e616d6564207461736b20616674657220612064656c61792e002823203c7765696768743ec453616d65206173205b607363686564756c655f6e616d6564605d2853656c663a3a7363686564756c655f6e616d6564292e2c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e110204184f7074696f6e04045401740108104e6f6e6500000010536f6d65040074000001000015020c2c70616c6c65745f626162651870616c6c65741043616c6c04045400010c4c7265706f72745f65717569766f636174696f6e08014865717569766f636174696f6e5f70726f6f6619020184426f783c45717569766f636174696f6e50726f6f663c543a3a4865616465723e3e00013c6b65795f6f776e65725f70726f6f662d020140543a3a4b65794f776e657250726f6f6600001009015265706f727420617574686f726974792065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667905017468652065717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f660d01616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63652077696c6c306265207265706f727465642e707265706f72745f65717569766f636174696f6e5f756e7369676e656408014865717569766f636174696f6e5f70726f6f6619020184426f783c45717569766f636174696f6e50726f6f663c543a3a4865616465723e3e00013c6b65795f6f776e65725f70726f6f662d020140543a3a4b65794f776e657250726f6f6600012009015265706f727420617574686f726974792065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667905017468652065717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f660d01616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63652077696c6c306265207265706f727465642e0d01546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c791501626c6f636b20617574686f72732077696c6c2063616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c2061732073756368150169662074686520626c6f636b20617574686f7220697320646566696e65642069742077696c6c20626520646566696e6564206173207468652065717569766f636174696f6e247265706f727465722e48706c616e5f636f6e6669675f6368616e6765040118636f6e666967310201504e657874436f6e66696744657363726970746f720002105d01506c616e20616e2065706f636820636f6e666967206368616e67652e205468652065706f636820636f6e666967206368616e6765206973207265636f7264656420616e642077696c6c20626520656e6163746564206f6e5101746865206e6578742063616c6c20746f2060656e6163745f65706f63685f6368616e6765602e2054686520636f6e6669672077696c6c20626520616374697661746564206f6e652065706f63682061667465722e59014d756c7469706c652063616c6c7320746f2074686973206d6574686f642077696c6c207265706c61636520616e79206578697374696e6720706c616e6e656420636f6e666967206368616e6765207468617420686164546e6f74206265656e20656e6163746564207965742e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e1902084873705f636f6e73656e7375735f736c6f74734445717569766f636174696f6e50726f6f660818486561646572011d02084964012502001001206f6666656e646572250201084964000110736c6f7429020110536c6f7400013066697273745f6865616465721d0201184865616465720001347365636f6e645f6865616465721d02011848656164657200001d02102873705f72756e74696d651c67656e65726963186865616465721848656164657208184e756d626572011010486173680121020014012c706172656e745f68617368240130486173683a3a4f75747075740001186e756d626572ad0101184e756d62657200012873746174655f726f6f74240130486173683a3a4f757470757400013c65787472696e736963735f726f6f74240130486173683a3a4f75747075740001186469676573742c01504469676573743c486173683a3a4f75747075743e000021020c2873705f72756e74696d65187472616974732c426c616b6554776f3235360000000025020c4473705f636f6e73656e7375735f626162650c617070185075626c696300000400bc013c737232353531393a3a5075626c696300002902084873705f636f6e73656e7375735f736c6f747310536c6f740000040020010c75363400002d02082873705f73657373696f6e3c4d656d6265727368697050726f6f6600000c011c73657373696f6e10013053657373696f6e496e646578000128747269655f6e6f646573c50101305665633c5665633c75383e3e00013c76616c696461746f725f636f756e7410013856616c696461746f72436f756e74000031020c4473705f636f6e73656e7375735f626162651c64696765737473504e657874436f6e66696744657363726970746f720001040856310801046335020128287536342c2075363429000134616c6c6f7765645f736c6f747339020130416c6c6f776564536c6f7473000100003502000004082020003902084473705f636f6e73656e7375735f6261626530416c6c6f776564536c6f747300010c305072696d617279536c6f7473000000745072696d617279416e645365636f6e64617279506c61696e536c6f74730001006c5072696d617279416e645365636f6e64617279565246536c6f7473000200003d020c4070616c6c65745f74696d657374616d701870616c6c65741043616c6c0404540001040c73657404010c6e6f7741020124543a3a4d6f6d656e7400004054536574207468652063757272656e742074696d652e005501546869732063616c6c2073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6ed470686173652c20696620746869732063616c6c206861736e2774206265656e20696e766f6b656420627920746861742074696d652e0041015468652074696d657374616d702073686f756c642062652067726561746572207468616e207468652070726576696f7573206f6e652062792074686520616d6f756e742073706563696669656420627940604d696e696d756d506572696f64602e00d4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652060496e686572656e74602e002823203c7765696768743e31012d20604f2831296020284e6f7465207468617420696d706c656d656e746174696f6e73206f6620604f6e54696d657374616d7053657460206d75737420616c736f20626520604f283129602961012d20312073746f72616765207265616420616e6420312073746f72616765206d75746174696f6e2028636f64656320604f28312960292e202862656361757365206f6620604469645570646174653a3a74616b656020696e402020606f6e5f66696e616c697a656029d42d2031206576656e742068616e646c657220606f6e5f74696d657374616d705f736574602e204d75737420626520604f283129602e2c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e4102000006200045020c3870616c6c65745f696e64696365731870616c6c65741043616c6c04045400011414636c61696d040114696e64657810013c543a3a4163636f756e74496e6465780000489841737369676e20616e2070726576696f75736c7920756e61737369676e656420696e6465782e00dc5061796d656e743a20604465706f736974602069732072657365727665642066726f6d207468652073656e646572206163636f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e00f02d2060696e646578603a2074686520696e64657820746f20626520636c61696d65642e2054686973206d757374206e6f7420626520696e207573652e0090456d6974732060496e64657841737369676e656460206966207375636365737366756c2e002823203c7765696768743e242d20604f283129602e982d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28312960292e602d204f6e652072657365727665206f7065726174696f6e2e302d204f6e65206576656e742e4c2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d902d204442205765696768743a203120526561642f577269746520284163636f756e7473292c23203c2f7765696768743e207472616e7366657208010c6e6577000130543a3a4163636f756e744964000114696e64657810013c543a3a4163636f756e74496e6465780001505d0141737369676e20616e20696e64657820616c7265616479206f776e6564206279207468652073656e64657220746f20616e6f74686572206163636f756e742e205468652062616c616e6365207265736572766174696f6eb86973206566666563746976656c79207472616e7366657272656420746f20746865206e6577206163636f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0025012d2060696e646578603a2074686520696e64657820746f2062652072652d61737369676e65642e2054686973206d757374206265206f776e6564206279207468652073656e6465722e5d012d20606e6577603a20746865206e6577206f776e6572206f662074686520696e6465782e20546869732066756e6374696f6e2069732061206e6f2d6f7020696620697420697320657175616c20746f2073656e6465722e0090456d6974732060496e64657841737369676e656460206966207375636365737366756c2e002823203c7765696768743e242d20604f283129602e982d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28312960292e642d204f6e65207472616e73666572206f7065726174696f6e2e302d204f6e65206576656e742e4c2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d302d204442205765696768743ae02020202d2052656164733a20496e6469636573204163636f756e74732c2053797374656d204163636f756e742028726563697069656e7429e42020202d205772697465733a20496e6469636573204163636f756e74732c2053797374656d204163636f756e742028726563697069656e74292c23203c2f7765696768743e1066726565040114696e64657810013c543a3a4163636f756e74496e646578000248944672656520757020616e20696e646578206f776e6564206279207468652073656e6465722e005d015061796d656e743a20416e792070726576696f7573206465706f73697420706c6163656420666f722074686520696e64657820697320756e726573657276656420696e207468652073656e646572206163636f756e742e005501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d757374206f776e2074686520696e6465782e000d012d2060696e646578603a2074686520696e64657820746f2062652066726565642e2054686973206d757374206265206f776e6564206279207468652073656e6465722e0084456d6974732060496e646578467265656460206966207375636365737366756c2e002823203c7765696768743e242d20604f283129602e982d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28312960292e602d204f6e652072657365727665206f7065726174696f6e2e302d204f6e65206576656e742e4c2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d902d204442205765696768743a203120526561642f577269746520284163636f756e7473292c23203c2f7765696768743e38666f7263655f7472616e736665720c010c6e6577000130543a3a4163636f756e744964000114696e64657810013c543a3a4163636f756e74496e646578000118667265657a65e80110626f6f6c0003545501466f72636520616e20696e64657820746f20616e206163636f756e742e205468697320646f65736e277420726571756972652061206465706f7369742e2049662074686520696e64657820697320616c7265616479e868656c642c207468656e20616e79206465706f736974206973207265696d62757273656420746f206974732063757272656e74206f776e65722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e00a42d2060696e646578603a2074686520696e64657820746f206265202872652d2961737369676e65642e5d012d20606e6577603a20746865206e6577206f776e6572206f662074686520696e6465782e20546869732066756e6374696f6e2069732061206e6f2d6f7020696620697420697320657175616c20746f2073656e6465722e41012d2060667265657a65603a2069662073657420746f206074727565602c2077696c6c20667265657a652074686520696e64657820736f2069742063616e6e6f74206265207472616e736665727265642e0090456d6974732060496e64657841737369676e656460206966207375636365737366756c2e002823203c7765696768743e242d20604f283129602e982d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28312960292e782d20557020746f206f6e652072657365727665206f7065726174696f6e2e302d204f6e65206576656e742e4c2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d302d204442205765696768743af42020202d2052656164733a20496e6469636573204163636f756e74732c2053797374656d204163636f756e7420286f726967696e616c206f776e657229f82020202d205772697465733a20496e6469636573204163636f756e74732c2053797374656d204163636f756e7420286f726967696e616c206f776e6572292c23203c2f7765696768743e18667265657a65040114696e64657810013c543a3a4163636f756e74496e6465780004484101467265657a6520616e20696e64657820736f2069742077696c6c20616c7761797320706f696e7420746f207468652073656e646572206163636f756e742e205468697320636f6e73756d657320746865206465706f7369742e005901546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d757374206861766520616c6e6f6e2d66726f7a656e206163636f756e742060696e646578602e00ac2d2060696e646578603a2074686520696e64657820746f2062652066726f7a656e20696e20706c6163652e0088456d6974732060496e64657846726f7a656e60206966207375636365737366756c2e002823203c7765696768743e242d20604f283129602e982d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28312960292e702d20557020746f206f6e6520736c617368206f7065726174696f6e2e302d204f6e65206576656e742e4c2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d902d204442205765696768743a203120526561642f577269746520284163636f756e7473292c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e49020c3c70616c6c65745f62616c616e6365731870616c6c65741043616c6c080454000449000118207472616e73666572080110646573744d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500011476616c7565cc0128543a3a42616c616e6365000070d45472616e7366657220736f6d65206c697175696420667265652062616c616e636520746f20616e6f74686572206163636f756e742e000501607472616e73666572602077696c6c207365742074686520604672656542616c616e636560206f66207468652073656e64657220616e642072656365697665722e1d0149742077696c6c2064656372656173652074686520746f74616c2069737375616e6365206f66207468652073797374656d2062792074686520605472616e73666572466565602e11014966207468652073656e6465722773206163636f756e742069732062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c74b06f6620746865207472616e736665722c20746865206163636f756e742077696c6c206265207265617065642e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520605369676e65646020627920746865207472616e736163746f722e002823203c7765696768743e61012d20446570656e64656e74206f6e20617267756d656e747320627574206e6f7420637269746963616c2c20676976656e2070726f70657220696d706c656d656e746174696f6e7320666f7220696e70757420636f6e66696794202074797065732e205365652072656c617465642066756e6374696f6e732062656c6f772e31012d20497420636f6e7461696e732061206c696d69746564206e756d626572206f6620726561647320616e642077726974657320696e7465726e616c6c7920616e64206e6f20636f6d706c6578382020636f6d7075746174696f6e2e004852656c617465642066756e6374696f6e733a004d0120202d2060656e737572655f63616e5f77697468647261776020697320616c776179732063616c6c656420696e7465726e616c6c792062757420686173206120626f756e64656420636f6d706c65786974792e290120202d205472616e7366657272696e672062616c616e63657320746f206163636f756e7473207468617420646964206e6f74206578697374206265666f72652077696c6c206361757365cc2020202060543a3a4f6e4e65774163636f756e743a3a6f6e5f6e65775f6163636f756e746020746f2062652063616c6c65642e5d0120202d2052656d6f76696e6720656e6f7567682066756e64732066726f6d20616e206163636f756e742077696c6c20747269676765722060543a3a4475737452656d6f76616c3a3a6f6e5f756e62616c616e636564602e5d0120202d20607472616e736665725f6b6565705f616c6976656020776f726b73207468652073616d652077617920617320607472616e73666572602c206275742068617320616e206164646974696f6e616c20636865636bdc202020207468617420746865207472616e736665722077696c6c206e6f74206b696c6c20746865206f726967696e206163636f756e742e842d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d41012d2042617365205765696768743a2037332e363420c2b5732c20776f7273742063617365207363656e6172696f20286163636f756e7420637265617465642c206163636f756e742072656d6f76656429d82d204442205765696768743a2031205265616420616e64203120577269746520746f2064657374696e6174696f6e206163636f756e7411012d204f726967696e206163636f756e7420697320616c726561647920696e206d656d6f72792c20736f206e6f204442206f7065726174696f6e7320666f72207468656d2e2c23203c2f7765696768743e2c7365745f62616c616e63650c010c77686f4d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001206e65775f66726565cc0128543a3a42616c616e63650001306e65775f7265736572766564cc0128543a3a42616c616e636500014890536574207468652062616c616e636573206f66206120676976656e206163636f756e742e001d01546869732077696c6c20616c74657220604672656542616c616e63656020616e642060526573657276656442616c616e63656020696e2073746f726167652e2069742077696c6c0501616c736f2064656372656173652074686520746f74616c2069737375616e6365206f66207468652073797374656d202860546f74616c49737375616e636560292e1501496620746865206e65772066726565206f722072657365727665642062616c616e63652069732062656c6f7720746865206578697374656e7469616c206465706f7369742cfc69742077696c6c20726573657420746865206163636f756e74206e6f6e63652028606672616d655f73797374656d3a3a4163636f756e744e6f6e636560292e00b0546865206469737061746368206f726967696e20666f7220746869732063616c6c2069732060726f6f74602e002823203c7765696768743e7c2d20496e646570656e64656e74206f662074686520617267756d656e74732ec02d20436f6e7461696e732061206c696d69746564206e756d626572206f6620726561647320616e64207772697465732e542d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d382d2042617365205765696768743a64202020202d204372656174696e673a2032372e353620c2b57360202020202d204b696c6c696e673a2033352e313120c2b573942d204442205765696768743a203120526561642c203120577269746520746f206077686f602c23203c2f7765696768743e38666f7263655f7472616e736665720c0118736f757263654d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365000110646573744d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500011476616c7565cc0128543a3a42616c616e63650002184d0145786163746c7920617320607472616e73666572602c2065786365707420746865206f726967696e206d75737420626520726f6f7420616e642074686520736f75726365206163636f756e74206d6179206265287370656369666965642e2823203c7765696768743e4d012d2053616d65206173207472616e736665722c20627574206164646974696f6e616c207265616420616e6420777269746520626563617573652074686520736f75726365206163636f756e74206973206e6f747c2020617373756d656420746f20626520696e20746865206f7665726c61792e2c23203c2f7765696768743e4c7472616e736665725f6b6565705f616c697665080110646573744d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500011476616c7565cc0128543a3a42616c616e636500032c4d0153616d6520617320746865205b607472616e73666572605d2063616c6c2c206275742077697468206120636865636b207468617420746865207472616e736665722077696c6c206e6f74206b696c6c207468653c6f726967696e206163636f756e742e00b8393925206f66207468652074696d6520796f752077616e74205b607472616e73666572605d20696e73746561642e00c05b607472616e73666572605d3a207374727563742e50616c6c65742e68746d6c236d6574686f642e7472616e736665722823203c7765696768743ee42d2043686561706572207468616e207472616e736665722062656361757365206163636f756e742063616e6e6f74206265206b696c6c65642e5c2d2042617365205765696768743a2035312e3420c2b57319012d204442205765696768743a2031205265616420616e64203120577269746520746f2064657374202873656e64657220697320696e206f7665726c617920616c72656164792928233c2f7765696768743e307472616e736665725f616c6c080110646573744d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001286b6565705f616c697665e80110626f6f6c00044405015472616e736665722074686520656e74697265207472616e7366657261626c652062616c616e63652066726f6d207468652063616c6c6572206163636f756e742e0059014e4f54453a20546869732066756e6374696f6e206f6e6c7920617474656d70747320746f207472616e73666572205f7472616e7366657261626c655f2062616c616e6365732e2054686973206d65616e7320746861746101616e79206c6f636b65642c2072657365727665642c206f72206578697374656e7469616c206465706f7369747320287768656e20606b6565705f616c6976656020697320607472756560292c2077696c6c206e6f742062655d017472616e7366657272656420627920746869732066756e6374696f6e2e20546f20656e73757265207468617420746869732066756e6374696f6e20726573756c747320696e2061206b696c6c6564206163636f756e742c4501796f75206d69676874206e65656420746f207072657061726520746865206163636f756e742062792072656d6f76696e6720616e79207265666572656e636520636f756e746572732c2073746f72616765406465706f736974732c206574632e2e2e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205369676e65642e00a02d206064657374603a2054686520726563697069656e74206f6620746865207472616e736665722e59012d20606b6565705f616c697665603a204120626f6f6c65616e20746f2064657465726d696e652069662074686520607472616e736665725f616c6c60206f7065726174696f6e2073686f756c642073656e6420616c6c4d0120206f66207468652066756e647320746865206163636f756e74206861732c2063617573696e67207468652073656e646572206163636f756e7420746f206265206b696c6c6564202866616c7365292c206f72590120207472616e736665722065766572797468696e6720657863657074206174206c6561737420746865206578697374656e7469616c206465706f7369742c2077686963682077696c6c2067756172616e74656520746fc820206b656570207468652073656e646572206163636f756e7420616c697665202874727565292e2023203c7765696768743e39012d204f2831292e204a757374206c696b65207472616e736665722c206275742072656164696e672074686520757365722773207472616e7366657261626c652062616c616e63652066697273742e302020233c2f7765696768743e3c666f7263655f756e7265736572766508010c77686f4d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365000118616d6f756e74180128543a3a42616c616e636500050cb0556e7265736572766520736f6d652062616c616e63652066726f6d2061207573657220627920666f7263652e006c43616e206f6e6c792062652063616c6c656420627920524f4f542e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e4d020c2873705f72756e74696d65306d756c746961646472657373304d756c74694164647265737308244163636f756e7449640100304163636f756e74496e6465780180011408496404000001244163636f756e74496400000014496e6465780400510201304163636f756e74496e6465780001000c526177040028011c5665633c75383e0002002441646472657373333204000401205b75383b2033325d0003002441646472657373323004000d0101205b75383b2032305d000400005102000006800055020c4470616c6c65745f617574686f72736869701870616c6c65741043616c6c040454000104287365745f756e636c65730401286e65775f756e636c6573590201385665633c543a3a4865616465723e0000046050726f76696465206120736574206f6620756e636c65732e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e59020000021d02005d02103870616c6c65745f7374616b696e671870616c6c65741870616c6c65741043616c6c04045400016410626f6e640c0128636f6e74726f6c6c65724d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500011476616c7565cc013042616c616e63654f663c543e00011470617965656102017c52657761726444657374696e6174696f6e3c543a3a4163636f756e7449643e000044610154616b6520746865206f726967696e206163636f756e74206173206120737461736820616e64206c6f636b207570206076616c756560206f66206974732062616c616e63652e2060636f6e74726f6c6c6572602077696c6c80626520746865206163636f756e74207468617420636f6e74726f6c732069742e002d016076616c756560206d757374206265206d6f7265207468616e2074686520606d696e696d756d5f62616c616e636560207370656369666965642062792060543a3a43757272656e6379602e002101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20627920746865207374617368206163636f756e742e003c456d6974732060426f6e646564602e2823203c7765696768743ed02d20496e646570656e64656e74206f662074686520617267756d656e74732e204d6f64657261746520636f6d706c65786974792e1c2d204f2831292e642d20546872656520657874726120444220656e74726965732e004d014e4f54453a2054776f206f66207468652073746f726167652077726974657320286053656c663a3a626f6e646564602c206053656c663a3a7061796565602920617265205f6e657665725f20636c65616e65643d01756e6c6573732074686520606f726967696e602066616c6c732062656c6f77205f6578697374656e7469616c206465706f7369745f20616e6420676574732072656d6f76656420617320647573742e482d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2c23203c2f7765696768743e28626f6e645f65787472610401386d61785f6164646974696f6e616ccc013042616c616e63654f663c543e00013c610141646420736f6d6520657874726120616d6f756e742074686174206861766520617070656172656420696e207468652073746173682060667265655f62616c616e63656020696e746f207468652062616c616e636520757030666f72207374616b696e672e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c65722e004d01557365207468697320696620746865726520617265206164646974696f6e616c2066756e647320696e20796f7572207374617368206163636f756e74207468617420796f75207769736820746f20626f6e642e5501556e6c696b65205b60626f6e64605d2853656c663a3a626f6e6429206f72205b60756e626f6e64605d2853656c663a3a756e626f6e642920746869732066756e6374696f6e20646f6573206e6f7420696d706f7365bc616e79206c696d69746174696f6e206f6e2074686520616d6f756e7420746861742063616e2062652061646465642e003c456d6974732060426f6e646564602e002823203c7765696768743ee42d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e1c2d204f2831292e2c23203c2f7765696768743e18756e626f6e6404011476616c7565cc013042616c616e63654f663c543e00024c51015363686564756c65206120706f7274696f6e206f662074686520737461736820746f20626520756e6c6f636b656420726561647920666f72207472616e73666572206f75742061667465722074686520626f6e64fc706572696f6420656e64732e2049662074686973206c656176657320616e20616d6f756e74206163746976656c7920626f6e646564206c657373207468616e2101543a3a43757272656e63793a3a6d696e696d756d5f62616c616e636528292c207468656e20697420697320696e6372656173656420746f207468652066756c6c20616d6f756e742e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0045014f6e63652074686520756e6c6f636b20706572696f6420697320646f6e652c20796f752063616e2063616c6c206077697468647261775f756e626f6e6465646020746f2061637475616c6c79206d6f7665bc7468652066756e6473206f7574206f66206d616e6167656d656e7420726561647920666f72207472616e736665722e0039014e6f206d6f7265207468616e2061206c696d69746564206e756d626572206f6620756e6c6f636b696e67206368756e6b73202873656520604d41585f554e4c4f434b494e475f4348554e4b536029390163616e20636f2d657869737473206174207468652073616d652074696d652e20496e207468617420636173652c205b6043616c6c3a3a77697468647261775f756e626f6e646564605d206e656564f8746f2062652063616c6c656420666972737420746f2072656d6f766520736f6d65206f6620746865206368756e6b732028696620706f737369626c65292e00390149662061207573657220656e636f756e74657273207468652060496e73756666696369656e74426f6e6460206572726f72207768656e2063616c6c696e6720746869732065787472696e7369632c1901746865792073686f756c642063616c6c20606368696c6c6020666972737420696e206f7264657220746f206672656520757020746865697220626f6e6465642066756e64732e0044456d6974732060556e626f6e646564602e009453656520616c736f205b6043616c6c3a3a77697468647261775f756e626f6e646564605d2e4477697468647261775f756e626f6e6465640401486e756d5f736c617368696e675f7370616e7310010c75333200033c290152656d6f766520616e7920756e6c6f636b6564206368756e6b732066726f6d207468652060756e6c6f636b696e67602071756575652066726f6d206f7572206d616e6167656d656e742e0031015468697320657373656e7469616c6c7920667265657320757020746861742062616c616e636520746f206265207573656420627920746865207374617368206163636f756e7420746f20646f4877686174657665722069742077616e74732e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722e0048456d697473206057697468647261776e602e006853656520616c736f205b6043616c6c3a3a756e626f6e64605d2e002823203c7765696768743e0501436f6d706c6578697479204f285329207768657265205320697320746865206e756d626572206f6620736c617368696e67207370616e7320746f2072656d6f766509014e4f54453a2057656967687420616e6e6f746174696f6e20697320746865206b696c6c207363656e6172696f2c20776520726566756e64206f74686572776973652e2c23203c2f7765696768743e2076616c696461746504011470726566736502013856616c696461746f725072656673000414e44465636c617265207468652064657369726520746f2076616c696461746520666f7220746865206f726967696e20636f6e74726f6c6c65722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e206e6f6d696e61746504011c746172676574736d0201a05665633c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653e00052c0d014465636c617265207468652064657369726520746f206e6f6d696e6174652060746172676574736020666f7220746865206f726967696e20636f6e74726f6c6c65722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e002823203c7765696768743e2d012d20546865207472616e73616374696f6e277320636f6d706c65786974792069732070726f706f7274696f6e616c20746f207468652073697a65206f662060746172676574736020284e29fc77686963682069732063617070656420617420436f6d7061637441737369676e6d656e74733a3a4c494d495420284d41585f4e4f4d494e4154494f4e53292ed42d20426f74682074686520726561647320616e642077726974657320666f6c6c6f7720612073696d696c6172207061747465726e2e2c23203c2f7765696768743e146368696c6c00062cc44465636c617265206e6f2064657369726520746f206569746865722076616c6964617465206f72206e6f6d696e6174652e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e002823203c7765696768743ee42d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e502d20436f6e7461696e73206f6e6520726561642ec42d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e2c23203c2f7765696768743e247365745f706179656504011470617965656102017c52657761726444657374696e6174696f6e3c543a3a4163636f756e7449643e000740b42852652d2973657420746865207061796d656e742074617267657420666f72206120636f6e74726f6c6c65722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e002823203c7765696768743ee42d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e942d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec42d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e242d2d2d2d2d2d2d2d2d382d205765696768743a204f283129302d204442205765696768743a48202020202d20526561643a204c656467657248202020202d2057726974653a2050617965652c23203c2f7765696768743e387365745f636f6e74726f6c6c6572040128636f6e74726f6c6c65724d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650008408c2852652d297365742074686520636f6e74726f6c6c6572206f6620612073746173682e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c65722e002823203c7765696768743ee42d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e942d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec42d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e282d2d2d2d2d2d2d2d2d2d305765696768743a204f283129284442205765696768743af02d20526561643a20426f6e6465642c204c6564676572204e657720436f6e74726f6c6c65722c204c6564676572204f6c6420436f6e74726f6c6c6572f42d2057726974653a20426f6e6465642c204c6564676572204e657720436f6e74726f6c6c65722c204c6564676572204f6c6420436f6e74726f6c6c65722c23203c2f7765696768743e4c7365745f76616c696461746f725f636f756e7404010c6e6577ad01010c75333200092090536574732074686520696465616c206e756d626572206f662076616c696461746f72732e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002823203c7765696768743e305765696768743a204f2831295857726974653a2056616c696461746f7220436f756e742c23203c2f7765696768743e60696e6372656173655f76616c696461746f725f636f756e740401286164646974696f6e616cad01010c753332000a1ca8496e6372656d656e74732074686520696465616c206e756d626572206f662076616c696461746f72732e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002823203c7765696768743e9853616d65206173205b6053656c663a3a7365745f76616c696461746f725f636f756e74605d2e2c23203c2f7765696768743e547363616c655f76616c696461746f725f636f756e74040118666163746f727102011c50657263656e74000b1cd05363616c652075702074686520696465616c206e756d626572206f662076616c696461746f7273206279206120666163746f722e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002823203c7765696768743e9853616d65206173205b6053656c663a3a7365745f76616c696461746f725f636f756e74605d2e2c23203c2f7765696768743e34666f7263655f6e6f5f65726173000c3cac466f72636520746865726520746f206265206e6f206e6577206572617320696e646566696e6974656c792e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002423205761726e696e6700190154686520656c656374696f6e2070726f6365737320737461727473206d756c7469706c6520626c6f636b73206265666f72652074686520656e64206f6620746865206572612e3901546875732074686520656c656374696f6e2070726f63657373206d6179206265206f6e676f696e67207768656e20746869732069732063616c6c65642e20496e2074686973206361736520746865dc656c656374696f6e2077696c6c20636f6e74696e756520756e74696c20746865206e65787420657261206973207472696767657265642e002823203c7765696768743e3c2d204e6f20617267756d656e74732e382d205765696768743a204f283129442d2057726974653a20466f7263654572612c23203c2f7765696768743e34666f7263655f6e65775f657261000d404901466f72636520746865726520746f2062652061206e6577206572612061742074686520656e64206f6620746865206e6578742073657373696f6e2e20416674657220746869732c2069742077696c6c2062659c726573657420746f206e6f726d616c20286e6f6e2d666f7263656429206265686176696f75722e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002423205761726e696e6700190154686520656c656374696f6e2070726f6365737320737461727473206d756c7469706c6520626c6f636b73206265666f72652074686520656e64206f6620746865206572612e4901496620746869732069732063616c6c6564206a757374206265666f72652061206e657720657261206973207472696767657265642c2074686520656c656374696f6e2070726f63657373206d6179206e6f748c6861766520656e6f75676820626c6f636b7320746f20676574206120726573756c742e002823203c7765696768743e3c2d204e6f20617267756d656e74732e382d205765696768743a204f283129402d20577269746520466f7263654572612c23203c2f7765696768743e447365745f696e76756c6e657261626c6573040134696e76756c6e657261626c6573dc01445665633c543a3a4163636f756e7449643e000e20c8536574207468652076616c696461746f72732077686f2063616e6e6f7420626520736c61736865642028696620616e79292e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002823203c7765696768743e182d204f285629582d2057726974653a20496e76756c6e657261626c65732c23203c2f7765696768743e34666f7263655f756e7374616b650801147374617368000130543a3a4163636f756e7449640001486e756d5f736c617368696e675f7370616e7310010c753332000f280901466f72636520612063757272656e74207374616b657220746f206265636f6d6520636f6d706c6574656c7920756e7374616b65642c20696d6d6564696174656c792e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002823203c7765696768743ee84f285329207768657265205320697320746865206e756d626572206f6620736c617368696e67207370616e7320746f2062652072656d6f766564b452656164733a20426f6e6465642c20536c617368696e67205370616e732c204163636f756e742c204c6f636b7345015772697465733a20426f6e6465642c20536c617368696e67205370616e73202869662053203e2030292c204c65646765722c2050617965652c2056616c696461746f72732c204e6f6d696e61746f72732ca44163636f756e742c204c6f636b732057726974657320456163683a205370616e536c617368202a20532c23203c2f7765696768743e50666f7263655f6e65775f6572615f616c776179730010380101466f72636520746865726520746f2062652061206e6577206572612061742074686520656e64206f662073657373696f6e7320696e646566696e6974656c792e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002423205761726e696e6700190154686520656c656374696f6e2070726f6365737320737461727473206d756c7469706c6520626c6f636b73206265666f72652074686520656e64206f6620746865206572612e4901496620746869732069732063616c6c6564206a757374206265666f72652061206e657720657261206973207472696767657265642c2074686520656c656374696f6e2070726f63657373206d6179206e6f748c6861766520656e6f75676820626c6f636b7320746f20676574206120726573756c742e002823203c7765696768743e382d205765696768743a204f283129442d2057726974653a20466f7263654572612c23203c2f7765696768743e5463616e63656c5f64656665727265645f736c61736808010c657261100120457261496e646578000134736c6173685f696e6469636573750201205665633c7533323e0011349443616e63656c20656e6163746d656e74206f66206120646566657272656420736c6173682e00b043616e2062652063616c6c6564206279207468652060543a3a536c61736843616e63656c4f726967696e602e000101506172616d65746572733a2065726120616e6420696e6469636573206f662074686520736c617368657320666f7220746861742065726120746f206b696c6c2e002823203c7765696768743e50436f6d706c65786974793a204f2855202b205329b477697468205520756e6170706c69656420736c6173686573207765696768746564207769746820553d31303030d0616e64205320697320746865206e756d626572206f6620736c61736820696e646963657320746f2062652063616e63656c65642e642d20526561643a20556e6170706c69656420536c6173686573682d2057726974653a20556e6170706c69656420536c61736865732c23203c2f7765696768743e387061796f75745f7374616b65727308013c76616c696461746f725f7374617368000130543a3a4163636f756e74496400010c657261100120457261496e6465780012540d01506179206f757420616c6c20746865207374616b65727320626568696e6420612073696e676c652076616c696461746f7220666f7220612073696e676c65206572612e0049012d206076616c696461746f725f73746173686020697320746865207374617368206163636f756e74206f66207468652076616c696461746f722e205468656972206e6f6d696e61746f72732c20757020746f2501202060543a3a4d61784e6f6d696e61746f72526577617264656450657256616c696461746f72602c2077696c6c20616c736f207265636569766520746865697220726577617264732e31012d206065726160206d617920626520616e7920657261206265747765656e20605b63757272656e745f657261202d20686973746f72795f64657074683b2063757272656e745f6572615d602e005501546865206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e20416e79206163636f756e742063616e2063616c6c20746869732066756e6374696f6e2c206576656e206966746974206973206e6f74206f6e65206f6620746865207374616b6572732e002823203c7765696768743efc2d2054696d6520636f6d706c65786974793a206174206d6f7374204f284d61784e6f6d696e61746f72526577617264656450657256616c696461746f72292ec02d20436f6e7461696e732061206c696d69746564206e756d626572206f6620726561647320616e64207772697465732e2c2d2d2d2d2d2d2d2d2d2d2d19014e20697320746865204e756d626572206f66207061796f75747320666f72207468652076616c696461746f722028696e636c7564696e67207468652076616c696461746f72291c5765696768743a842d205265776172642044657374696e6174696f6e205374616b65643a204f284e29c02d205265776172642044657374696e6174696f6e20436f6e74726f6c6c657220284372656174696e67293a204f284e29004d0120204e4f54453a20776569676874732061726520617373756d696e672074686174207061796f75747320617265206d61646520746f20616c697665207374617368206163636f756e7420285374616b6564292e55012020506179696e67206576656e2061206465616420636f6e74726f6c6c65722069732063686561706572207765696768742d776973652e20576520646f6e277420646f20616e7920726566756e647320686572652e2c23203c2f7765696768743e187265626f6e6404011476616c7565cc013042616c616e63654f663c543e001324dc5265626f6e64206120706f7274696f6e206f6620746865207374617368207363686564756c656420746f20626520756e6c6f636b65642e00d4546865206469737061746368206f726967696e206d757374206265207369676e65642062792074686520636f6e74726f6c6c65722e002823203c7765696768743ed02d2054696d6520636f6d706c65786974793a204f284c292c207768657265204c20697320756e6c6f636b696e67206368756e6b73902d20426f756e64656420627920604d41585f554e4c4f434b494e475f4348554e4b53602ef02d2053746f72616765206368616e6765733a2043616e277420696e6372656173652073746f726167652c206f6e6c792064656372656173652069742e2c23203c2f7765696768743e447365745f686973746f72795f64657074680801446e65775f686973746f72795f6465707468ad010120457261496e6465780001446572615f6974656d735f64656c65746564ad01010c7533320014582d015365742060486973746f72794465707468602076616c75652e20546869732066756e6374696f6e2077696c6c2064656c65746520616e7920686973746f727920696e666f726d6174696f6e7c7768656e2060486973746f727944657074686020697320726564756365642e002c506172616d65746572733a0d012d20606e65775f686973746f72795f6465707468603a20546865206e657720686973746f727920646570746820796f7520776f756c64206c696b6520746f207365742e59012d20606572615f6974656d735f64656c65746564603a20546865206e756d626572206f66206974656d7320746861742077696c6c2062652064656c6574656420627920746869732064697370617463682e20546869735d01202073686f756c64207265706f727420616c6c207468652073746f72616765206974656d7320746861742077696c6c2062652064656c6574656420627920636c656172696e67206f6c642065726120686973746f72792e590120204e656564656420746f207265706f727420616e2061636375726174652077656967687420666f72207468652064697370617463682e20547275737465642062792060526f6f746020746f207265706f727420616e4820206163637572617465206e756d6265722e00504f726967696e206d75737420626520726f6f742e002823203c7765696768743edc2d20453a204e756d626572206f6620686973746f7279206465707468732072656d6f7665642c20692e652e203130202d3e2037203d2033382d205765696768743a204f284529302d204442205765696768743a9c202020202d2052656164733a2043757272656e74204572612c20486973746f72792044657074686c202020202d205772697465733a20486973746f72792044657074682d01202020202d20436c6561722050726566697820456163683a20457261205374616b6572732c204572615374616b657273436c69707065642c204572617356616c696461746f7250726566732501202020202d2057726974657320456163683a204572617356616c696461746f725265776172642c2045726173526577617264506f696e74732c2045726173546f74616c5374616b652c6c20202020202045726173537461727453657373696f6e496e6465782c23203c2f7765696768743e28726561705f73746173680801147374617368000130543a3a4163636f756e7449640001486e756d5f736c617368696e675f7370616e7310010c7533320015405d0152656d6f766520616c6c20646174612073747275637475726520636f6e6365726e696e672061207374616b65722f7374617368206f6e6365206974732062616c616e636520697320617420746865206d696e696d756d2e5d015468697320697320657373656e7469616c6c79206571756976616c656e7420746f206077697468647261775f756e626f6e64656460206578636570742069742063616e2062652063616c6c656420627920616e796f6e65f4616e6420746865207461726765742060737461736860206d7573742068617665206e6f2066756e6473206c656674206265796f6e64207468652045442e008c546869732063616e2062652063616c6c65642066726f6d20616e79206f726967696e2e00fc2d20607374617368603a20546865207374617368206163636f756e7420746f20726561702e204974732062616c616e6365206d757374206265207a65726f2e002823203c7765696768743e2101436f6d706c65786974793a204f285329207768657265205320697320746865206e756d626572206f6620736c617368696e67207370616e73206f6e20746865206163636f756e742e284442205765696768743ad42d2052656164733a205374617368204163636f756e742c20426f6e6465642c20536c617368696e67205370616e732c204c6f636b734d012d205772697465733a20426f6e6465642c20536c617368696e67205370616e73202869662053203e2030292c204c65646765722c2050617965652c2056616c696461746f72732c204e6f6d696e61746f72732c5820205374617368204163636f756e742c204c6f636b73702d2057726974657320456163683a205370616e536c617368202a20532c23203c2f7765696768743e106b69636b04010c77686f6d0201a05665633c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653e00162ce052656d6f76652074686520676976656e206e6f6d696e6174696f6e732066726f6d207468652063616c6c696e672076616c696461746f722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e004d012d206077686f603a2041206c697374206f66206e6f6d696e61746f72207374617368206163636f756e74732077686f20617265206e6f6d696e6174696e6720746869732076616c696461746f72207768696368c0202073686f756c64206e6f206c6f6e676572206265206e6f6d696e6174696e6720746869732076616c696461746f722e0055014e6f74653a204d616b696e6720746869732063616c6c206f6e6c79206d616b65732073656e736520696620796f7520666972737420736574207468652076616c696461746f7220707265666572656e63657320746f78626c6f636b20616e792066757274686572206e6f6d696e6174696f6e732e487365745f7374616b696e675f6c696d6974731401486d696e5f6e6f6d696e61746f725f626f6e6418013042616c616e63654f663c543e0001486d696e5f76616c696461746f725f626f6e6418013042616c616e63654f663c543e00014c6d61785f6e6f6d696e61746f725f636f756e747902012c4f7074696f6e3c7533323e00014c6d61785f76616c696461746f725f636f756e747902012c4f7074696f6e3c7533323e0001247468726573686f6c647d02013c4f7074696f6e3c50657263656e743e001734b85570646174652074686520766172696f7573207374616b696e67206c696d69747320746869732070616c6c65742e0025012a20606d696e5f6e6f6d696e61746f725f626f6e64603a20546865206d696e696d756d2061637469766520626f6e64206e656564656420746f2062652061206e6f6d696e61746f722e25012a20606d696e5f76616c696461746f725f626f6e64603a20546865206d696e696d756d2061637469766520626f6e64206e656564656420746f20626520612076616c696461746f722e55012a20606d61785f6e6f6d696e61746f725f636f756e74603a20546865206d6178206e756d626572206f662075736572732077686f2063616e2062652061206e6f6d696e61746f72206174206f6e63652e205768656e98202073657420746f20604e6f6e65602c206e6f206c696d697420697320656e666f726365642e55012a20606d61785f76616c696461746f725f636f756e74603a20546865206d6178206e756d626572206f662075736572732077686f2063616e20626520612076616c696461746f72206174206f6e63652e205768656e98202073657420746f20604e6f6e65602c206e6f206c696d697420697320656e666f726365642e00a84f726967696e206d75737420626520526f6f7420746f2063616c6c20746869732066756e6374696f6e2e0035014e4f54453a204578697374696e67206e6f6d696e61746f727320616e642076616c696461746f72732077696c6c206e6f742062652061666665637465642062792074686973207570646174652e1101746f206b69636b2070656f706c6520756e64657220746865206e6577206c696d6974732c20606368696c6c5f6f74686572602073686f756c642062652063616c6c65642e2c6368696c6c5f6f74686572040128636f6e74726f6c6c6572000130543a3a4163636f756e74496400185441014465636c61726520612060636f6e74726f6c6c65726020746f2073746f702070617274696369706174696e672061732065697468657220612076616c696461746f72206f72206e6f6d696e61746f722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e004101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2c206275742063616e2062652063616c6c656420627920616e796f6e652e0059014966207468652063616c6c6572206973207468652073616d652061732074686520636f6e74726f6c6c6572206265696e672074617267657465642c207468656e206e6f206675727468657220636865636b7320617265d8656e666f726365642c20616e6420746869732066756e6374696f6e2062656861766573206a757374206c696b6520606368696c6c602e005d014966207468652063616c6c657220697320646966666572656e74207468616e2074686520636f6e74726f6c6c6572206265696e672074617267657465642c2074686520666f6c6c6f77696e6720636f6e646974696f6e73306d757374206265206d65743a3d012a204120604368696c6c5468726573686f6c6460206d7573742062652073657420616e6420636865636b656420776869636820646566696e657320686f7720636c6f736520746f20746865206d6178550120206e6f6d696e61746f7273206f722076616c696461746f7273207765206d757374207265616368206265666f72652075736572732063616e207374617274206368696c6c696e67206f6e652d616e6f746865722e59012a204120604d61784e6f6d696e61746f72436f756e746020616e6420604d617856616c696461746f72436f756e7460206d75737420626520736574207768696368206973207573656420746f2064657465726d696e65902020686f7720636c6f73652077652061726520746f20746865207468726573686f6c642e5d012a204120604d696e4e6f6d696e61746f72426f6e646020616e6420604d696e56616c696461746f72426f6e6460206d7573742062652073657420616e6420636865636b65642c2077686963682064657465726d696e65735101202069662074686973206973206120706572736f6e20746861742073686f756c64206265206368696c6c6564206265636175736520746865792068617665206e6f74206d657420746865207468726573686f6c64402020626f6e642072657175697265642e005501546869732063616e2062652068656c7066756c20696620626f6e6420726571756972656d656e74732061726520757064617465642c20616e64207765206e65656420746f2072656d6f7665206f6c642075736572739877686f20646f206e6f74207361746973667920746865736520726571756972656d656e74732e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e6102083870616c6c65745f7374616b696e674452657761726444657374696e6174696f6e04244163636f756e74496401000114185374616b656400000014537461736800010028436f6e74726f6c6c65720002001c4163636f756e7404000001244163636f756e744964000300104e6f6e65000400006502083870616c6c65745f7374616b696e673856616c696461746f7250726566730000080128636f6d6d697373696f6e6902011c50657262696c6c00011c626c6f636b6564e80110626f6f6c00006902000006b901006d020000024d020071020c3473705f61726974686d65746963287065725f7468696e67731c50657263656e74000004000801087538000075020000021000790204184f7074696f6e04045401100108104e6f6e6500000010536f6d6504001000000100007d0204184f7074696f6e0404540171020108104e6f6e6500000010536f6d6504007102000001000081020c3870616c6c65745f73657373696f6e1870616c6c65741043616c6c040454000108207365745f6b6579730801106b6579738502011c543a3a4b65797300011470726f6f6628011c5665633c75383e000038e453657473207468652073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c657220746f20606b657973602e1d01416c6c6f777320616e206163636f756e7420746f20736574206974732073657373696f6e206b6579207072696f7220746f206265636f6d696e6720612076616c696461746f722ec05468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e00d0546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265207369676e65642e002823203c7765696768743e11012d20436f6d706c65786974793a20604f283129602e2041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f6698202060543a3a4b6579733a3a6b65795f6964732829602077686963682069732066697865642eec2d20446252656164733a20606f726967696e206163636f756e74602c2060543a3a56616c696461746f7249644f66602c20604e6578744b65797360a02d2044625772697465733a20606f726967696e206163636f756e74602c20604e6578744b65797360802d204462526561647320706572206b65792069643a20604b65794f776e657260842d20446257726974657320706572206b65792069643a20604b65794f776e6572602c23203c2f7765696768743e2870757267655f6b657973000130c852656d6f76657320616e792073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c65722ec05468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e00d0546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265207369676e65642e002823203c7765696768743e61012d20436f6d706c65786974793a20604f2831296020696e206e756d626572206f66206b65792074797065732e2041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468a420206f662060543a3a4b6579733a3a6b65795f6964732829602077686963682069732066697865642eec2d20446252656164733a2060543a3a56616c696461746f7249644f66602c20604e6578744b657973602c20606f726967696e206163636f756e7460a02d2044625772697465733a20604e6578744b657973602c20606f726967696e206163636f756e7460842d20446257726974657320706572206b65792069643a20604b65794f776e6572602c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e85020840706f6c6b61646f745f72756e74696d652c53657373696f6e4b657973000018011c6772616e647061ac01d03c4772616e647061206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c696300011062616265250201c43c42616265206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c6963000124696d5f6f6e6c696e65b801d43c496d4f6e6c696e65206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c6963000138706172615f76616c696461746f72890201e03c496e697469616c697a6572206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c696300013c706172615f61737369676e6d656e748d0201f03c5061726153657373696f6e496e666f206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c696300014c617574686f726974795f646973636f76657279910201fc3c417574686f72697479446973636f76657279206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c696300008902104c706f6c6b61646f745f7072696d6974697665730876303476616c696461746f725f617070185075626c696300000400bc013c737232353531393a3a5075626c696300008d02104c706f6c6b61646f745f7072696d6974697665730876313861737369676e6d656e745f617070185075626c696300000400bc013c737232353531393a3a5075626c6963000091020c5873705f617574686f726974795f646973636f766572790c617070185075626c696300000400bc013c737232353531393a3a5075626c6963000095020c3870616c6c65745f6772616e6470611870616c6c65741043616c6c04045400010c4c7265706f72745f65717569766f636174696f6e08014865717569766f636174696f6e5f70726f6f66990201bc426f783c45717569766f636174696f6e50726f6f663c543a3a486173682c20543a3a426c6f636b4e756d6265723e3e00013c6b65795f6f776e65725f70726f6f662d020140543a3a4b65794f776e657250726f6f6600001009015265706f727420766f7465722065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667920746865f465717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66f8616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63654477696c6c206265207265706f727465642e707265706f72745f65717569766f636174696f6e5f756e7369676e656408014865717569766f636174696f6e5f70726f6f66990201bc426f783c45717569766f636174696f6e50726f6f663c543a3a486173682c20543a3a426c6f636b4e756d6265723e3e00013c6b65795f6f776e65725f70726f6f662d020140543a3a4b65794f776e657250726f6f6600012409015265706f727420766f7465722065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667920746865f465717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66f8616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63654477696c6c206265207265706f727465642e000d01546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c791501626c6f636b20617574686f72732077696c6c2063616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c2061732073756368150169662074686520626c6f636b20617574686f7220697320646566696e65642069742077696c6c20626520646566696e6564206173207468652065717569766f636174696f6e247265706f727465722e306e6f74655f7374616c6c656408011464656c6179100138543a3a426c6f636b4e756d62657200016c626573745f66696e616c697a65645f626c6f636b5f6e756d626572100138543a3a426c6f636b4e756d62657200021c19014e6f74652074686174207468652063757272656e7420617574686f7269747920736574206f6620746865204752414e4450412066696e616c697479206761646765742068617325017374616c6c65642e20546869732077696c6c2074726967676572206120666f7263656420617574686f7269747920736574206368616e67652061742074686520626567696e6e696e671d016f6620746865206e6578742073657373696f6e2c20746f20626520656e6163746564206064656c61796020626c6f636b7320616674657220746861742e205468652064656c6179110173686f756c64206265206869676820656e6f75676820746f20736166656c7920617373756d6520746861742074686520626c6f636b207369676e616c6c696e67207468652501666f72636564206368616e67652077696c6c206e6f742062652072652d6f726765642028652e672e203130303020626c6f636b73292e20546865204752414e44504120766f74657273250177696c6c20737461727420746865206e657720617574686f7269747920736574207573696e672074686520676976656e2066696e616c697a656420626c6f636b20617320626173652e584f6e6c792063616c6c61626c6520627920726f6f742e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e9902084c73705f66696e616c6974795f6772616e6470614445717569766f636174696f6e50726f6f660804480124044e0110000801187365745f6964200114536574496400013065717569766f636174696f6e9d02014845717569766f636174696f6e3c482c204e3e00009d02084c73705f66696e616c6974795f6772616e6470613045717569766f636174696f6e0804480124044e011001081c507265766f74650400a1020139016772616e6470613a3a45717569766f636174696f6e3c417574686f7269747949642c206772616e6470613a3a507265766f74653c482c204e3e2c0a417574686f726974795369676e61747572653e00000024507265636f6d6d69740400b5020141016772616e6470613a3a45717569766f636174696f6e3c417574686f7269747949642c206772616e6470613a3a507265636f6d6d69743c482c204e3e2c0a417574686f726974795369676e61747572653e00010000a102084066696e616c6974795f6772616e6470613045717569766f636174696f6e0c08496401ac045601a502045301a90200100130726f756e645f6e756d62657220010c7536340001206964656e74697479ac010849640001146669727374b102011828562c2053290001187365636f6e64b102011828562c2053290000a502084066696e616c6974795f6772616e6470611c507265766f74650804480124044e01100008012c7461726765745f68617368240104480001347461726765745f6e756d6265721001044e0000a9020c4c73705f66696e616c6974795f6772616e6470610c617070245369676e617475726500000400ad020148656432353531393a3a5369676e61747572650000ad020c1c73705f636f72651c65643235353139245369676e617475726500000400610101205b75383b2036345d0000b10200000408a502a90200b502084066696e616c6974795f6772616e6470613045717569766f636174696f6e0c08496401ac045601b902045301a90200100130726f756e645f6e756d62657220010c7536340001206964656e74697479ac010849640001146669727374bd02011828562c2053290001187365636f6e64bd02011828562c2053290000b902084066696e616c6974795f6772616e64706124507265636f6d6d69740804480124044e01100008012c7461726765745f68617368240104480001347461726765745f6e756d6265721001044e0000bd0200000408b902a90200c1020c4070616c6c65745f696d5f6f6e6c696e651870616c6c65741043616c6c04045400010424686561727462656174080124686561727462656174c50201644865617274626561743c543a3a426c6f636b4e756d6265723e0001247369676e6174757265d90201bc3c543a3a417574686f7269747949642061732052756e74696d654170705075626c69633e3a3a5369676e61747572650000242823203c7765696768743e61012d20436f6d706c65786974793a20604f284b202b20452960207768657265204b206973206c656e677468206f6620604b6579736020286865617274626561742e76616c696461746f72735f6c656e2920616e642045206973d820206c656e677468206f6620606865617274626561742e6e6574776f726b5f73746174652e65787465726e616c5f61646472657373608820202d20604f284b29603a206465636f64696e67206f66206c656e67746820604b60ac20202d20604f284529603a206465636f64696e672f656e636f64696e67206f66206c656e6774682060456039012d20446252656164733a2070616c6c65745f73657373696f6e206056616c696461746f7273602c2070616c6c65745f73657373696f6e206043757272656e74496e646578602c20604b657973602c5820206052656365697665644865617274626561747360802d2044625772697465733a2060526563656976656448656172746265617473602c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ec502084070616c6c65745f696d5f6f6e6c696e6524486561727462656174042c426c6f636b4e756d626572011000140130626c6f636b5f6e756d62657210012c426c6f636b4e756d6265720001346e6574776f726b5f7374617465c90201484f70617175654e6574776f726b537461746500013473657373696f6e5f696e64657810013053657373696f6e496e64657800013c617574686f726974795f696e64657810012441757468496e64657800013876616c696461746f72735f6c656e10010c7533320000c9020c1c73705f636f7265206f6666636861696e484f70617175654e6574776f726b5374617465000008011c706565725f6964cd0201304f706171756550656572496400014865787465726e616c5f616464726573736573d10201505665633c4f70617175654d756c7469616464723e0000cd02081c73705f636f7265304f70617175655065657249640000040028011c5665633c75383e0000d102000002d50200d5020c1c73705f636f7265206f6666636861696e3c4f70617175654d756c7469616464720000040028011c5665633c75383e0000d902104070616c6c65745f696d5f6f6e6c696e651c737232353531392c6170705f73723235353139245369676e6174757265000004005d010148737232353531393a3a5369676e61747572650000dd020c4070616c6c65745f64656d6f63726163791870616c6c65741043616c6c0404540001641c70726f706f736508013470726f706f73616c5f6861736824011c543a3a4861736800011476616c7565cc013042616c616e63654f663c543e00002c9c50726f706f736520612073656e73697469766520616374696f6e20746f2062652074616b656e2e001501546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737480686176652066756e647320746f20636f76657220746865206465706f7369742e00d42d206070726f706f73616c5f68617368603a205468652068617368206f66207468652070726f706f73616c20707265696d6167652e15012d206076616c7565603a2054686520616d6f756e74206f66206465706f73697420286d757374206265206174206c6561737420604d696e696d756d4465706f73697460292e0044456d697473206050726f706f736564602e00385765696768743a20604f28702960187365636f6e6408012070726f706f73616cad01012450726f70496e64657800014c7365636f6e64735f75707065725f626f756e64ad01010c753332000128b45369676e616c732061677265656d656e742077697468206120706172746963756c61722070726f706f73616c2e000101546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e64657211016d75737420686176652066756e647320746f20636f76657220746865206465706f7369742c20657175616c20746f20746865206f726967696e616c206465706f7369742e00c82d206070726f706f73616c603a2054686520696e646578206f66207468652070726f706f73616c20746f207365636f6e642e41012d20607365636f6e64735f75707065725f626f756e64603a20616e20757070657220626f756e64206f6e207468652063757272656e74206e756d626572206f66207365636f6e6473206f6e20746869732501202070726f706f73616c2e2045787472696e736963206973207765696768746564206163636f7264696e6720746f20746869732076616c75652077697468206e6f20726566756e642e001d015765696768743a20604f28532960207768657265205320697320746865206e756d626572206f66207365636f6e647320612070726f706f73616c20616c7265616479206861732e10766f74650801247265665f696e646578ad01013c5265666572656e64756d496e646578000110766f7465e10201644163636f756e74566f74653c42616c616e63654f663c543e3e0002243101566f746520696e2061207265666572656e64756d2e2049662060766f74652e69735f6179652829602c2074686520766f746520697320746f20656e616374207468652070726f706f73616c3bb86f7468657277697365206974206973206120766f746520746f206b65657020746865207374617475732071756f2e00c8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00dc2d20607265665f696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f20766f746520666f722e842d2060766f7465603a2054686520766f746520636f6e66696775726174696f6e2e002d015765696768743a20604f28522960207768657265205220697320746865206e756d626572206f66207265666572656e64756d732074686520766f7465722068617320766f746564206f6e2e40656d657267656e63795f63616e63656c0401247265665f696e64657810013c5265666572656e64756d496e6465780003204d015363686564756c6520616e20656d657267656e63792063616e63656c6c6174696f6e206f662061207265666572656e64756d2e2043616e6e6f742068617070656e20747769636520746f207468652073616d652c7265666572656e64756d2e00f8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265206043616e63656c6c6174696f6e4f726967696e602e00d02d607265665f696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f2063616e63656c2e003c5765696768743a20604f283129602e4065787465726e616c5f70726f706f736504013470726f706f73616c5f6861736824011c543a3a486173680004242d015363686564756c652061207265666572656e64756d20746f206265207461626c6564206f6e6365206974206973206c6567616c20746f207363686564756c6520616e2065787465726e616c2c7265666572656e64756d2e00e8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265206045787465726e616c4f726967696e602e00d42d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f66207468652070726f706f73616c2e0015015765696768743a20604f2856296020776974682056206e756d626572206f66207665746f65727320696e2074686520626c61636b6c697374206f662070726f706f73616c2eb820204465636f64696e6720766563206f66206c656e67746820562e2043686172676564206173206d6178696d756d6465787465726e616c5f70726f706f73655f6d616a6f7269747904013470726f706f73616c5f6861736824011c543a3a4861736800052c55015363686564756c652061206d616a6f726974792d63617272696573207265666572656e64756d20746f206265207461626c6564206e657874206f6e6365206974206973206c6567616c20746f207363686564756c655c616e2065787465726e616c207265666572656e64756d2e00ec546865206469737061746368206f6620746869732063616c6c206d757374206265206045787465726e616c4d616a6f726974794f726967696e602e00d42d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f66207468652070726f706f73616c2e004901556e6c696b65206065787465726e616c5f70726f706f7365602c20626c61636b6c697374696e6720686173206e6f20656666656374206f6e207468697320616e64206974206d6179207265706c6163652061987072652d7363686564756c6564206065787465726e616c5f70726f706f7365602063616c6c2e00385765696768743a20604f283129606065787465726e616c5f70726f706f73655f64656661756c7404013470726f706f73616c5f6861736824011c543a3a4861736800062c45015363686564756c652061206e656761746976652d7475726e6f75742d62696173207265666572656e64756d20746f206265207461626c6564206e657874206f6e6365206974206973206c6567616c20746f807363686564756c6520616e2065787465726e616c207265666572656e64756d2e00e8546865206469737061746368206f6620746869732063616c6c206d757374206265206045787465726e616c44656661756c744f726967696e602e00d42d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f66207468652070726f706f73616c2e004901556e6c696b65206065787465726e616c5f70726f706f7365602c20626c61636b6c697374696e6720686173206e6f20656666656374206f6e207468697320616e64206974206d6179207265706c6163652061987072652d7363686564756c6564206065787465726e616c5f70726f706f7365602063616c6c2e00385765696768743a20604f2831296028666173745f747261636b0c013470726f706f73616c5f6861736824011c543a3a48617368000134766f74696e675f706572696f64100138543a3a426c6f636b4e756d62657200011464656c6179100138543a3a426c6f636b4e756d62657200073c4d015363686564756c65207468652063757272656e746c792065787465726e616c6c792d70726f706f736564206d616a6f726974792d63617272696573207265666572656e64756d20746f206265207461626c65646101696d6d6564696174656c792e204966207468657265206973206e6f2065787465726e616c6c792d70726f706f736564207265666572656e64756d2063757272656e746c792c206f72206966207468657265206973206f6e65e8627574206974206973206e6f742061206d616a6f726974792d63617272696573207265666572656e64756d207468656e206974206661696c732e00d0546865206469737061746368206f6620746869732063616c6c206d757374206265206046617374547261636b4f726967696e602e00f42d206070726f706f73616c5f68617368603a205468652068617368206f66207468652063757272656e742065787465726e616c2070726f706f73616c2e5d012d2060766f74696e675f706572696f64603a2054686520706572696f64207468617420697320616c6c6f77656420666f7220766f74696e67206f6e20746869732070726f706f73616c2e20496e6372656173656420746f9420206046617374547261636b566f74696e67506572696f646020696620746f6f206c6f772e51012d206064656c6179603a20546865206e756d626572206f6620626c6f636b20616674657220766f74696e672068617320656e64656420696e20617070726f76616c20616e6420746869732073686f756c64206265b82020656e61637465642e205468697320646f65736e277420686176652061206d696e696d756d20616d6f756e742e0040456d697473206053746172746564602e00385765696768743a20604f28312960347665746f5f65787465726e616c04013470726f706f73616c5f6861736824011c543a3a48617368000824b85665746f20616e6420626c61636b6c697374207468652065787465726e616c2070726f706f73616c20686173682e00d8546865206469737061746368206f726967696e206f6620746869732063616c6c206d75737420626520605665746f4f726967696e602e002d012d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f66207468652070726f706f73616c20746f207665746f20616e6420626c61636b6c6973742e003c456d69747320605665746f6564602e00fc5765696768743a20604f2856202b206c6f6728562929602077686572652056206973206e756d626572206f6620606578697374696e67207665746f657273604463616e63656c5f7265666572656e64756d0401247265665f696e646578ad01013c5265666572656e64756d496e64657800091c5052656d6f76652061207265666572656e64756d2e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f526f6f745f2e00d42d20607265665f696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f2063616e63656c2e004423205765696768743a20604f283129602e3463616e63656c5f717565756564040114776869636810013c5265666572656e64756d496e646578000a1c9c43616e63656c20612070726f706f73616c2071756575656420666f7220656e6163746d656e742e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f526f6f745f2e00c42d20607768696368603a2054686520696e646578206f6620746865207265666572656e64756d20746f2063616e63656c2e0049015765696768743a20604f284429602077686572652060446020697320746865206974656d7320696e207468652064697370617463682071756575652e205765696768746564206173206044203d203130602e2064656c65676174650c0108746f000130543a3a4163636f756e744964000128636f6e76696374696f6ee9020128436f6e76696374696f6e00011c62616c616e636518013042616c616e63654f663c543e000b50390144656c65676174652074686520766f74696e6720706f77657220287769746820736f6d6520676976656e20636f6e76696374696f6e29206f66207468652073656e64696e67206163636f756e742e0055015468652062616c616e63652064656c656761746564206973206c6f636b656420666f72206173206c6f6e6720617320697427732064656c6567617465642c20616e64207468657265616674657220666f7220746865c874696d6520617070726f70726961746520666f722074686520636f6e76696374696f6e2773206c6f636b20706572696f642e005d01546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2c20616e6420746865207369676e696e67206163636f756e74206d757374206569746865723a7420202d2062652064656c65676174696e6720616c72656164793b206f72590120202d2068617665206e6f20766f74696e67206163746976697479202869662074686572652069732c207468656e2069742077696c6c206e65656420746f2062652072656d6f7665642f636f6e736f6c69646174656494202020207468726f7567682060726561705f766f746560206f722060756e766f746560292e0045012d2060746f603a20546865206163636f756e742077686f736520766f74696e6720746865206074617267657460206163636f756e74277320766f74696e6720706f7765722077696c6c20666f6c6c6f772e55012d2060636f6e76696374696f6e603a2054686520636f6e76696374696f6e20746861742077696c6c20626520617474616368656420746f207468652064656c65676174656420766f7465732e205768656e20746865410120206163636f756e7420697320756e64656c6567617465642c207468652066756e64732077696c6c206265206c6f636b656420666f722074686520636f72726573706f6e64696e6720706572696f642e61012d206062616c616e6365603a2054686520616d6f756e74206f6620746865206163636f756e7427732062616c616e636520746f206265207573656420696e2064656c65676174696e672e2054686973206d757374206e6f74b420206265206d6f7265207468616e20746865206163636f756e7427732063757272656e742062616c616e63652e0048456d697473206044656c656761746564602e003d015765696768743a20604f28522960207768657265205220697320746865206e756d626572206f66207265666572656e64756d732074686520766f7465722064656c65676174696e6720746f20686173c82020766f746564206f6e2e205765696768742069732063686172676564206173206966206d6178696d756d20766f7465732e28756e64656c6567617465000c30cc556e64656c65676174652074686520766f74696e6720706f776572206f66207468652073656e64696e67206163636f756e742e005d01546f6b656e73206d617920626520756e6c6f636b656420666f6c6c6f77696e67206f6e636520616e20616d6f756e74206f662074696d6520636f6e73697374656e74207769746820746865206c6f636b20706572696f64dc6f662074686520636f6e76696374696f6e2077697468207768696368207468652064656c65676174696f6e20776173206973737565642e004501546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d7573742062655463757272656e746c792064656c65676174696e672e0050456d6974732060556e64656c656761746564602e003d015765696768743a20604f28522960207768657265205220697320746865206e756d626572206f66207265666572656e64756d732074686520766f7465722064656c65676174696e6720746f20686173c82020766f746564206f6e2e205765696768742069732063686172676564206173206966206d6178696d756d20766f7465732e58636c6561725f7075626c69635f70726f706f73616c73000d1470436c6561727320616c6c207075626c69632070726f706f73616c732e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f526f6f745f2e003c5765696768743a20604f283129602e346e6f74655f707265696d616765040140656e636f6465645f70726f706f73616c28011c5665633c75383e000e285d0152656769737465722074686520707265696d61676520666f7220616e207570636f6d696e672070726f706f73616c2e205468697320646f65736e27742072657175697265207468652070726f706f73616c20746f2062652101696e207468652064697370617463682071756575652062757420646f657320726571756972652061206465706f7369742c2072657475726e6564206f6e636520656e61637465642e00c8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00c42d2060656e636f6465645f70726f706f73616c603a2054686520707265696d616765206f6620612070726f706f73616c2e0058456d6974732060507265696d6167654e6f746564602e004d015765696768743a20604f28452960207769746820452073697a65206f662060656e636f6465645f70726f706f73616c60202870726f7465637465642062792061207265717569726564206465706f736974292e646e6f74655f707265696d6167655f6f7065726174696f6e616c040140656e636f6465645f70726f706f73616c28011c5665633c75383e000f04090153616d6520617320606e6f74655f707265696d6167656020627574206f726967696e20697320604f7065726174696f6e616c507265696d6167654f726967696e602e586e6f74655f696d6d696e656e745f707265696d616765040140656e636f6465645f70726f706f73616c28011c5665633c75383e001030410152656769737465722074686520707265696d61676520666f7220616e207570636f6d696e672070726f706f73616c2e2054686973207265717569726573207468652070726f706f73616c20746f2062653d01696e207468652064697370617463682071756575652e204e6f206465706f736974206973206e65656465642e205768656e20746869732063616c6c206973207375636365737366756c2c20692e652e350174686520707265696d61676520686173206e6f74206265656e2075706c6f61646564206265666f726520616e64206d61746368657320736f6d6520696d6d696e656e742070726f706f73616c2c3c6e6f2066656520697320706169642e00c8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00c42d2060656e636f6465645f70726f706f73616c603a2054686520707265696d616765206f6620612070726f706f73616c2e0058456d6974732060507265696d6167654e6f746564602e004d015765696768743a20604f28452960207769746820452073697a65206f662060656e636f6465645f70726f706f73616c60202870726f7465637465642062792061207265717569726564206465706f736974292e886e6f74655f696d6d696e656e745f707265696d6167655f6f7065726174696f6e616c040140656e636f6465645f70726f706f73616c28011c5665633c75383e0011042d0153616d6520617320606e6f74655f696d6d696e656e745f707265696d6167656020627574206f726967696e20697320604f7065726174696f6e616c507265696d6167654f726967696e602e34726561705f707265696d61676508013470726f706f73616c5f6861736824011c543a3a4861736800016070726f706f73616c5f6c656e5f75707065725f626f756e64ad01010c75333200123cf052656d6f766520616e20657870697265642070726f706f73616c20707265696d61676520616e6420636f6c6c65637420746865206465706f7369742e00c8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00cc2d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f6620612070726f706f73616c2e5d012d206070726f706f73616c5f6c656e6774685f75707065725f626f756e64603a20616e20757070657220626f756e64206f6e206c656e677468206f66207468652070726f706f73616c2e2045787472696e736963206973c820207765696768746564206163636f7264696e6720746f20746869732076616c75652077697468206e6f20726566756e642e004d01546869732077696c6c206f6e6c7920776f726b2061667465722060566f74696e67506572696f646020626c6f636b732066726f6d207468652074696d6520746861742074686520707265696d6167652077617359016e6f7465642c2069662069742773207468652073616d65206163636f756e7420646f696e672069742e2049662069742773206120646966666572656e74206163636f756e742c207468656e206974276c6c206f6e6c79ac776f726b20616e206164646974696f6e616c2060456e6163746d656e74506572696f6460206c617465722e005c456d6974732060507265696d616765526561706564602e00b45765696768743a20604f284429602077686572652044206973206c656e677468206f662070726f706f73616c2e18756e6c6f636b040118746172676574000130543a3a4163636f756e74496400131ca0556e6c6f636b20746f6b656e732074686174206861766520616e2065787069726564206c6f636b2e00c8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00b82d2060746172676574603a20546865206163636f756e7420746f2072656d6f766520746865206c6f636b206f6e2e00bc5765696768743a20604f2852296020776974682052206e756d626572206f6620766f7465206f66207461726765742e2c72656d6f76655f766f7465040114696e64657810013c5265666572656e64756d496e64657800146c7c52656d6f7665206120766f746520666f722061207265666572656e64756d2e000c49663a882d20746865207265666572656e64756d207761732063616e63656c6c65642c206f727c2d20746865207265666572656e64756d206973206f6e676f696e672c206f72902d20746865207265666572656e64756d2068617320656e64656420737563682074686174fc20202d2074686520766f7465206f6620746865206163636f756e742077617320696e206f70706f736974696f6e20746f2074686520726573756c743b206f72d420202d20746865726520776173206e6f20636f6e76696374696f6e20746f20746865206163636f756e74277320766f74653b206f728420202d20746865206163636f756e74206d61646520612073706c697420766f74655d012e2e2e7468656e2074686520766f74652069732072656d6f76656420636c65616e6c7920616e64206120666f6c6c6f77696e672063616c6c20746f2060756e6c6f636b60206d617920726573756c7420696e206d6f72655866756e6473206265696e6720617661696c61626c652e00a849662c20686f77657665722c20746865207265666572656e64756d2068617320656e64656420616e643aec2d2069742066696e697368656420636f72726573706f6e64696e6720746f2074686520766f7465206f6620746865206163636f756e742c20616e64dc2d20746865206163636f756e74206d6164652061207374616e6461726420766f7465207769746820636f6e76696374696f6e2c20616e64bc2d20746865206c6f636b20706572696f64206f662074686520636f6e76696374696f6e206973206e6f74206f76657259012e2e2e7468656e20746865206c6f636b2077696c6c206265206167677265676174656420696e746f20746865206f766572616c6c206163636f756e742773206c6f636b2c207768696368206d617920696e766f6c766559012a6f7665726c6f636b696e672a20287768657265207468652074776f206c6f636b732061726520636f6d62696e656420696e746f20612073696e676c65206c6f636b207468617420697320746865206d6178696d756de46f6620626f74682074686520616d6f756e74206c6f636b656420616e64207468652074696d65206973206974206c6f636b656420666f72292e004901546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2c20616e6420746865207369676e6572206d7573742068617665206120766f7465887265676973746572656420666f72207265666572656e64756d2060696e646578602e00f42d2060696e646578603a2054686520696e646578206f66207265666572656e64756d206f662074686520766f746520746f2062652072656d6f7665642e0055015765696768743a20604f2852202b206c6f6720522960207768657265205220697320746865206e756d626572206f66207265666572656e646120746861742060746172676574602068617320766f746564206f6e2ed820205765696768742069732063616c63756c6174656420666f7220746865206d6178696d756d206e756d626572206f6620766f74652e4472656d6f76655f6f746865725f766f7465080118746172676574000130543a3a4163636f756e744964000114696e64657810013c5265666572656e64756d496e64657800153c7c52656d6f7665206120766f746520666f722061207265666572656e64756d2e004d0149662074686520607461726765746020697320657175616c20746f20746865207369676e65722c207468656e20746869732066756e6374696f6e2069732065786163746c79206571756976616c656e7420746f2d016072656d6f76655f766f7465602e204966206e6f7420657175616c20746f20746865207369676e65722c207468656e2074686520766f7465206d757374206861766520657870697265642c5501656974686572206265636175736520746865207265666572656e64756d207761732063616e63656c6c65642c20626563617573652074686520766f746572206c6f737420746865207265666572656e64756d206f7298626563617573652074686520636f6e76696374696f6e20706572696f64206973206f7665722e00c8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e004d012d2060746172676574603a20546865206163636f756e74206f662074686520766f746520746f2062652072656d6f7665643b2074686973206163636f756e74206d757374206861766520766f74656420666f725420207265666572656e64756d2060696e646578602ef42d2060696e646578603a2054686520696e646578206f66207265666572656e64756d206f662074686520766f746520746f2062652072656d6f7665642e0055015765696768743a20604f2852202b206c6f6720522960207768657265205220697320746865206e756d626572206f66207265666572656e646120746861742060746172676574602068617320766f746564206f6e2ed820205765696768742069732063616c63756c6174656420666f7220746865206d6178696d756d206e756d626572206f6620766f74652e38656e6163745f70726f706f73616c08013470726f706f73616c5f6861736824011c543a3a48617368000114696e64657810013c5265666572656e64756d496e6465780016044d01456e61637420612070726f706f73616c2066726f6d2061207265666572656e64756d2e20466f72206e6f77207765206a757374206d616b65207468652077656967687420626520746865206d6178696d756d2e24626c61636b6c69737408013470726f706f73616c5f6861736824011c543a3a4861736800013c6d617962655f7265665f696e6465787902015c4f7074696f6e3c5265666572656e64756d496e6465783e00173c45015065726d616e656e746c7920706c61636520612070726f706f73616c20696e746f2074686520626c61636b6c6973742e20546869732070726576656e74732069742066726f6d2065766572206265696e673c70726f706f73656420616761696e2e00510149662063616c6c6564206f6e206120717565756564207075626c6963206f722065787465726e616c2070726f706f73616c2c207468656e20746869732077696c6c20726573756c7420696e206974206265696e67510172656d6f7665642e2049662074686520607265665f696e6465786020737570706c69656420697320616e20616374697665207265666572656e64756d2077697468207468652070726f706f73616c20686173682c687468656e2069742077696c6c2062652063616e63656c6c65642e00ec546865206469737061746368206f726967696e206f6620746869732063616c6c206d7573742062652060426c61636b6c6973744f726967696e602e00f82d206070726f706f73616c5f68617368603a205468652070726f706f73616c206861736820746f20626c61636b6c697374207065726d616e656e746c792e45012d20607265665f696e646578603a20416e206f6e676f696e67207265666572656e64756d2077686f73652068617368206973206070726f706f73616c5f68617368602c2077686963682077696c6c2062652863616e63656c6c65642e0041015765696768743a20604f28702960202874686f756768206173207468697320697320616e20686967682d70726976696c6567652064697370617463682c20776520617373756d65206974206861732061502020726561736f6e61626c652076616c7565292e3c63616e63656c5f70726f706f73616c04012870726f705f696e646578ad01012450726f70496e64657800181c4852656d6f766520612070726f706f73616c2e000101546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265206043616e63656c50726f706f73616c4f726967696e602e00d02d206070726f705f696e646578603a2054686520696e646578206f66207468652070726f706f73616c20746f2063616e63656c2e00e45765696768743a20604f28702960207768657265206070203d205075626c696350726f70733a3a3c543e3a3a6465636f64655f6c656e282960042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ee1020c4070616c6c65745f64656d6f637261637910766f74652c4163636f756e74566f7465041c42616c616e636501180108205374616e64617264080110766f7465e5020110566f746500011c62616c616e636518011c42616c616e63650000001453706c697408010c61796518011c42616c616e636500010c6e617918011c42616c616e636500010000e5020c4070616c6c65745f64656d6f637261637910766f746510566f74650000040008000000e9020c4070616c6c65745f64656d6f637261637928636f6e76696374696f6e28436f6e76696374696f6e00011c104e6f6e65000000204c6f636b65643178000100204c6f636b65643278000200204c6f636b65643378000300204c6f636b65643478000400204c6f636b65643578000500204c6f636b6564367800060000ed020c4470616c6c65745f636f6c6c6563746976651870616c6c65741043616c6c0804540004490001182c7365745f6d656d626572730c012c6e65775f6d656d62657273dc01445665633c543a3a4163636f756e7449643e0001147072696d65f10201504f7074696f6e3c543a3a4163636f756e7449643e0001246f6c645f636f756e7410012c4d656d626572436f756e74000064805365742074686520636f6c6c6563746976652773206d656d626572736869702e0045012d20606e65775f6d656d62657273603a20546865206e6577206d656d626572206c6973742e204265206e69636520746f2074686520636861696e20616e642070726f7669646520697420736f727465642ee02d20607072696d65603a20546865207072696d65206d656d6265722077686f736520766f74652073657473207468652064656661756c742e59012d20606f6c645f636f756e74603a2054686520757070657220626f756e6420666f72207468652070726576696f7573206e756d626572206f66206d656d6265727320696e2073746f726167652e205573656420666f7250202077656967687420657374696d6174696f6e2e0054526571756972657320726f6f74206f726967696e2e0051014e4f54453a20446f6573206e6f7420656e666f7263652074686520657870656374656420604d61784d656d6265727360206c696d6974206f6e2074686520616d6f756e74206f66206d656d626572732c2062757421012020202020207468652077656967687420657374696d6174696f6e732072656c79206f6e20697420746f20657374696d61746520646973706174636861626c65207765696768742e002823203c7765696768743e24232320576569676874502d20604f284d50202b204e29602077686572653ae020202d20604d60206f6c642d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429e020202d20604e60206e65772d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e646564299820202d206050602070726f706f73616c732d636f756e742028636f64652d626f756e64656429142d2044423a510120202d20312073746f72616765206d75746174696f6e2028636f64656320604f284d296020726561642c20604f284e29602077726974652920666f722072656164696e6720616e642077726974696e67207468652c202020206d656d62657273ec20202d20312073746f7261676520726561642028636f64656320604f285029602920666f722072656164696e67207468652070726f706f73616c73450120202d206050602073746f72616765206d75746174696f6e732028636f64656320604f284d29602920666f72207570646174696e672074686520766f74657320666f7220656163682070726f706f73616c5d0120202d20312073746f726167652077726974652028636f64656320604f283129602920666f722064656c6574696e6720746865206f6c6420607072696d656020616e642073657474696e6720746865206e6577206f6e652c23203c2f7765696768743e1c6578656375746508012070726f706f73616c0902017c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e0001306c656e6774685f626f756e64ad01010c75333200012cf0446973706174636820612070726f706f73616c2066726f6d2061206d656d626572207573696e672074686520604d656d62657260206f726967696e2e00a84f726967696e206d7573742062652061206d656d626572206f662074686520636f6c6c6563746976652e002823203c7765696768743e2423232057656967687455012d20604f284d202b2050296020776865726520604d60206d656d626572732d636f756e742028636f64652d626f756e6465642920616e642060506020636f6d706c6578697479206f66206469737061746368696e673020206070726f706f73616c60d42d2044423a203120726561642028636f64656320604f284d296029202b20444220616363657373206f66206070726f706f73616c60242d2031206576656e742c23203c2f7765696768743e1c70726f706f73650c01247468726573686f6c64ad01012c4d656d626572436f756e7400012070726f706f73616c0902017c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e0001306c656e6774685f626f756e64ad01010c75333200026cf84164642061206e65772070726f706f73616c20746f2065697468657220626520766f746564206f6e206f72206578656375746564206469726563746c792e00845265717569726573207468652073656e64657220746f206265206d656d6265722e004101607468726573686f6c64602064657465726d696e65732077686574686572206070726f706f73616c60206973206578656375746564206469726563746c792028607468726573686f6c64203c20326029546f722070757420757020666f7220766f74696e672e002823203c7765696768743e24232320576569676874ac2d20604f2842202b204d202b2050312960206f7220604f2842202b204d202b20503229602077686572653ae020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429dc20202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429c420202d206272616e6368696e6720697320696e666c75656e63656420627920607468726573686f6c64602077686572653af4202020202d20605031602069732070726f706f73616c20657865637574696f6e20636f6d706c65786974792028607468726573686f6c64203c20326029fc202020202d20605032602069732070726f706f73616c732d636f756e742028636f64652d626f756e646564292028607468726573686f6c64203e3d20326029142d2044423ab420202d20312073746f726167652072656164206069735f6d656d626572602028636f64656320604f284d296029f020202d20312073746f726167652072656164206050726f706f73616c4f663a3a636f6e7461696e735f6b6579602028636f64656320604f2831296029a820202d20444220616363657373657320696e666c75656e63656420627920607468726573686f6c64603a0901202020202d204549544845522073746f7261676520616363657373657320646f6e65206279206070726f706f73616c602028607468726573686f6c64203c20326029b8202020202d204f522070726f706f73616c20696e73657274696f6e2028607468726573686f6c64203c3d20326029d82020202020202d20312073746f72616765206d75746174696f6e206050726f706f73616c73602028636f64656320604f285032296029e42020202020202d20312073746f72616765206d75746174696f6e206050726f706f73616c436f756e74602028636f64656320604f2831296029cc2020202020202d20312073746f72616765207772697465206050726f706f73616c4f66602028636f64656320604f2842296029bc2020202020202d20312073746f726167652077726974652060566f74696e67602028636f64656320604f284d2960292c20202d2031206576656e742c23203c2f7765696768743e10766f74650c012070726f706f73616c24011c543a3a48617368000114696e646578ad01013450726f706f73616c496e64657800011c617070726f7665e80110626f6f6c00033cf041646420616e20617965206f72206e617920766f746520666f72207468652073656e64657220746f2074686520676976656e2070726f706f73616c2e008c5265717569726573207468652073656e64657220746f2062652061206d656d6265722e0049015472616e73616374696f6e20666565732077696c6c2062652077616976656420696620746865206d656d62657220697320766f74696e67206f6e20616e7920706172746963756c61722070726f706f73616c5101666f72207468652066697273742074696d6520616e64207468652063616c6c206973207375636365737366756c2e2053756273657175656e7420766f7465206368616e6765732077696c6c206368617267652061106665652e2823203c7765696768743e2423232057656967687409012d20604f284d296020776865726520604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429142d2044423aac20202d20312073746f72616765207265616420604d656d62657273602028636f64656320604f284d296029b820202d20312073746f72616765206d75746174696f6e2060566f74696e67602028636f64656320604f284d296029242d2031206576656e742c23203c2f7765696768743e14636c6f736510013470726f706f73616c5f6861736824011c543a3a48617368000114696e646578ad01013450726f706f73616c496e64657800015470726f706f73616c5f7765696768745f626f756e64410201185765696768740001306c656e6774685f626f756e64ad01010c7533320004804d01436c6f7365206120766f746520746861742069732065697468657220617070726f7665642c20646973617070726f766564206f722077686f736520766f74696e6720706572696f642068617320656e6465642e0055014d61792062652063616c6c656420627920616e79207369676e6564206163636f756e7420696e206f7264657220746f2066696e69736820766f74696e6720616e6420636c6f7365207468652070726f706f73616c2e00490149662063616c6c6564206265666f72652074686520656e64206f662074686520766f74696e6720706572696f642069742077696c6c206f6e6c7920636c6f73652074686520766f7465206966206974206973bc68617320656e6f75676820766f74657320746f20626520617070726f766564206f7220646973617070726f7665642e00490149662063616c6c65642061667465722074686520656e64206f662074686520766f74696e6720706572696f642061627374656e74696f6e732061726520636f756e7465642061732072656a656374696f6e732501756e6c6573732074686572652069732061207072696d65206d656d6265722073657420616e6420746865207072696d65206d656d626572206361737420616e20617070726f76616c2e00610149662074686520636c6f7365206f7065726174696f6e20636f6d706c65746573207375636365737366756c6c79207769746820646973617070726f76616c2c20746865207472616e73616374696f6e206665652077696c6c5d016265207761697665642e204f746865727769736520657865637574696f6e206f662074686520617070726f766564206f7065726174696f6e2077696c6c206265206368617267656420746f207468652063616c6c65722e0061012b206070726f706f73616c5f7765696768745f626f756e64603a20546865206d6178696d756d20616d6f756e74206f662077656967687420636f6e73756d656420627920657865637574696e672074686520636c6f7365642470726f706f73616c2e61012b20606c656e6774685f626f756e64603a2054686520757070657220626f756e6420666f7220746865206c656e677468206f66207468652070726f706f73616c20696e2073746f726167652e20436865636b65642076696135016073746f726167653a3a726561646020736f206974206973206073697a655f6f663a3a3c7533323e2829203d3d203460206c6172676572207468616e207468652070757265206c656e6774682e002823203c7765696768743e24232320576569676874742d20604f2842202b204d202b205031202b20503229602077686572653ae020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429dc20202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429c820202d20605031602069732074686520636f6d706c6578697479206f66206070726f706f73616c6020707265696d6167652ea420202d20605032602069732070726f706f73616c2d636f756e742028636f64652d626f756e64656429142d2044423a0d01202d20322073746f726167652072656164732028604d656d62657273603a20636f64656320604f284d29602c20605072696d65603a20636f64656320604f28312960295901202d2033206d75746174696f6e73202860566f74696e67603a20636f64656320604f284d29602c206050726f706f73616c4f66603a20636f64656320604f284229602c206050726f706f73616c73603a20636f6465632c202020604f285032296029dc202d20616e79206d75746174696f6e7320646f6e65207768696c6520657865637574696e67206070726f706f73616c6020286050316029402d20757020746f2033206576656e74732c23203c2f7765696768743e4c646973617070726f76655f70726f706f73616c04013470726f706f73616c5f6861736824011c543a3a486173680005385901446973617070726f766520612070726f706f73616c2c20636c6f73652c20616e642072656d6f76652069742066726f6d207468652073797374656d2c207265676172646c657373206f66206974732063757272656e741873746174652e00884d7573742062652063616c6c65642062792074686520526f6f74206f726967696e2e002c506172616d65746572733a1d012a206070726f706f73616c5f68617368603a205468652068617368206f66207468652070726f706f73616c20746861742073686f756c6420626520646973617070726f7665642e002823203c7765696768743edc436f6d706c65786974793a204f285029207768657265205020697320746865206e756d626572206f66206d61782070726f706f73616c73284442205765696768743a482a2052656164733a2050726f706f73616c739c2a205772697465733a20566f74696e672c2050726f706f73616c732c2050726f706f73616c4f662c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ef10204184f7074696f6e04045401000108104e6f6e6500000010536f6d650400000000010000f5020c4470616c6c65745f636f6c6c6563746976651870616c6c65741043616c6c0804540004490001182c7365745f6d656d626572730c012c6e65775f6d656d62657273dc01445665633c543a3a4163636f756e7449643e0001147072696d65f10201504f7074696f6e3c543a3a4163636f756e7449643e0001246f6c645f636f756e7410012c4d656d626572436f756e74000064805365742074686520636f6c6c6563746976652773206d656d626572736869702e0045012d20606e65775f6d656d62657273603a20546865206e6577206d656d626572206c6973742e204265206e69636520746f2074686520636861696e20616e642070726f7669646520697420736f727465642ee02d20607072696d65603a20546865207072696d65206d656d6265722077686f736520766f74652073657473207468652064656661756c742e59012d20606f6c645f636f756e74603a2054686520757070657220626f756e6420666f72207468652070726576696f7573206e756d626572206f66206d656d6265727320696e2073746f726167652e205573656420666f7250202077656967687420657374696d6174696f6e2e0054526571756972657320726f6f74206f726967696e2e0051014e4f54453a20446f6573206e6f7420656e666f7263652074686520657870656374656420604d61784d656d6265727360206c696d6974206f6e2074686520616d6f756e74206f66206d656d626572732c2062757421012020202020207468652077656967687420657374696d6174696f6e732072656c79206f6e20697420746f20657374696d61746520646973706174636861626c65207765696768742e002823203c7765696768743e24232320576569676874502d20604f284d50202b204e29602077686572653ae020202d20604d60206f6c642d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429e020202d20604e60206e65772d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e646564299820202d206050602070726f706f73616c732d636f756e742028636f64652d626f756e64656429142d2044423a510120202d20312073746f72616765206d75746174696f6e2028636f64656320604f284d296020726561642c20604f284e29602077726974652920666f722072656164696e6720616e642077726974696e67207468652c202020206d656d62657273ec20202d20312073746f7261676520726561642028636f64656320604f285029602920666f722072656164696e67207468652070726f706f73616c73450120202d206050602073746f72616765206d75746174696f6e732028636f64656320604f284d29602920666f72207570646174696e672074686520766f74657320666f7220656163682070726f706f73616c5d0120202d20312073746f726167652077726974652028636f64656320604f283129602920666f722064656c6574696e6720746865206f6c6420607072696d656020616e642073657474696e6720746865206e6577206f6e652c23203c2f7765696768743e1c6578656375746508012070726f706f73616c0902017c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e0001306c656e6774685f626f756e64ad01010c75333200012cf0446973706174636820612070726f706f73616c2066726f6d2061206d656d626572207573696e672074686520604d656d62657260206f726967696e2e00a84f726967696e206d7573742062652061206d656d626572206f662074686520636f6c6c6563746976652e002823203c7765696768743e2423232057656967687455012d20604f284d202b2050296020776865726520604d60206d656d626572732d636f756e742028636f64652d626f756e6465642920616e642060506020636f6d706c6578697479206f66206469737061746368696e673020206070726f706f73616c60d42d2044423a203120726561642028636f64656320604f284d296029202b20444220616363657373206f66206070726f706f73616c60242d2031206576656e742c23203c2f7765696768743e1c70726f706f73650c01247468726573686f6c64ad01012c4d656d626572436f756e7400012070726f706f73616c0902017c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e0001306c656e6774685f626f756e64ad01010c75333200026cf84164642061206e65772070726f706f73616c20746f2065697468657220626520766f746564206f6e206f72206578656375746564206469726563746c792e00845265717569726573207468652073656e64657220746f206265206d656d6265722e004101607468726573686f6c64602064657465726d696e65732077686574686572206070726f706f73616c60206973206578656375746564206469726563746c792028607468726573686f6c64203c20326029546f722070757420757020666f7220766f74696e672e002823203c7765696768743e24232320576569676874ac2d20604f2842202b204d202b2050312960206f7220604f2842202b204d202b20503229602077686572653ae020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429dc20202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429c420202d206272616e6368696e6720697320696e666c75656e63656420627920607468726573686f6c64602077686572653af4202020202d20605031602069732070726f706f73616c20657865637574696f6e20636f6d706c65786974792028607468726573686f6c64203c20326029fc202020202d20605032602069732070726f706f73616c732d636f756e742028636f64652d626f756e646564292028607468726573686f6c64203e3d20326029142d2044423ab420202d20312073746f726167652072656164206069735f6d656d626572602028636f64656320604f284d296029f020202d20312073746f726167652072656164206050726f706f73616c4f663a3a636f6e7461696e735f6b6579602028636f64656320604f2831296029a820202d20444220616363657373657320696e666c75656e63656420627920607468726573686f6c64603a0901202020202d204549544845522073746f7261676520616363657373657320646f6e65206279206070726f706f73616c602028607468726573686f6c64203c20326029b8202020202d204f522070726f706f73616c20696e73657274696f6e2028607468726573686f6c64203c3d20326029d82020202020202d20312073746f72616765206d75746174696f6e206050726f706f73616c73602028636f64656320604f285032296029e42020202020202d20312073746f72616765206d75746174696f6e206050726f706f73616c436f756e74602028636f64656320604f2831296029cc2020202020202d20312073746f72616765207772697465206050726f706f73616c4f66602028636f64656320604f2842296029bc2020202020202d20312073746f726167652077726974652060566f74696e67602028636f64656320604f284d2960292c20202d2031206576656e742c23203c2f7765696768743e10766f74650c012070726f706f73616c24011c543a3a48617368000114696e646578ad01013450726f706f73616c496e64657800011c617070726f7665e80110626f6f6c00033cf041646420616e20617965206f72206e617920766f746520666f72207468652073656e64657220746f2074686520676976656e2070726f706f73616c2e008c5265717569726573207468652073656e64657220746f2062652061206d656d6265722e0049015472616e73616374696f6e20666565732077696c6c2062652077616976656420696620746865206d656d62657220697320766f74696e67206f6e20616e7920706172746963756c61722070726f706f73616c5101666f72207468652066697273742074696d6520616e64207468652063616c6c206973207375636365737366756c2e2053756273657175656e7420766f7465206368616e6765732077696c6c206368617267652061106665652e2823203c7765696768743e2423232057656967687409012d20604f284d296020776865726520604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429142d2044423aac20202d20312073746f72616765207265616420604d656d62657273602028636f64656320604f284d296029b820202d20312073746f72616765206d75746174696f6e2060566f74696e67602028636f64656320604f284d296029242d2031206576656e742c23203c2f7765696768743e14636c6f736510013470726f706f73616c5f6861736824011c543a3a48617368000114696e646578ad01013450726f706f73616c496e64657800015470726f706f73616c5f7765696768745f626f756e64410201185765696768740001306c656e6774685f626f756e64ad01010c7533320004804d01436c6f7365206120766f746520746861742069732065697468657220617070726f7665642c20646973617070726f766564206f722077686f736520766f74696e6720706572696f642068617320656e6465642e0055014d61792062652063616c6c656420627920616e79207369676e6564206163636f756e7420696e206f7264657220746f2066696e69736820766f74696e6720616e6420636c6f7365207468652070726f706f73616c2e00490149662063616c6c6564206265666f72652074686520656e64206f662074686520766f74696e6720706572696f642069742077696c6c206f6e6c7920636c6f73652074686520766f7465206966206974206973bc68617320656e6f75676820766f74657320746f20626520617070726f766564206f7220646973617070726f7665642e00490149662063616c6c65642061667465722074686520656e64206f662074686520766f74696e6720706572696f642061627374656e74696f6e732061726520636f756e7465642061732072656a656374696f6e732501756e6c6573732074686572652069732061207072696d65206d656d6265722073657420616e6420746865207072696d65206d656d626572206361737420616e20617070726f76616c2e00610149662074686520636c6f7365206f7065726174696f6e20636f6d706c65746573207375636365737366756c6c79207769746820646973617070726f76616c2c20746865207472616e73616374696f6e206665652077696c6c5d016265207761697665642e204f746865727769736520657865637574696f6e206f662074686520617070726f766564206f7065726174696f6e2077696c6c206265206368617267656420746f207468652063616c6c65722e0061012b206070726f706f73616c5f7765696768745f626f756e64603a20546865206d6178696d756d20616d6f756e74206f662077656967687420636f6e73756d656420627920657865637574696e672074686520636c6f7365642470726f706f73616c2e61012b20606c656e6774685f626f756e64603a2054686520757070657220626f756e6420666f7220746865206c656e677468206f66207468652070726f706f73616c20696e2073746f726167652e20436865636b65642076696135016073746f726167653a3a726561646020736f206974206973206073697a655f6f663a3a3c7533323e2829203d3d203460206c6172676572207468616e207468652070757265206c656e6774682e002823203c7765696768743e24232320576569676874742d20604f2842202b204d202b205031202b20503229602077686572653ae020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429dc20202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429c820202d20605031602069732074686520636f6d706c6578697479206f66206070726f706f73616c6020707265696d6167652ea420202d20605032602069732070726f706f73616c2d636f756e742028636f64652d626f756e64656429142d2044423a0d01202d20322073746f726167652072656164732028604d656d62657273603a20636f64656320604f284d29602c20605072696d65603a20636f64656320604f28312960295901202d2033206d75746174696f6e73202860566f74696e67603a20636f64656320604f284d29602c206050726f706f73616c4f66603a20636f64656320604f284229602c206050726f706f73616c73603a20636f6465632c202020604f285032296029dc202d20616e79206d75746174696f6e7320646f6e65207768696c6520657865637574696e67206070726f706f73616c6020286050316029402d20757020746f2033206576656e74732c23203c2f7765696768743e4c646973617070726f76655f70726f706f73616c04013470726f706f73616c5f6861736824011c543a3a486173680005385901446973617070726f766520612070726f706f73616c2c20636c6f73652c20616e642072656d6f76652069742066726f6d207468652073797374656d2c207265676172646c657373206f66206974732063757272656e741873746174652e00884d7573742062652063616c6c65642062792074686520526f6f74206f726967696e2e002c506172616d65746572733a1d012a206070726f706f73616c5f68617368603a205468652068617368206f66207468652070726f706f73616c20746861742073686f756c6420626520646973617070726f7665642e002823203c7765696768743edc436f6d706c65786974793a204f285029207768657265205020697320746865206e756d626572206f66206d61782070726f706f73616c73284442205765696768743a482a2052656164733a2050726f706f73616c739c2a205772697465733a20566f74696e672c2050726f706f73616c732c2050726f706f73616c4f662c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ef9020c6470616c6c65745f656c656374696f6e735f70687261676d656e1870616c6c65741043616c6c04045400011810766f7465080114766f746573dc01445665633c543a3a4163636f756e7449643e00011476616c7565cc013042616c616e63654f663c543e00005c5901566f746520666f72206120736574206f662063616e6469646174657320666f7220746865207570636f6d696e6720726f756e64206f6620656c656374696f6e2e20546869732063616e2062652063616c6c656420746fe07365742074686520696e697469616c20766f7465732c206f722075706461746520616c7265616479206578697374696e6720766f7465732e005d0155706f6e20696e697469616c20766f74696e672c206076616c75656020756e697473206f66206077686f6027732062616c616e6365206973206c6f636b656420616e642061206465706f73697420616d6f756e742069734d0172657365727665642e20546865206465706f736974206973206261736564206f6e20746865206e756d626572206f6620766f74657320616e642063616e2062652075706461746564206f7665722074696d652e004c5468652060766f746573602073686f756c643a4420202d206e6f7420626520656d7074792e550120202d206265206c657373207468616e20746865206e756d626572206f6620706f737369626c652063616e646964617465732e204e6f7465207468617420616c6c2063757272656e74206d656d6265727320616e6411012020202072756e6e6572732d75702061726520616c736f206175746f6d61746963616c6c792063616e6469646174657320666f7220746865206e65787420726f756e642e004d014966206076616c756560206973206d6f7265207468616e206077686f60277320746f74616c2062616c616e63652c207468656e20746865206d6178696d756d206f66207468652074776f20697320757365642e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e65642e002c232323205761726e696e6700550149742069732074686520726573706f6e736962696c697479206f66207468652063616c6c657220746f202a2a4e4f542a2a20706c61636520616c6c206f662074686569722062616c616e636520696e746f20746865a86c6f636b20616e64206b65657020736f6d6520666f722066757274686572206f7065726174696f6e732e002823203c7765696768743e5101576520617373756d6520746865206d6178696d756d2077656967687420616d6f6e6720616c6c20332063617365733a20766f74655f657175616c2c20766f74655f6d6f726520616e6420766f74655f6c6573732e2c23203c2f7765696768743e3072656d6f76655f766f7465720001146c52656d6f766520606f726967696e60206173206120766f7465722e00b8546869732072656d6f76657320746865206c6f636b20616e642072657475726e7320746865206465706f7369742e00fc546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e656420616e64206265206120766f7465722e407375626d69745f63616e64696461637904013c63616e6469646174655f636f756e74ad01010c75333200023c11015375626d6974206f6e6573656c6620666f722063616e6469646163792e204120666978656420616d6f756e74206f66206465706f736974206973207265636f726465642e005d01416c6c2063616e64696461746573206172652077697065642061742074686520656e64206f6620746865207465726d2e205468657920656974686572206265636f6d652061206d656d6265722f72756e6e65722d75702ccc6f72206c65617665207468652073797374656d207768696c65207468656972206465706f73697420697320736c61736865642e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e65642e002c232323205761726e696e67005d014576656e20696620612063616e64696461746520656e6473207570206265696e672061206d656d6265722c2074686579206d7573742063616c6c205b6043616c6c3a3a72656e6f756e63655f63616e646964616379605d5901746f20676574207468656972206465706f736974206261636b2e204c6f73696e67207468652073706f7420696e20616e20656c656374696f6e2077696c6c20616c77617973206c65616420746f206120736c6173682e002823203c7765696768743e0901546865206e756d626572206f662063757272656e742063616e64696461746573206d7573742062652070726f7669646564206173207769746e65737320646174612e2c23203c2f7765696768743e4872656e6f756e63655f63616e64696461637904012872656e6f756e63696e67fd02012852656e6f756e63696e670003484d0152656e6f756e6365206f6e65277320696e74656e74696f6e20746f20626520612063616e64696461746520666f7220746865206e65787420656c656374696f6e20726f756e642e203320706f74656e7469616c3c6f7574636f6d65732065786973743a0049012d20606f726967696e6020697320612063616e64696461746520616e64206e6f7420656c656374656420696e20616e79207365742e20496e207468697320636173652c20746865206465706f736974206973f02020756e72657365727665642c2072657475726e656420616e64206f726967696e2069732072656d6f76656420617320612063616e6469646174652e61012d20606f726967696e6020697320612063757272656e742072756e6e65722d75702e20496e207468697320636173652c20746865206465706f73697420697320756e72657365727665642c2072657475726e656420616e648c20206f726967696e2069732072656d6f76656420617320612072756e6e65722d75702e55012d20606f726967696e6020697320612063757272656e74206d656d6265722e20496e207468697320636173652c20746865206465706f73697420697320756e726573657276656420616e64206f726967696e2069735501202072656d6f7665642061732061206d656d6265722c20636f6e73657175656e746c79206e6f74206265696e6720612063616e64696461746520666f7220746865206e65787420726f756e6420616e796d6f72652e6101202053696d696c617220746f205b6072656d6f76655f6d656d626572605d2853656c663a3a72656d6f76655f6d656d626572292c206966207265706c6163656d656e742072756e6e657273206578697374732c20746865795901202061726520696d6d6564696174656c7920757365642e20496620746865207072696d652069732072656e6f756e63696e672c207468656e206e6f207072696d652077696c6c20657869737420756e74696c207468653420206e65787420726f756e642e004501546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e65642c20616e642068617665206f6e65206f66207468652061626f766520726f6c65732e002823203c7765696768743ee05468652074797065206f662072656e6f756e63696e67206d7573742062652070726f7669646564206173207769746e65737320646174612e2c23203c2f7765696768743e3472656d6f76655f6d656d62657208010c77686f4d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500013c6861735f7265706c6163656d656e74e80110626f6f6c000438590152656d6f7665206120706172746963756c6172206d656d6265722066726f6d20746865207365742e20546869732069732065666665637469766520696d6d6564696174656c7920616e642074686520626f6e64206f667c746865206f7574676f696e67206d656d62657220697320736c61736865642e005501496620612072756e6e65722d757020697320617661696c61626c652c207468656e2074686520626573742072756e6e65722d75702077696c6c2062652072656d6f76656420616e64207265706c6163657320746865fc6f7574676f696e67206d656d6265722e204f74686572776973652c2061206e65772070687261676d656e20656c656374696f6e20697320737461727465642e00b8546865206469737061746368206f726967696e206f6620746869732063616c6c206d75737420626520726f6f742e0041014e6f74652074686174207468697320646f6573206e6f7420616666656374207468652064657369676e6174656420626c6f636b206e756d626572206f6620746865206e65787420656c656374696f6e2e002823203c7765696768743e5101496620776520686176652061207265706c6163656d656e742c20776520757365206120736d616c6c207765696768742e20456c73652c2073696e63652074686973206973206120726f6f742063616c6c20616e64d077696c6c20676f20696e746f2070687261676d656e2c20776520617373756d652066756c6c20626c6f636b20666f72206e6f772e2c23203c2f7765696768743e50636c65616e5f646566756e63745f766f746572730801286e756d5f766f7465727310010c75333200012c6e756d5f646566756e637410010c7533320005284501436c65616e20616c6c20766f746572732077686f2061726520646566756e63742028692e652e207468657920646f206e6f7420736572766520616e7920707572706f736520617420616c6c292e20546865ac6465706f736974206f66207468652072656d6f76656420766f74657273206172652072657475726e65642e0001015468697320697320616e20726f6f742066756e6374696f6e20746f2062652075736564206f6e6c7920666f7220636c65616e696e67207468652073746174652e00b8546865206469737061746368206f726967696e206f6620746869732063616c6c206d75737420626520726f6f742e002823203c7765696768743e5d0154686520746f74616c206e756d626572206f6620766f7465727320616e642074686f736520746861742061726520646566756e6374206d7573742062652070726f7669646564206173207769746e65737320646174612e2c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632efd02086470616c6c65745f656c656374696f6e735f70687261676d656e2852656e6f756e63696e6700010c184d656d6265720000002052756e6e657255700001002443616e6469646174650400ad01010c7533320002000001030c4470616c6c65745f6d656d626572736869701870616c6c65741043616c6c08045400044900011c286164645f6d656d62657204010c77686f000130543a3a4163636f756e74496400000c784164642061206d656d626572206077686f6020746f20746865207365742e009c4d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a4164644f726967696e602e3472656d6f76655f6d656d62657204010c77686f000130543a3a4163636f756e74496400010c8c52656d6f76652061206d656d626572206077686f602066726f6d20746865207365742e00a84d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a52656d6f76654f726967696e602e2c737761705f6d656d62657208011872656d6f7665000130543a3a4163636f756e74496400010c616464000130543a3a4163636f756e744964000214bc53776170206f7574206f6e65206d656d626572206072656d6f76656020666f7220616e6f746865722060616464602e00a04d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a537761704f726967696e602e000d015072696d65206d656d62657273686970206973202a6e6f742a207061737365642066726f6d206072656d6f76656020746f2060616464602c20696620657874616e742e3472657365745f6d656d6265727304011c6d656d62657273dc01445665633c543a3a4163636f756e7449643e00031055014368616e676520746865206d656d6265727368697020746f2061206e6577207365742c20646973726567617264696e6720746865206578697374696e67206d656d626572736869702e204265206e69636520616e64687061737320606d656d6265727360207072652d736f727465642e00a44d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a52657365744f726967696e602e286368616e67655f6b657904010c6e6577000130543a3a4163636f756e744964000414d453776170206f7574207468652073656e64696e67206d656d62657220666f7220736f6d65206f74686572206b657920606e6577602e00f04d6179206f6e6c792062652063616c6c65642066726f6d20605369676e656460206f726967696e206f6620612063757272656e74206d656d6265722e001d015072696d65206d656d62657273686970206973207061737365642066726f6d20746865206f726967696e206163636f756e7420746f20606e6577602c20696620657874616e742e247365745f7072696d6504010c77686f000130543a3a4163636f756e74496400050cbc53657420746865207072696d65206d656d6265722e204d75737420626520612063757272656e74206d656d6265722e00a44d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a5072696d654f726967696e602e2c636c6561725f7072696d6500060c9452656d6f766520746865207072696d65206d656d626572206966206974206578697374732e00a44d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a5072696d654f726967696e602e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e05030c3c70616c6c65745f74726561737572791870616c6c65741043616c6c08045400044900010c3470726f706f73655f7370656e6408011476616c7565cc013c42616c616e63654f663c542c20493e00012c62656e65666963696172794d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365000024290150757420666f727761726420612073756767657374696f6e20666f72207370656e64696e672e2041206465706f7369742070726f706f7274696f6e616c20746f207468652076616c75653101697320726573657276656420616e6420736c6173686564206966207468652070726f706f73616c2069732072656a65637465642e2049742069732072657475726e6564206f6e6365207468655070726f706f73616c20697320617761726465642e002823203c7765696768743e482d20436f6d706c65786974793a204f283129b02d20446252656164733a206050726f706f73616c436f756e74602c20606f726967696e206163636f756e7460e82d2044625772697465733a206050726f706f73616c436f756e74602c206050726f706f73616c73602c20606f726967696e206163636f756e74602c23203c2f7765696768743e3c72656a6563745f70726f706f73616c04012c70726f706f73616c5f6964ad01013450726f706f73616c496e646578000124f852656a65637420612070726f706f736564207370656e642e20546865206f726967696e616c206465706f7369742077696c6c20626520736c61736865642e00a84d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a52656a6563744f726967696e602e002823203c7765696768743e482d20436f6d706c65786974793a204f283129cc2d20446252656164733a206050726f706f73616c73602c206072656a65637465642070726f706f736572206163636f756e7460d02d2044625772697465733a206050726f706f73616c73602c206072656a65637465642070726f706f736572206163636f756e74602c23203c2f7765696768743e40617070726f76655f70726f706f73616c04012c70726f706f73616c5f6964ad01013450726f706f73616c496e6465780002285901417070726f766520612070726f706f73616c2e2041742061206c617465722074696d652c207468652070726f706f73616c2077696c6c20626520616c6c6f636174656420746f207468652062656e6566696369617279a8616e6420746865206f726967696e616c206465706f7369742077696c6c2062652072657475726e65642e00ac4d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a417070726f76654f726967696e602e002823203c7765696768743e4c2d20436f6d706c65786974793a204f2831292e8c2d20446252656164733a206050726f706f73616c73602c2060417070726f76616c7360582d20446257726974653a2060417070726f76616c73602c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e0903105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e18636c61696d731870616c6c65741043616c6c04045400011414636c61696d08011064657374000130543a3a4163636f756e744964000148657468657265756d5f7369676e61747572650d03013845636473615369676e6174757265000060884d616b65206120636c61696d20746f20636f6c6c65637420796f757220444f54732e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f4e6f6e655f2e0050556e7369676e65642056616c69646174696f6e3a0501412063616c6c20746f20636c61696d206973206465656d65642076616c696420696620746865207369676e61747572652070726f7669646564206d6174636865737c746865206578706563746564207369676e6564206d657373616765206f663a00683e20457468657265756d205369676e6564204d6573736167653a943e2028636f6e666967757265642070726566697820737472696e672928616464726573732900a4616e6420606164647265737360206d6174636865732074686520606465737460206163636f756e742e002c506172616d65746572733ad82d206064657374603a205468652064657374696e6174696f6e206163636f756e7420746f207061796f75742074686520636c61696d2e0d012d2060657468657265756d5f7369676e6174757265603a20546865207369676e6174757265206f6620616e20657468657265756d207369676e6564206d6573736167659c2020206d61746368696e672074686520666f726d6174206465736372696265642061626f76652e00203c7765696768743efc54686520776569676874206f6620746869732063616c6c20697320696e76617269616e74206f7665722074686520696e70757420706172616d65746572732ee057656967687420696e636c75646573206c6f67696320746f2076616c696461746520756e7369676e65642060636c61696d602063616c6c2e0058546f74616c20436f6d706c65786974793a204f283129243c2f7765696768743e286d696e745f636c61696d10010c77686f0901013c457468657265756d4164647265737300011476616c756518013042616c616e63654f663c543e00014076657374696e675f7363686564756c65150301d04f7074696f6e3c2842616c616e63654f663c543e2c2042616c616e63654f663c543e2c20543a3a426c6f636b4e756d626572293e00012473746174656d656e741d0301544f7074696f6e3c53746174656d656e744b696e643e00013c844d696e742061206e657720636c61696d20746f20636f6c6c65637420444f54732e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e002c506172616d65746572733af02d206077686f603a2054686520457468657265756d206164647265737320616c6c6f77656420746f20636f6c6c656374207468697320636c61696d2ecc2d206076616c7565603a20546865206e756d626572206f6620444f547320746861742077696c6c20626520636c61696d65642e09012d206076657374696e675f7363686564756c65603a20416e206f7074696f6e616c2076657374696e67207363686564756c6520666f7220746865736520444f54732e00203c7765696768743efc54686520776569676874206f6620746869732063616c6c20697320696e76617269616e74206f7665722074686520696e70757420706172616d65746572732e1d01576520617373756d6520776f7273742063617365207468617420626f74682076657374696e6720616e642073746174656d656e74206973206265696e6720696e7365727465642e0058546f74616c20436f6d706c65786974793a204f283129243c2f7765696768743e30636c61696d5f6174746573740c011064657374000130543a3a4163636f756e744964000148657468657265756d5f7369676e61747572650d03013845636473615369676e617475726500012473746174656d656e7428011c5665633c75383e000268e44d616b65206120636c61696d20746f20636f6c6c65637420796f757220444f5473206279207369676e696e6720612073746174656d656e742e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f4e6f6e655f2e0050556e7369676e65642056616c69646174696f6e3a2901412063616c6c20746f2060636c61696d5f61747465737460206973206465656d65642076616c696420696620746865207369676e61747572652070726f7669646564206d6174636865737c746865206578706563746564207369676e6564206d657373616765206f663a00683e20457468657265756d205369676e6564204d6573736167653ac03e2028636f6e666967757265642070726566697820737472696e67292861646472657373292873746174656d656e7429004901616e6420606164647265737360206d6174636865732074686520606465737460206163636f756e743b20746865206073746174656d656e7460206d757374206d617463682074686174207768696368206973c06578706563746564206163636f7264696e6720746f20796f757220707572636861736520617272616e67656d656e742e002c506172616d65746572733ad82d206064657374603a205468652064657374696e6174696f6e206163636f756e7420746f207061796f75742074686520636c61696d2e0d012d2060657468657265756d5f7369676e6174757265603a20546865207369676e6174757265206f6620616e20657468657265756d207369676e6564206d6573736167659c2020206d61746368696e672074686520666f726d6174206465736372696265642061626f76652e65012d206073746174656d656e74603a20546865206964656e74697479206f66207468652073746174656d656e74207768696368206973206265696e6720617474657374656420746f20696e20746865207369676e61747572652e00203c7765696768743efc54686520776569676874206f6620746869732063616c6c20697320696e76617269616e74206f7665722074686520696e70757420706172616d65746572732efc57656967687420696e636c75646573206c6f67696320746f2076616c696461746520756e7369676e65642060636c61696d5f617474657374602063616c6c2e0058546f74616c20436f6d706c65786974793a204f283129243c2f7765696768743e1861747465737404012473746174656d656e7428011c5665633c75383e000344f441747465737420746f20612073746174656d656e742c206e656564656420746f2066696e616c697a652074686520636c61696d732070726f636573732e0065015741524e494e473a20496e73656375726520756e6c65737320796f757220636861696e20696e636c75646573206050726576616c69646174654174746573747360206173206120605369676e6564457874656e73696f6e602e0050556e7369676e65642056616c69646174696f6e3a2901412063616c6c20746f20617474657374206973206465656d65642076616c6964206966207468652073656e6465722068617320612060507265636c61696d602072656769737465726564f4616e642070726f76696465732061206073746174656d656e746020776869636820697320657870656374656420666f7220746865206163636f756e742e002c506172616d65746572733a65012d206073746174656d656e74603a20546865206964656e74697479206f66207468652073746174656d656e74207768696368206973206265696e6720617474657374656420746f20696e20746865207369676e61747572652e00203c7765696768743efc54686520776569676874206f6620746869732063616c6c20697320696e76617269616e74206f7665722074686520696e70757420706172616d65746572732ef057656967687420696e636c75646573206c6f67696320746f20646f207072652d76616c69646174696f6e206f6e2060617474657374602063616c6c2e0058546f74616c20436f6d706c65786974793a204f283129243c2f7765696768743e286d6f76655f636c61696d0c010c6f6c640901013c457468657265756d4164647265737300010c6e65770901013c457468657265756d416464726573730001386d617962655f707265636c61696df10201504f7074696f6e3c543a3a4163636f756e7449643e000400042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e0d030c5c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e18636c61696d733845636473615369676e617475726500000400110301205b75383b2036355d00001103000003410000000800150304184f7074696f6e0404540119030108104e6f6e6500000010536f6d6504001903000001000019030000040c181810001d0304184f7074696f6e0404540121030108104e6f6e6500000010536f6d6504002103000001000021030c5c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e18636c61696d733453746174656d656e744b696e640001081c526567756c617200000010536166740001000025030c3870616c6c65745f76657374696e671870616c6c65741043616c6c0404540001141076657374000034b8556e6c6f636b20616e79207665737465642066756e6473206f66207468652073656e646572206163636f756e742e005d01546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652066756e6473207374696c6c646c6f636b656420756e64657220746869732070616c6c65742e00d0456d69747320656974686572206056657374696e67436f6d706c6574656460206f72206056657374696e6755706461746564602e002823203c7765696768743e242d20604f283129602e742d2044625765696768743a20322052656164732c203220577269746573f8202020202d2052656164733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c205b53656e646572204163636f756e745dfc202020202d205772697465733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c205b53656e646572204163636f756e745d2c23203c2f7765696768743e28766573745f6f746865720401187461726765744d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500013cb8556e6c6f636b20616e79207665737465642066756e6473206f662061206074617267657460206163636f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0051012d2060746172676574603a20546865206163636f756e742077686f7365207665737465642066756e64732073686f756c6420626520756e6c6f636b65642e204d75737420686176652066756e6473207374696c6c646c6f636b656420756e64657220746869732070616c6c65742e00d0456d69747320656974686572206056657374696e67436f6d706c6574656460206f72206056657374696e6755706461746564602e002823203c7765696768743e242d20604f283129602e742d2044625765696768743a20332052656164732c203320577269746573f0202020202d2052656164733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e74f4202020202d205772697465733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e742c23203c2f7765696768743e3c7665737465645f7472616e736665720801187461726765744d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001207363686564756c65290301a456657374696e67496e666f3c42616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265723e00024464437265617465206120766573746564207472616e736665722e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e00cc2d2060746172676574603a20546865206163636f756e7420726563656976696e6720746865207665737465642066756e64732ef02d20607363686564756c65603a205468652076657374696e67207363686564756c6520617474616368656420746f20746865207472616e736665722e005c456d697473206056657374696e6743726561746564602e00fc4e4f54453a20546869732077696c6c20756e6c6f636b20616c6c207363686564756c6573207468726f756768207468652063757272656e7420626c6f636b2e002823203c7765696768743e242d20604f283129602e742d2044625765696768743a20332052656164732c2033205772697465733901202020202d2052656164733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e742c205b53656e646572204163636f756e745d3d01202020202d205772697465733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e742c205b53656e646572204163636f756e745d2c23203c2f7765696768743e54666f7263655f7665737465645f7472616e736665720c0118736f757263654d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001187461726765744d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001207363686564756c65290301a456657374696e67496e666f3c42616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265723e00034860466f726365206120766573746564207472616e736665722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e00e82d2060736f75726365603a20546865206163636f756e742077686f73652066756e64732073686f756c64206265207472616e736665727265642e11012d2060746172676574603a20546865206163636f756e7420746861742073686f756c64206265207472616e7366657272656420746865207665737465642066756e64732ef02d20607363686564756c65603a205468652076657374696e67207363686564756c6520617474616368656420746f20746865207472616e736665722e005c456d697473206056657374696e6743726561746564602e00fc4e4f54453a20546869732077696c6c20756e6c6f636b20616c6c207363686564756c6573207468726f756768207468652063757272656e7420626c6f636b2e002823203c7765696768743e242d20604f283129602e742d2044625765696768743a20342052656164732c2034205772697465733101202020202d2052656164733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e742c20536f75726365204163636f756e743501202020202d205772697465733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e742c20536f75726365204163636f756e742c23203c2f7765696768743e3c6d657267655f7363686564756c657308013c7363686564756c65315f696e64657810010c75333200013c7363686564756c65325f696e64657810010c7533320004545d014d657267652074776f2076657374696e67207363686564756c657320746f6765746865722c206372656174696e672061206e65772076657374696e67207363686564756c65207468617420756e6c6f636b73206f7665725501746865206869676865737420706f737369626c6520737461727420616e6420656e6420626c6f636b732e20496620626f7468207363686564756c6573206861766520616c7265616479207374617274656420746865590163757272656e7420626c6f636b2077696c6c206265207573656420617320746865207363686564756c652073746172743b207769746820746865206361766561742074686174206966206f6e65207363686564756c655d0169732066696e6973686564206279207468652063757272656e7420626c6f636b2c20746865206f746865722077696c6c206265207472656174656420617320746865206e6577206d6572676564207363686564756c652c2c756e6d6f6469666965642e00f84e4f54453a20496620607363686564756c65315f696e646578203d3d207363686564756c65325f696e6465786020746869732069732061206e6f2d6f702e41014e4f54453a20546869732077696c6c20756e6c6f636b20616c6c207363686564756c6573207468726f756768207468652063757272656e7420626c6f636b207072696f7220746f206d657267696e672e61014e4f54453a20496620626f7468207363686564756c6573206861766520656e646564206279207468652063757272656e7420626c6f636b2c206e6f206e6577207363686564756c652077696c6c206265206372656174656464616e6420626f74682077696c6c2062652072656d6f7665642e006c4d6572676564207363686564756c6520617474726962757465733a35012d20607374617274696e675f626c6f636b603a20604d4158287363686564756c65312e7374617274696e675f626c6f636b2c207363686564756c6564322e7374617274696e675f626c6f636b2c48202063757272656e745f626c6f636b29602e21012d2060656e64696e675f626c6f636b603a20604d4158287363686564756c65312e656e64696e675f626c6f636b2c207363686564756c65322e656e64696e675f626c6f636b29602e59012d20606c6f636b6564603a20607363686564756c65312e6c6f636b65645f61742863757272656e745f626c6f636b29202b207363686564756c65322e6c6f636b65645f61742863757272656e745f626c6f636b29602e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e00e82d20607363686564756c65315f696e646578603a20696e646578206f6620746865206669727374207363686564756c6520746f206d657267652eec2d20607363686564756c65325f696e646578603a20696e646578206f6620746865207365636f6e64207363686564756c6520746f206d657267652e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e29030c3870616c6c65745f76657374696e673076657374696e675f696e666f2c56657374696e67496e666f081c42616c616e636501182c426c6f636b4e756d6265720110000c01186c6f636b656418011c42616c616e63650001247065725f626c6f636b18011c42616c616e63650001387374617274696e675f626c6f636b10012c426c6f636b4e756d62657200002d030c3870616c6c65745f7574696c6974791870616c6c65741043616c6c04045400010c14626174636804011463616c6c73310301605665633c3c5420617320436f6e6669673e3a3a43616c6c3e00004c7c53656e642061206261746368206f662064697370617463682063616c6c732e00784d61792062652063616c6c65642066726f6d20616e79206f726967696e2e005d012d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f74390120206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e005d014966206f726967696e20697320726f6f74207468656e2063616c6c2061726520646973706174636820776974686f757420636865636b696e67206f726967696e2066696c7465722e20285468697320696e636c75646573c8627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e002823203c7765696768743e01012d20436f6d706c65786974793a204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e2c23203c2f7765696768743e005501546869732077696c6c2072657475726e20604f6b6020696e20616c6c2063697263756d7374616e6365732e20546f2064657465726d696e65207468652073756363657373206f66207468652062617463682c20616e31016576656e74206973206465706f73697465642e20496620612063616c6c206661696c656420616e64207468652062617463682077617320696e7465727275707465642c207468656e207468655501604261746368496e74657272757074656460206576656e74206973206465706f73697465642c20616c6f6e67207769746820746865206e756d626572206f66207375636365737366756c2063616c6c73206d6164654d01616e6420746865206572726f72206f6620746865206661696c65642063616c6c2e20496620616c6c2077657265207375636365737366756c2c207468656e2074686520604261746368436f6d706c65746564604c6576656e74206973206465706f73697465642e3461735f64657269766174697665080114696e6465782501010c75313600011063616c6c09020160426f783c3c5420617320436f6e6669673e3a3a43616c6c3e000134dc53656e6420612063616c6c207468726f75676820616e20696e64657865642070736575646f6e796d206f66207468652073656e6465722e00550146696c7465722066726f6d206f726967696e206172652070617373656420616c6f6e672e205468652063616c6c2077696c6c2062652064697370617463686564207769746820616e206f726967696e207768696368bc757365207468652073616d652066696c74657220617320746865206f726967696e206f6620746869732063616c6c2e0045014e4f54453a20496620796f75206e65656420746f20656e73757265207468617420616e79206163636f756e742d62617365642066696c746572696e67206973206e6f7420686f6e6f7265642028692e652e61016265636175736520796f7520657870656374206070726f78796020746f2068617665206265656e2075736564207072696f7220696e207468652063616c6c20737461636b20616e6420796f7520646f206e6f742077616e7451017468652063616c6c207265737472696374696f6e7320746f206170706c7920746f20616e79207375622d6163636f756e7473292c207468656e20757365206061735f6d756c74695f7468726573686f6c645f31607c696e20746865204d756c74697369672070616c6c657420696e73746561642e00f44e4f54453a205072696f7220746f2076657273696f6e202a31322c2074686973207761732063616c6c6564206061735f6c696d697465645f737562602e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e2462617463685f616c6c04011463616c6c73310301605665633c3c5420617320436f6e6669673e3a3a43616c6c3e000238ec53656e642061206261746368206f662064697370617463682063616c6c7320616e642061746f6d6963616c6c792065786563757465207468656d2e21015468652077686f6c65207472616e73616374696f6e2077696c6c20726f6c6c6261636b20616e64206661696c20696620616e79206f66207468652063616c6c73206661696c65642e00784d61792062652063616c6c65642066726f6d20616e79206f726967696e2e005d012d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f74390120206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e005d014966206f726967696e20697320726f6f74207468656e2063616c6c2061726520646973706174636820776974686f757420636865636b696e67206f726967696e2066696c7465722e20285468697320696e636c75646573c8627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e002823203c7765696768743e01012d20436f6d706c65786974793a204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e2c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e310300000209020035030c3c70616c6c65745f6964656e746974791870616c6c65741043616c6c04045400013c346164645f72656769737472617204011c6163636f756e74000130543a3a4163636f756e7449640000347841646420612072656769737472617220746f207468652073797374656d2e00fc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652060543a3a5265676973747261724f726967696e602e00a82d20606163636f756e74603a20746865206163636f756e74206f6620746865207265676973747261722e0094456d6974732060526567697374726172416464656460206966207375636365737366756c2e002823203c7765696768743e25012d20604f2852296020776865726520605260207265676973747261722d636f756e742028676f7665726e616e63652d626f756e64656420616e6420636f64652d626f756e646564292e982d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28522960292e302d204f6e65206576656e742e2c23203c2f7765696768743e307365745f6964656e74697479040110696e666f390301a4426f783c4964656e74697479496e666f3c543a3a4d61784164646974696f6e616c4669656c64733e3e00014c290153657420616e206163636f756e742773206964656e7469747920696e666f726d6174696f6e20616e6420726573657276652074686520617070726f707269617465206465706f7369742e005501496620746865206163636f756e7420616c726561647920686173206964656e7469747920696e666f726d6174696f6e2c20746865206465706f7369742069732074616b656e2061732070617274207061796d656e7450666f7220746865206e6577206465706f7369742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e008c2d2060696e666f603a20546865206964656e7469747920696e666f726d6174696f6e2e0088456d69747320604964656e7469747953657460206966207375636365737366756c2e002823203c7765696768743e442d20604f2858202b205827202b205229601d0120202d20776865726520605860206164646974696f6e616c2d6669656c642d636f756e7420286465706f7369742d626f756e64656420616e6420636f64652d626f756e64656429e020202d20776865726520605260206a756467656d656e74732d636f756e7420287265676973747261722d636f756e742d626f756e64656429802d204f6e652062616c616e63652072657365727665206f7065726174696f6e2e21012d204f6e652073746f72616765206d75746174696f6e2028636f6465632d7265616420604f285827202b205229602c20636f6465632d777269746520604f2858202b20522960292e302d204f6e65206576656e742e2c23203c2f7765696768743e207365745f7375627304011073756273c10301645665633c28543a3a4163636f756e7449642c2044617461293e0002548c53657420746865207375622d6163636f756e7473206f66207468652073656e6465722e0055015061796d656e743a20416e79206167677265676174652062616c616e63652072657365727665642062792070726576696f757320607365745f73756273602063616c6c732077696c6c2062652072657475726e65642d01616e6420616e20616d6f756e7420605375624163636f756e744465706f736974602077696c6c20626520726573657276656420666f722065616368206974656d20696e206073756273602e006101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d757374206861766520612072656769737465726564246964656e746974792e00b02d206073756273603a20546865206964656e74697479277320286e657729207375622d6163636f756e74732e002823203c7765696768743e302d20604f2850202b20532960e420202d20776865726520605060206f6c642d737562732d636f756e742028686172642d20616e64206465706f7369742d626f756e646564292ed420202d2077686572652060536020737562732d636f756e742028686172642d20616e64206465706f7369742d626f756e646564292e842d204174206d6f7374206f6e652062616c616e6365206f7065726174696f6e732e142d2044423adc20202d206050202b2053602073746f72616765206d75746174696f6e732028636f64656320636f6d706c657869747920604f2831296029bc20202d204f6e652073746f7261676520726561642028636f64656320636f6d706c657869747920604f28502960292ec020202d204f6e652073746f726167652077726974652028636f64656320636f6d706c657869747920604f28532960292ed020202d204f6e652073746f726167652d6578697374732028604964656e746974794f663a3a636f6e7461696e735f6b657960292e2c23203c2f7765696768743e38636c6561725f6964656e746974790003483901436c65617220616e206163636f756e742773206964656e7469747920696e666f20616e6420616c6c207375622d6163636f756e747320616e642072657475726e20616c6c206465706f736974732e00ec5061796d656e743a20416c6c2072657365727665642062616c616e636573206f6e20746865206163636f756e74206172652072657475726e65642e006101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d757374206861766520612072656769737465726564246964656e746974792e0098456d69747320604964656e74697479436c656172656460206966207375636365737366756c2e002823203c7765696768743e402d20604f2852202b2053202b20582960cc20202d20776865726520605260207265676973747261722d636f756e742028676f7665726e616e63652d626f756e646564292ed420202d2077686572652060536020737562732d636f756e742028686172642d20616e64206465706f7369742d626f756e646564292e210120202d20776865726520605860206164646974696f6e616c2d6669656c642d636f756e7420286465706f7369742d626f756e64656420616e6420636f64652d626f756e646564292e882d204f6e652062616c616e63652d756e72657365727665206f7065726174696f6e2ec82d206032602073746f7261676520726561647320616e64206053202b2032602073746f726167652064656c6574696f6e732e302d204f6e65206576656e742e2c23203c2f7765696768743e44726571756573745f6a756467656d656e740801247265675f696e646578ad010138526567697374726172496e64657800011c6d61785f666565cc013042616c616e63654f663c543e00045c94526571756573742061206a756467656d656e742066726f6d2061207265676973747261722e0055015061796d656e743a204174206d6f737420606d61785f666565602077696c6c20626520726573657276656420666f72207061796d656e7420746f2074686520726567697374726172206966206a756467656d656e7418676976656e2e003501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d757374206861766520615072656769737465726564206964656e746974792e001d012d20607265675f696e646578603a2054686520696e646578206f6620746865207265676973747261722077686f7365206a756467656d656e74206973207265717565737465642e55012d20606d61785f666565603a20546865206d6178696d756d206665652074686174206d617920626520706169642e20546869732073686f756c64206a757374206265206175746f2d706f70756c617465642061733a00306060606e6f636f6d70696c65b853656c663a3a7265676973747261727328292e676574287265675f696e646578292e756e7772617028292e6665650c60606000a4456d69747320604a756467656d656e7452657175657374656460206966207375636365737366756c2e002823203c7765696768743e342d20604f2852202b205829602e802d204f6e652062616c616e63652d72657365727665206f7065726174696f6e2eb82d2053746f726167653a2031207265616420604f285229602c2031206d757461746520604f2858202b205229602e302d204f6e65206576656e742e2c23203c2f7765696768743e3863616e63656c5f726571756573740401247265675f696e646578100138526567697374726172496e6465780005446843616e63656c20612070726576696f757320726571756573742e00f85061796d656e743a20412070726576696f75736c79207265736572766564206465706f7369742069732072657475726e6564206f6e20737563636573732e003501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d757374206861766520615072656769737465726564206964656e746974792e0045012d20607265675f696e646578603a2054686520696e646578206f6620746865207265676973747261722077686f7365206a756467656d656e74206973206e6f206c6f6e676572207265717565737465642e00ac456d69747320604a756467656d656e74556e72657175657374656460206966207375636365737366756c2e002823203c7765696768743e342d20604f2852202b205829602e802d204f6e652062616c616e63652d72657365727665206f7065726174696f6e2e882d204f6e652073746f72616765206d75746174696f6e20604f2852202b205829602e2c2d204f6e65206576656e742c23203c2f7765696768743e1c7365745f666565080114696e646578ad010138526567697374726172496e64657800010c666565cc013042616c616e63654f663c543e0006341901536574207468652066656520726571756972656420666f722061206a756467656d656e7420746f206265207265717565737465642066726f6d2061207265676973747261722e005501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74a06f6620746865207265676973747261722077686f736520696e6465782069732060696e646578602e00f42d2060696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f73652066656520697320746f206265207365742e542d2060666565603a20746865206e6577206665652e002823203c7765696768743e242d20604f285229602e782d204f6e652073746f72616765206d75746174696f6e20604f285229602ee42d2042656e63686d61726b3a20372e333135202b2052202a20302e33323920c2b57320286d696e207371756172657320616e616c79736973292c23203c2f7765696768743e387365745f6163636f756e745f6964080114696e646578ad010138526567697374726172496e64657800010c6e6577000130543a3a4163636f756e744964000734bc4368616e676520746865206163636f756e74206173736f63696174656420776974682061207265676973747261722e005501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74a06f6620746865207265676973747261722077686f736520696e6465782069732060696e646578602e00f42d2060696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f73652066656520697320746f206265207365742e702d20606e6577603a20746865206e6577206163636f756e742049442e002823203c7765696768743e242d20604f285229602e782d204f6e652073746f72616765206d75746174696f6e20604f285229602ee02d2042656e63686d61726b3a20382e383233202b2052202a20302e333220c2b57320286d696e207371756172657320616e616c79736973292c23203c2f7765696768743e287365745f6669656c6473080114696e646578ad010138526567697374726172496e6465780001186669656c6473c90301384964656e746974794669656c6473000834a853657420746865206669656c6420696e666f726d6174696f6e20666f722061207265676973747261722e005501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74a06f6620746865207265676973747261722077686f736520696e6465782069732060696e646578602e00f42d2060696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f73652066656520697320746f206265207365742e0d012d20606669656c6473603a20746865206669656c64732074686174207468652072656769737472617220636f6e6365726e73207468656d73656c76657320776974682e002823203c7765696768743e242d20604f285229602e782d204f6e652073746f72616765206d75746174696f6e20604f285229602ee42d2042656e63686d61726b3a20372e343634202b2052202a20302e33323520c2b57320286d696e207371756172657320616e616c79736973292c23203c2f7765696768743e4470726f766964655f6a756467656d656e740c01247265675f696e646578ad010138526567697374726172496e6465780001187461726765744d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001246a756467656d656e74d103015c4a756467656d656e743c42616c616e63654f663c543e3e00094cb850726f766964652061206a756467656d656e7420666f7220616e206163636f756e742773206964656e746974792e005501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74b06f6620746865207265676973747261722077686f736520696e64657820697320607265675f696e646578602e0021012d20607265675f696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f7365206a756467656d656e74206973206265696e67206d6164652e55012d2060746172676574603a20746865206163636f756e742077686f7365206964656e7469747920746865206a756467656d656e742069732075706f6e2e2054686973206d75737420626520616e206163636f756e747420207769746820612072656769737465726564206964656e746974792e49012d20606a756467656d656e74603a20746865206a756467656d656e74206f662074686520726567697374726172206f6620696e64657820607265675f696e646578602061626f75742060746172676574602e0094456d69747320604a756467656d656e74476976656e60206966207375636365737366756c2e002823203c7765696768743e342d20604f2852202b205829602e842d204f6e652062616c616e63652d7472616e73666572206f7065726174696f6e2e942d20557020746f206f6e65206163636f756e742d6c6f6f6b7570206f7065726174696f6e2eb82d2053746f726167653a2031207265616420604f285229602c2031206d757461746520604f2852202b205829602e302d204f6e65206576656e742e2c23203c2f7765696768743e346b696c6c5f6964656e746974790401187461726765744d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365000a4c410152656d6f766520616e206163636f756e742773206964656e7469747920616e64207375622d6163636f756e7420696e666f726d6174696f6e20616e6420736c61736820746865206465706f736974732e0061015061796d656e743a2052657365727665642062616c616e6365732066726f6d20607365745f737562736020616e6420607365745f6964656e74697479602061726520736c617368656420616e642068616e646c6564206279450160536c617368602e20566572696669636174696f6e2072657175657374206465706f7369747320617265206e6f742072657475726e65643b20746865792073686f756c642062652063616e63656c6c6564806d616e75616c6c79207573696e67206063616e63656c5f72657175657374602e00f8546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206d617463682060543a3a466f7263654f726967696e602e0055012d2060746172676574603a20746865206163636f756e742077686f7365206964656e7469747920746865206a756467656d656e742069732075706f6e2e2054686973206d75737420626520616e206163636f756e747420207769746820612072656769737465726564206964656e746974792e0094456d69747320604964656e746974794b696c6c656460206966207375636365737366756c2e002823203c7765696768743e442d20604f2852202b2053202b205829602e802d204f6e652062616c616e63652d72657365727665206f7065726174696f6e2e702d206053202b2032602073746f72616765206d75746174696f6e732e302d204f6e65206576656e742e2c23203c2f7765696768743e1c6164645f73756208010c7375624d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365000110646174614503011044617461000b1cac4164642074686520676976656e206163636f756e7420746f207468652073656e646572277320737562732e005d015061796d656e743a2042616c616e636520726573657276656420627920612070726576696f757320607365745f73756273602063616c6c20666f72206f6e65207375622077696c6c20626520726570617472696174656438746f207468652073656e6465722e006101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652061207265676973746572656458737562206964656e74697479206f662060737562602e2872656e616d655f73756208010c7375624d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365000110646174614503011044617461000c10cc416c74657220746865206173736f636961746564206e616d65206f662074686520676976656e207375622d6163636f756e742e006101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652061207265676973746572656458737562206964656e74697479206f662060737562602e2872656d6f76655f73756204010c7375624d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365000d1cc052656d6f76652074686520676976656e206163636f756e742066726f6d207468652073656e646572277320737562732e005d015061796d656e743a2042616c616e636520726573657276656420627920612070726576696f757320607365745f73756273602063616c6c20666f72206f6e65207375622077696c6c20626520726570617472696174656438746f207468652073656e6465722e006101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652061207265676973746572656458737562206964656e74697479206f662060737562602e20717569745f737562000e288c52656d6f7665207468652073656e6465722061732061207375622d6163636f756e742e005d015061796d656e743a2042616c616e636520726573657276656420627920612070726576696f757320607365745f73756273602063616c6c20666f72206f6e65207375622077696c6c206265207265706174726961746564b4746f207468652073656e64657220282a6e6f742a20746865206f726967696e616c206465706f7369746f72292e006101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d7573742068617665206120726567697374657265643c73757065722d6964656e746974792e0045014e4f54453a20546869732073686f756c64206e6f74206e6f726d616c6c7920626520757365642c206275742069732070726f766964656420696e207468652063617365207468617420746865206e6f6e2d1101636f6e74726f6c6c6572206f6620616e206163636f756e74206973206d616c6963696f75736c7920726567697374657265642061732061207375622d6163636f756e742e04704964656e746974792070616c6c6574206465636c61726174696f6e2e39030c3c70616c6c65745f6964656e74697479147479706573304964656e74697479496e666f04284669656c644c696d697400002401286164646974696f6e616c3d030190426f756e6465645665633c28446174612c2044617461292c204669656c644c696d69743e00011c646973706c617945030110446174610001146c6567616c450301104461746100010c776562450301104461746100011072696f744503011044617461000114656d61696c450301104461746100013c7067705f66696e6765727072696e74bd0301404f7074696f6e3c5b75383b2032305d3e000114696d616765450301104461746100011c74776974746572450301104461746100003d0310346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e646564566563080454014103045300000400b90301185665633c543e0000410300000408450345030045030c3c70616c6c65745f6964656e746974791474797065731044617461000198104e6f6e6500000010526177300400490300000100105261773104004d0300000200105261773204005103000003001052617733040055030000040010526177340400380000050010526177350400590300000600105261773604005d03000007001052617737040061030000080010526177380400f5010000090010526177390400650300000a001452617731300400690300000b0014526177313104006d0300000c001452617731320400710300000d001452617731330400750300000e001452617731340400790300000f0014526177313504007d03000010001452617731360400980000110014526177313704008103000012001452617731380400850300001300145261773139040089030000140014526177323004000d010000150014526177323104008d030000160014526177323204009103000017001452617732330400950300001800145261773234040099030000190014526177323504009d0300001a001452617732360400a10300001b001452617732370400a50300001c001452617732380400a90300001d001452617732390400ad0300001e001452617733300400b10300001f001452617733310400b50300002000145261773332040004000021002c426c616b6554776f323536040004000022001853686132353604000400002300244b656363616b323536040004000024002c5368615468726565323536040004000025000049030000030000000008004d030000030100000008005103000003020000000800550300000303000000080059030000030500000008005d030000030600000008006103000003070000000800650300000309000000080069030000030a00000008006d030000030b000000080071030000030c000000080075030000030d000000080079030000030e00000008007d030000030f00000008008103000003110000000800850300000312000000080089030000031300000008008d030000031500000008009103000003160000000800950300000317000000080099030000031800000008009d03000003190000000800a1030000031a0000000800a5030000031b0000000800a9030000031c0000000800ad030000031d0000000800b1030000031e0000000800b5030000031f0000000800b903000002410300bd0304184f7074696f6e040454010d010108104e6f6e6500000010536f6d6504000d010000010000c103000002c50300c5030000040800450300c9030c3c70616c6c65745f6964656e7469747914747970657320426974466c61677304045401cd030004002001344964656e746974794669656c640000cd030c3c70616c6c65745f6964656e74697479147479706573344964656e746974794669656c640001201c446973706c6179000100144c6567616c0002000c5765620004001052696f7400080014456d61696c0010003850677046696e6765727072696e7400200014496d6167650040001c5477697474657200800000d1030c3c70616c6c65745f6964656e74697479147479706573244a756467656d656e74041c42616c616e63650118011c1c556e6b6e6f776e0000001c46656550616964040018011c42616c616e636500010028526561736f6e61626c65000200244b6e6f776e476f6f64000300244f75744f6644617465000400284c6f775175616c697479000500244572726f6e656f757300060000d5030c3070616c6c65745f70726f78791870616c6c65741043616c6c0404540001281470726f78790c01107265616c000130543a3a4163636f756e744964000140666f7263655f70726f78795f74797065d90301504f7074696f6e3c543a3a50726f7879547970653e00011063616c6c09020160426f783c3c5420617320436f6e6669673e3a3a43616c6c3e00003c4d0144697370617463682074686520676976656e206063616c6c602066726f6d20616e206163636f756e742074686174207468652073656e64657220697320617574686f726973656420666f72207468726f75676830606164645f70726f7879602e00a852656d6f76657320616e7920636f72726573706f6e64696e6720616e6e6f756e63656d656e742873292e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a0d012d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e61012d2060666f7263655f70726f78795f74797065603a2053706563696679207468652065786163742070726f7879207479706520746f206265207573656420616e6420636865636b656420666f7220746869732063616c6c2ed02d206063616c6c603a205468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e002823203c7765696768743efc57656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e2c23203c2f7765696768743e246164645f70726f78790c012064656c6567617465000130543a3a4163636f756e74496400012870726f78795f7479706521010130543a3a50726f78795479706500011464656c6179100138543a3a426c6f636b4e756d6265720001344501526567697374657220612070726f7879206163636f756e7420666f72207468652073656e64657220746861742069732061626c6520746f206d616b652063616c6c73206f6e2069747320626568616c662e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a11012d206070726f7879603a20546865206163636f756e74207468617420746865206063616c6c65726020776f756c64206c696b6520746f206d616b6520612070726f78792efc2d206070726f78795f74797065603a20546865207065726d697373696f6e7320616c6c6f77656420666f7220746869732070726f7879206163636f756e742e4d012d206064656c6179603a2054686520616e6e6f756e63656d656e7420706572696f64207265717569726564206f662074686520696e697469616c2070726f78792e2057696c6c2067656e6572616c6c79206265147a65726f2e002823203c7765696768743efc57656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e2c23203c2f7765696768743e3072656d6f76655f70726f78790c012064656c6567617465000130543a3a4163636f756e74496400012870726f78795f7479706521010130543a3a50726f78795479706500011464656c6179100138543a3a426c6f636b4e756d62657200022ca8556e726567697374657220612070726f7879206163636f756e7420666f72207468652073656e6465722e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a25012d206070726f7879603a20546865206163636f756e74207468617420746865206063616c6c65726020776f756c64206c696b6520746f2072656d6f766520617320612070726f78792e41012d206070726f78795f74797065603a20546865207065726d697373696f6e732063757272656e746c7920656e61626c656420666f72207468652072656d6f7665642070726f7879206163636f756e742e002823203c7765696768743efc57656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e2c23203c2f7765696768743e3872656d6f76655f70726f78696573000328b4556e726567697374657220616c6c2070726f7879206163636f756e747320666f72207468652073656e6465722e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0055015741524e494e473a2054686973206d61792062652063616c6c6564206f6e206163636f756e747320637265617465642062792060616e6f6e796d6f7573602c20686f776576657220696620646f6e652c207468656e590174686520756e726573657276656420666565732077696c6c20626520696e61636365737369626c652e202a2a416c6c2061636365737320746f2074686973206163636f756e742077696c6c206265206c6f73742e2a2a002823203c7765696768743efc57656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e2c23203c2f7765696768743e24616e6f6e796d6f75730c012870726f78795f7479706521010130543a3a50726f78795479706500011464656c6179100138543a3a426c6f636b4e756d626572000114696e6465782501010c75313600045c3901537061776e2061206672657368206e6577206163636f756e7420746861742069732067756172616e7465656420746f206265206f746865727769736520696e61636365737369626c652c20616e64fc696e697469616c697a65206974207769746820612070726f7879206f66206070726f78795f747970656020666f7220606f726967696e602073656e6465722e006c5265717569726573206120605369676e656460206f726967696e2e0051012d206070726f78795f74797065603a205468652074797065206f66207468652070726f78792074686174207468652073656e6465722077696c6c2062652072656769737465726564206173206f766572207468654d016e6577206163636f756e742e20546869732077696c6c20616c6d6f737420616c7761797320626520746865206d6f7374207065726d697373697665206050726f7879547970656020706f737369626c6520746f78616c6c6f7720666f72206d6178696d756d20666c65786962696c6974792e51012d2060696e646578603a204120646973616d626967756174696f6e20696e6465782c20696e206361736520746869732069732063616c6c6564206d756c7469706c652074696d657320696e207468652073616d655d017472616e73616374696f6e2028652e672e207769746820607574696c6974793a3a626174636860292e20556e6c65737320796f75277265207573696e67206062617463686020796f752070726f6261626c79206a7573744077616e7420746f20757365206030602e4d012d206064656c6179603a2054686520616e6e6f756e63656d656e7420706572696f64207265717569726564206f662074686520696e697469616c2070726f78792e2057696c6c2067656e6572616c6c79206265147a65726f2e0051014661696c73207769746820604475706c69636174656020696620746869732068617320616c7265616479206265656e2063616c6c656420696e2074686973207472616e73616374696f6e2c2066726f6d207468659873616d652073656e6465722c2077697468207468652073616d6520706172616d65746572732e00e44661696c732069662074686572652061726520696e73756666696369656e742066756e647320746f2070617920666f72206465706f7369742e002823203c7765696768743efc57656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e2c23203c2f7765696768743e8c544f444f3a204d69676874206265206f76657220636f756e74696e6720312072656164386b696c6c5f616e6f6e796d6f757314011c737061776e6572000130543a3a4163636f756e74496400012870726f78795f7479706521010130543a3a50726f787954797065000114696e6465782501010c753136000118686569676874ad010138543a3a426c6f636b4e756d6265720001246578745f696e646578ad01010c753332000550b452656d6f76657320612070726576696f75736c7920737061776e656420616e6f6e796d6f75732070726f78792e0049015741524e494e473a202a2a416c6c2061636365737320746f2074686973206163636f756e742077696c6c206265206c6f73742e2a2a20416e792066756e64732068656c6420696e2069742077696c6c20626534696e61636365737369626c652e0059015265717569726573206120605369676e656460206f726967696e2c20616e64207468652073656e646572206163636f756e74206d7573742068617665206265656e206372656174656420627920612063616c6c20746fa860616e6f6e796d6f757360207769746820636f72726573706f6e64696e6720706172616d65746572732e004d012d2060737061776e6572603a20546865206163636f756e742074686174206f726967696e616c6c792063616c6c65642060616e6f6e796d6f75736020746f206372656174652074686973206163636f756e742e4d012d2060696e646578603a2054686520646973616d626967756174696f6e20696e646578206f726967696e616c6c792070617373656420746f2060616e6f6e796d6f7573602e2050726f6261626c79206030602e01012d206070726f78795f74797065603a205468652070726f78792074797065206f726967696e616c6c792070617373656420746f2060616e6f6e796d6f7573602e3d012d2060686569676874603a2054686520686569676874206f662074686520636861696e207768656e207468652063616c6c20746f2060616e6f6e796d6f757360207761732070726f6365737365642e49012d20606578745f696e646578603a205468652065787472696e73696320696e64657820696e207768696368207468652063616c6c20746f2060616e6f6e796d6f757360207761732070726f6365737365642e0049014661696c73207769746820604e6f5065726d697373696f6e6020696e2063617365207468652063616c6c6572206973206e6f7420612070726576696f75736c79206372656174656420616e6f6e796d6f7573f06163636f756e742077686f73652060616e6f6e796d6f7573602063616c6c2068617320636f72726573706f6e64696e6720706172616d65746572732e002823203c7765696768743efc57656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e2c23203c2f7765696768743e20616e6e6f756e63650801107265616c000130543a3a4163636f756e74496400012463616c6c5f6861736824013443616c6c486173684f663c543e00065405015075626c697368207468652068617368206f6620612070726f78792d63616c6c20746861742077696c6c206265206d61646520696e20746865206675747572652e005d0154686973206d7573742062652063616c6c656420736f6d65206e756d626572206f6620626c6f636b73206265666f72652074686520636f72726573706f6e64696e67206070726f78796020697320617474656d7074656425016966207468652064656c6179206173736f6369617465642077697468207468652070726f78792072656c6174696f6e736869702069732067726561746572207468616e207a65726f2e0011014e6f206d6f7265207468616e20604d617850656e64696e676020616e6e6f756e63656d656e7473206d6179206265206d61646520617420616e79206f6e652074696d652e000901546869732077696c6c2074616b652061206465706f736974206f662060416e6e6f756e63656d656e744465706f736974466163746f72602061732077656c6c206173190160416e6e6f756e63656d656e744465706f736974426173656020696620746865726520617265206e6f206f746865722070656e64696e6720616e6e6f756e63656d656e74732e002501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420612070726f7879206f6620607265616c602e002c506172616d65746572733a0d012d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e15012d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e002823203c7765696768743e6057656967687420697320612066756e6374696f6e206f663a982d20413a20746865206e756d626572206f6620616e6e6f756e63656d656e7473206d6164652ea02d20503a20746865206e756d626572206f662070726f78696573207468652075736572206861732e2c23203c2f7765696768743e4c72656d6f76655f616e6e6f756e63656d656e740801107265616c000130543a3a4163636f756e74496400012463616c6c5f6861736824013443616c6c486173684f663c543e0007407052656d6f7665206120676976656e20616e6e6f756e63656d656e742e0059014d61792062652063616c6c656420627920612070726f7879206163636f756e7420746f2072656d6f766520612063616c6c20746865792070726576696f75736c7920616e6e6f756e63656420616e642072657475726e30746865206465706f7369742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a0d012d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e15012d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e002823203c7765696768743e6057656967687420697320612066756e6374696f6e206f663a982d20413a20746865206e756d626572206f6620616e6e6f756e63656d656e7473206d6164652ea02d20503a20746865206e756d626572206f662070726f78696573207468652075736572206861732e2c23203c2f7765696768743e4c72656a6563745f616e6e6f756e63656d656e7408012064656c6567617465000130543a3a4163636f756e74496400012463616c6c5f6861736824013443616c6c486173684f663c543e000840b052656d6f76652074686520676976656e20616e6e6f756e63656d656e74206f6620612064656c65676174652e0061014d61792062652063616c6c6564206279206120746172676574202870726f7869656429206163636f756e7420746f2072656d6f766520612063616c6c2074686174206f6e65206f662074686569722064656c6567617465732501286064656c656761746560292068617320616e6e6f756e63656420746865792077616e7420746f20657865637574652e20546865206465706f7369742069732072657475726e65642e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733af42d206064656c6567617465603a20546865206163636f756e7420746861742070726576696f75736c7920616e6e6f756e636564207468652063616c6c2ebc2d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f206265206d6164652e002823203c7765696768743e6057656967687420697320612066756e6374696f6e206f663a982d20413a20746865206e756d626572206f6620616e6e6f756e63656d656e7473206d6164652ea02d20503a20746865206e756d626572206f662070726f78696573207468652075736572206861732e2c23203c2f7765696768743e3c70726f78795f616e6e6f756e63656410012064656c6567617465000130543a3a4163636f756e7449640001107265616c000130543a3a4163636f756e744964000140666f7263655f70726f78795f74797065d90301504f7074696f6e3c543a3a50726f7879547970653e00011063616c6c09020160426f783c3c5420617320436f6e6669673e3a3a43616c6c3e0009444d0144697370617463682074686520676976656e206063616c6c602066726f6d20616e206163636f756e742074686174207468652073656e64657220697320617574686f72697a656420666f72207468726f75676830606164645f70726f7879602e00a852656d6f76657320616e7920636f72726573706f6e64696e6720616e6e6f756e63656d656e742873292e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a0d012d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e61012d2060666f7263655f70726f78795f74797065603a2053706563696679207468652065786163742070726f7879207479706520746f206265207573656420616e6420636865636b656420666f7220746869732063616c6c2ed02d206063616c6c603a205468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e002823203c7765696768743e6057656967687420697320612066756e6374696f6e206f663a982d20413a20746865206e756d626572206f6620616e6e6f756e63656d656e7473206d6164652ea02d20503a20746865206e756d626572206f662070726f78696573207468652075736572206861732e2c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ed90304184f7074696f6e0404540121010108104e6f6e6500000010536f6d65040021010000010000dd030c3c70616c6c65745f6d756c74697369671870616c6c65741043616c6c0404540001105061735f6d756c74695f7468726573686f6c645f310801446f746865725f7369676e61746f72696573dc01445665633c543a3a4163636f756e7449643e00011063616c6c09020160426f783c3c5420617320436f6e6669673e3a3a43616c6c3e0000405101496d6d6564696174656c792064697370617463682061206d756c74692d7369676e61747572652063616c6c207573696e6720612073696e676c6520617070726f76616c2066726f6d207468652063616c6c65722e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003d012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f206172652070617274206f662074686501016d756c74692d7369676e61747572652c2062757420646f206e6f7420706172746963697061746520696e2074686520617070726f76616c2070726f636573732e882d206063616c6c603a205468652063616c6c20746f2062652065786563757465642e00b8526573756c74206973206571756976616c656e7420746f20746865206469737061746368656420726573756c742e002823203c7765696768743e19014f285a202b204329207768657265205a20697320746865206c656e677468206f66207468652063616c6c20616e6420432069747320657865637574696f6e207765696768742e7c2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d442d204442205765696768743a204e6f6e65482d20506c75732043616c6c205765696768742c23203c2f7765696768743e2061735f6d756c74691801247468726573686f6c642501010c7531360001446f746865725f7369676e61746f72696573dc01445665633c543a3a4163636f756e7449643e00013c6d617962655f74696d65706f696e74e10301844f7074696f6e3c54696d65706f696e743c543a3a426c6f636b4e756d6265723e3e00011063616c6c2801284f706171756543616c6c00012873746f72655f63616c6ce80110626f6f6c0001286d61785f7765696768742001185765696768740001b45501526567697374657220617070726f76616c20666f72206120646973706174636820746f206265206d6164652066726f6d20612064657465726d696e697374696320636f6d706f73697465206163636f756e74206966f8617070726f766564206279206120746f74616c206f6620607468726573686f6c64202d203160206f6620606f746865725f7369676e61746f72696573602e00b049662074686572652061726520656e6f7567682c207468656e206469737061746368207468652063616c6c2e002d015061796d656e743a20604465706f73697442617365602077696c6c20626520726573657276656420696620746869732069732074686520666972737420617070726f76616c2c20706c75733d01607468726573686f6c64602074696d657320604465706f736974466163746f72602e2049742069732072657475726e6564206f6e636520746869732064697370617463682068617070656e73206f723469732063616e63656c6c65642e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0055012d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e41012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f766520746869736c64697370617463682e204d6179206e6f7420626520656d7074792e59012d20606d617962655f74696d65706f696e74603a20496620746869732069732074686520666972737420617070726f76616c2c207468656e2074686973206d75737420626520604e6f6e65602e20496620697420697351016e6f742074686520666972737420617070726f76616c2c207468656e206974206d7573742062652060536f6d65602c2077697468207468652074696d65706f696e742028626c6f636b206e756d62657220616e64d47472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c207472616e73616374696f6e2e882d206063616c6c603a205468652063616c6c20746f2062652065786563757465642e001d014e4f54453a20556e6c6573732074686973206973207468652066696e616c20617070726f76616c2c20796f752077696c6c2067656e6572616c6c792077616e7420746f20757365190160617070726f76655f61735f6d756c74696020696e73746561642c2073696e6365206974206f6e6c7920726571756972657320612068617368206f66207468652063616c6c2e005901526573756c74206973206571756976616c656e7420746f20746865206469737061746368656420726573756c7420696620607468726573686f6c64602069732065786163746c79206031602e204f746865727769736555016f6e20737563636573732c20726573756c7420697320604f6b6020616e642074686520726573756c742066726f6d2074686520696e746572696f722063616c6c2c206966206974207761732065786563757465642cdc6d617920626520666f756e6420696e20746865206465706f736974656420604d756c7469736967457865637574656460206576656e742e002823203c7765696768743e502d20604f2853202b205a202b2043616c6c29602ecc2d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e3d012d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f66450120207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2e21012d204f6e652063616c6c20656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285a296020776865726520605a602069732074782d6c656e2ebc2d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602ed42d20557020746f206f6e652062696e6172792073656172636820616e6420696e736572742028604f286c6f6753202b20532960292ef82d20492f4f3a2031207265616420604f285329602c20757020746f2031206d757461746520604f285329602e20557020746f206f6e652072656d6f76652e302d204f6e65206576656e742e6c2d2054686520776569676874206f6620746865206063616c6c602e4d012d2053746f726167653a20696e7365727473206f6e65206974656d2c2076616c75652073697a6520626f756e64656420627920604d61785369676e61746f72696573602c20776974682061206465706f7369741901202074616b656e20666f7220697473206c69666574696d65206f6620604465706f73697442617365202b207468726573686f6c64202a204465706f736974466163746f72602e7c2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d302d204442205765696768743a2101202020202d2052656164733a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d2c2043616c6c7320286966206073746f72655f63616c6c60292501202020202d205772697465733a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d2c2043616c6c7320286966206073746f72655f63616c6c6029482d20506c75732043616c6c205765696768742c23203c2f7765696768743e40617070726f76655f61735f6d756c74691401247468726573686f6c642501010c7531360001446f746865725f7369676e61746f72696573dc01445665633c543a3a4163636f756e7449643e00013c6d617962655f74696d65706f696e74e10301844f7074696f6e3c54696d65706f696e743c543a3a426c6f636b4e756d6265723e3e00012463616c6c5f686173680401205b75383b2033325d0001286d61785f77656967687420011857656967687400028c5501526567697374657220617070726f76616c20666f72206120646973706174636820746f206265206d6164652066726f6d20612064657465726d696e697374696320636f6d706f73697465206163636f756e74206966f8617070726f766564206279206120746f74616c206f6620607468726573686f6c64202d203160206f6620606f746865725f7369676e61746f72696573602e002d015061796d656e743a20604465706f73697442617365602077696c6c20626520726573657276656420696620746869732069732074686520666972737420617070726f76616c2c20706c75733d01607468726573686f6c64602074696d657320604465706f736974466163746f72602e2049742069732072657475726e6564206f6e636520746869732064697370617463682068617070656e73206f723469732063616e63656c6c65642e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0055012d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e41012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f766520746869736c64697370617463682e204d6179206e6f7420626520656d7074792e59012d20606d617962655f74696d65706f696e74603a20496620746869732069732074686520666972737420617070726f76616c2c207468656e2074686973206d75737420626520604e6f6e65602e20496620697420697351016e6f742074686520666972737420617070726f76616c2c207468656e206974206d7573742062652060536f6d65602c2077697468207468652074696d65706f696e742028626c6f636b206e756d62657220616e64d47472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c207472616e73616374696f6e2ecc2d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f2062652065786563757465642e0035014e4f54453a2049662074686973206973207468652066696e616c20617070726f76616c2c20796f752077696c6c2077616e7420746f20757365206061735f6d756c74696020696e73746561642e002823203c7765696768743e242d20604f285329602ecc2d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e3d012d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f66450120207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2ebc2d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602ed42d20557020746f206f6e652062696e6172792073656172636820616e6420696e736572742028604f286c6f6753202b20532960292ef82d20492f4f3a2031207265616420604f285329602c20757020746f2031206d757461746520604f285329602e20557020746f206f6e652072656d6f76652e302d204f6e65206576656e742e4d012d2053746f726167653a20696e7365727473206f6e65206974656d2c2076616c75652073697a6520626f756e64656420627920604d61785369676e61746f72696573602c20776974682061206465706f7369741901202074616b656e20666f7220697473206c69666574696d65206f6620604465706f73697442617365202b207468726573686f6c64202a204465706f736974466163746f72602e882d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d302d204442205765696768743ab8202020202d20526561643a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745dbc202020202d2057726974653a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d2c23203c2f7765696768743e3c63616e63656c5f61735f6d756c74691001247468726573686f6c642501010c7531360001446f746865725f7369676e61746f72696573dc01445665633c543a3a4163636f756e7449643e00012474696d65706f696e742d01016454696d65706f696e743c543a3a426c6f636b4e756d6265723e00012463616c6c5f686173680401205b75383b2033325d000368550143616e63656c2061207072652d6578697374696e672c206f6e2d676f696e67206d756c7469736967207472616e73616374696f6e2e20416e79206465706f7369742072657365727665642070726576696f75736c79c4666f722074686973206f7065726174696f6e2077696c6c20626520756e7265736572766564206f6e20737563636573732e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0055012d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e41012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f766520746869736c64697370617463682e204d6179206e6f7420626520656d7074792e5d012d206074696d65706f696e74603a205468652074696d65706f696e742028626c6f636b206e756d62657220616e64207472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c787472616e73616374696f6e20666f7220746869732064697370617463682ecc2d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f2062652065786563757465642e002823203c7765696768743e242d20604f285329602ecc2d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e3d012d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f66450120207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2ebc2d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602e302d204f6e65206576656e742e842d20492f4f3a2031207265616420604f285329602c206f6e652072656d6f76652e702d2053746f726167653a2072656d6f766573206f6e65206974656d2e882d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d302d204442205765696768743a1501202020202d20526561643a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d2c20526566756e64204163636f756e742c2043616c6c731901202020202d2057726974653a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d2c20526566756e64204163636f756e742c2043616c6c732c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ee10304184f7074696f6e040454012d010108104e6f6e6500000010536f6d6504002d010000010000e5030c3c70616c6c65745f626f756e746965731870616c6c65741043616c6c0404540001243870726f706f73655f626f756e747908011476616c7565cc013042616c616e63654f663c543e00012c6465736372697074696f6e28011c5665633c75383e0000305450726f706f73652061206e657720626f756e74792e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0051015061796d656e743a20605469705265706f72744465706f73697442617365602077696c6c2062652072657365727665642066726f6d20746865206f726967696e206163636f756e742c2061732077656c6c206173510160446174614465706f736974506572427974656020666f722065616368206279746520696e2060726561736f6e602e2049742077696c6c20626520756e72657365727665642075706f6e20617070726f76616c2c646f7220736c6173686564207768656e2072656a65637465642e00f82d206063757261746f72603a205468652063757261746f72206163636f756e742077686f6d2077696c6c206d616e616765207468697320626f756e74792e642d2060666565603a205468652063757261746f72206665652e25012d206076616c7565603a2054686520746f74616c207061796d656e7420616d6f756e74206f66207468697320626f756e74792c2063757261746f722066656520696e636c756465642ec02d20606465736372697074696f6e603a20546865206465736372697074696f6e206f66207468697320626f756e74792e38617070726f76655f626f756e7479040124626f756e74795f6964ad01012c426f756e7479496e6465780001205d01417070726f7665206120626f756e74792070726f706f73616c2e2041742061206c617465722074696d652c2074686520626f756e74792077696c6c2062652066756e64656420616e64206265636f6d6520616374697665a8616e6420746865206f726967696e616c206465706f7369742077696c6c2062652072657475726e65642e00ac4d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a417070726f76654f726967696e602e002823203c7765696768743e1c2d204f2831292e2c23203c2f7765696768743e3c70726f706f73655f63757261746f720c0124626f756e74795f6964ad01012c426f756e7479496e64657800011c63757261746f724d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500010c666565cc013042616c616e63654f663c543e00021c9041737369676e20612063757261746f7220746f20612066756e64656420626f756e74792e00ac4d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a417070726f76654f726967696e602e002823203c7765696768743e1c2d204f2831292e2c23203c2f7765696768743e40756e61737369676e5f63757261746f72040124626f756e74795f6964ad01012c426f756e7479496e6465780003487c556e61737369676e2063757261746f722066726f6d206120626f756e74792e001d01546869732066756e6374696f6e2063616e206f6e6c792062652063616c6c656420627920746865206052656a6563744f726967696e602061207369676e6564206f726967696e2e003d01496620746869732066756e6374696f6e2069732063616c6c656420627920746865206052656a6563744f726967696e602c20776520617373756d652074686174207468652063757261746f7220697331016d616c6963696f7573206f7220696e6163746976652e204173206120726573756c742c2077652077696c6c20736c617368207468652063757261746f72207768656e20706f737369626c652e006101496620746865206f726967696e206973207468652063757261746f722c2077652074616b6520746869732061732061207369676e20746865792061726520756e61626c6520746f20646f207468656972206a6f6220616e645d01746865792077696c6c696e676c7920676976652075702e20576520636f756c6420736c617368207468656d2c2062757420666f72206e6f7720776520616c6c6f77207468656d20746f207265636f76657220746865697235016465706f73697420616e64206578697420776974686f75742069737375652e20285765206d61792077616e7420746f206368616e67652074686973206966206974206973206162757365642e29005d0146696e616c6c792c20746865206f726967696e2063616e20626520616e796f6e6520696620616e64206f6e6c79206966207468652063757261746f722069732022696e616374697665222e205468697320616c6c6f77736101616e796f6e6520696e2074686520636f6d6d756e69747920746f2063616c6c206f7574207468617420612063757261746f72206973206e6f7420646f696e67207468656972206475652064696c6967656e63652c20616e64390177652073686f756c64207069636b2061206e65772063757261746f722e20496e20746869732063617365207468652063757261746f722073686f756c6420616c736f20626520736c61736865642e002823203c7765696768743e1c2d204f2831292e2c23203c2f7765696768743e386163636570745f63757261746f72040124626f756e74795f6964ad01012c426f756e7479496e64657800042094416363657074207468652063757261746f7220726f6c6520666f72206120626f756e74792e290141206465706f7369742077696c6c2062652072657365727665642066726f6d2063757261746f7220616e6420726566756e642075706f6e207375636365737366756c207061796f75742e00904d6179206f6e6c792062652063616c6c65642066726f6d207468652063757261746f722e002823203c7765696768743e1c2d204f2831292e2c23203c2f7765696768743e3061776172645f626f756e7479080124626f756e74795f6964ad01012c426f756e7479496e64657800012c62656e65666963696172794d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500052c5901417761726420626f756e747920746f20612062656e6566696369617279206163636f756e742e205468652062656e65666963696172792077696c6c2062652061626c6520746f20636c61696d207468652066756e647338616674657220612064656c61792e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265207468652063757261746f72206f66207468697320626f756e74792e00882d2060626f756e74795f6964603a20426f756e747920494420746f2061776172642e19012d206062656e6566696369617279603a205468652062656e6566696369617279206163636f756e742077686f6d2077696c6c207265636569766520746865207061796f75742e002823203c7765696768743e1c2d204f2831292e2c23203c2f7765696768743e30636c61696d5f626f756e7479040124626f756e74795f6964ad01012c426f756e7479496e646578000624ec436c61696d20746865207061796f75742066726f6d20616e206177617264656420626f756e7479206166746572207061796f75742064656c61792e002501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265207468652062656e6566696369617279206f66207468697320626f756e74792e00882d2060626f756e74795f6964603a20426f756e747920494420746f20636c61696d2e002823203c7765696768743e1c2d204f2831292e2c23203c2f7765696768743e30636c6f73655f626f756e7479040124626f756e74795f6964ad01012c426f756e7479496e646578000728390143616e63656c20612070726f706f736564206f722061637469766520626f756e74792e20416c6c207468652066756e64732077696c6c2062652073656e7420746f20747265617375727920616e64cc7468652063757261746f72206465706f7369742077696c6c20626520756e726573657276656420696620706f737369626c652e00c84f6e6c792060543a3a52656a6563744f726967696e602069732061626c6520746f2063616e63656c206120626f756e74792e008c2d2060626f756e74795f6964603a20426f756e747920494420746f2063616e63656c2e002823203c7765696768743e1c2d204f2831292e2c23203c2f7765696768743e50657874656e645f626f756e74795f657870697279080124626f756e74795f6964ad01012c426f756e7479496e64657800011872656d61726b28011c5665633c75383e000828ac457874656e6420746865206578706972792074696d65206f6620616e2061637469766520626f756e74792e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265207468652063757261746f72206f66207468697320626f756e74792e008c2d2060626f756e74795f6964603a20426f756e747920494420746f20657874656e642e8c2d206072656d61726b603a206164646974696f6e616c20696e666f726d6174696f6e2e002823203c7765696768743e1c2d204f2831292e2c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ee9030c2c70616c6c65745f746970731870616c6c65741043616c6c040454000118387265706f72745f617765736f6d65080118726561736f6e28011c5665633c75383e00010c77686f000130543a3a4163636f756e74496400004c59015265706f727420736f6d657468696e672060726561736f6e60207468617420646573657276657320612074697020616e6420636c61696d20616e79206576656e7475616c207468652066696e6465722773206665652e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0051015061796d656e743a20605469705265706f72744465706f73697442617365602077696c6c2062652072657365727665642066726f6d20746865206f726967696e206163636f756e742c2061732077656c6c206173bc60446174614465706f736974506572427974656020666f722065616368206279746520696e2060726561736f6e602e005d012d2060726561736f6e603a2054686520726561736f6e20666f722c206f7220746865207468696e6720746861742064657365727665732c20746865207469703b2067656e6572616c6c7920746869732077696c6c20626558202061205554462d382d656e636f6465642055524c2ee82d206077686f603a20546865206163636f756e742077686963682073686f756c6420626520637265646974656420666f7220746865207469702e0074456d69747320604e657754697060206966207375636365737366756c2e002823203c7765696768743ec82d20436f6d706c65786974793a20604f2852296020776865726520605260206c656e677468206f662060726561736f6e602e9020202d20656e636f64696e6720616e642068617368696e67206f662027726561736f6e27702d20446252656164733a2060526561736f6e73602c20605469707360742d2044625772697465733a2060526561736f6e73602c206054697073602c23203c2f7765696768743e2c726574726163745f7469700401106861736824011c543a3a4861736800014c5101526574726163742061207072696f72207469702d7265706f72742066726f6d20607265706f72745f617765736f6d65602c20616e642063616e63656c207468652070726f63657373206f662074697070696e672e00dc4966207375636365737366756c2c20746865206f726967696e616c206465706f7369742077696c6c20626520756e72657365727665642e004d01546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642074686520746970206964656e7469666965642062792060686173686041016d7573742068617665206265656e207265706f7274656420627920746865207369676e696e67206163636f756e74207468726f75676820607265706f72745f617765736f6d65602028616e64206e6f744c7468726f75676820607469705f6e657760292e0061012d206068617368603a20546865206964656e74697479206f6620746865206f70656e2074697020666f722077686963682061207469702076616c7565206973206465636c617265642e205468697320697320666f726d65645d0120206173207468652068617368206f6620746865207475706c65206f6620746865206f726967696e616c207469702060726561736f6e6020616e64207468652062656e6566696369617279206163636f756e742049442e008c456d697473206054697052657472616374656460206966207375636365737366756c2e002823203c7765696768743e502d20436f6d706c65786974793a20604f28312960d820202d20446570656e6473206f6e20746865206c656e677468206f662060543a3a48617368602077686963682069732066697865642e8c2d20446252656164733a206054697073602c20606f726967696e206163636f756e7460bc2d2044625772697465733a2060526561736f6e73602c206054697073602c20606f726967696e206163636f756e74602c23203c2f7765696768743e1c7469705f6e65770c0118726561736f6e28011c5665633c75383e00010c77686f000130543a3a4163636f756e7449640001247469705f76616c7565cc013042616c616e63654f663c543e000258f04769766520612074697020666f7220736f6d657468696e67206e65773b206e6f2066696e6465722773206665652077696c6c2062652074616b656e2e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d7573742062652061706d656d626572206f662074686520605469707065727360207365742e005d012d2060726561736f6e603a2054686520726561736f6e20666f722c206f7220746865207468696e6720746861742064657365727665732c20746865207469703b2067656e6572616c6c7920746869732077696c6c20626558202061205554462d382d656e636f6465642055524c2ee82d206077686f603a20546865206163636f756e742077686963682073686f756c6420626520637265646974656420666f7220746865207469702e4d012d20607469705f76616c7565603a2054686520616d6f756e74206f66207469702074686174207468652073656e64657220776f756c64206c696b6520746f20676976652e20546865206d656469616e20746970d4202076616c7565206f662061637469766520746970706572732077696c6c20626520676976656e20746f20746865206077686f602e0074456d69747320604e657754697060206966207375636365737366756c2e002823203c7765696768743e51012d20436f6d706c65786974793a20604f2852202b2054296020776865726520605260206c656e677468206f662060726561736f6e602c2060546020697320746865206e756d626572206f6620746970706572732e5d0120202d20604f285429603a206465636f64696e6720605469707065726020766563206f66206c656e677468206054602e20605460206973206368617267656420617320757070657220626f756e6420676976656e2062792d012020202060436f6e7461696e734c656e677468426f756e64602e205468652061637475616c20636f737420646570656e6473206f6e2074686520696d706c656d656e746174696f6e206f66442020202060543a3a54697070657273602ee020202d20604f285229603a2068617368696e6720616e6420656e636f64696e67206f6620726561736f6e206f66206c656e677468206052607c2d20446252656164733a206054697070657273602c2060526561736f6e7360742d2044625772697465733a2060526561736f6e73602c206054697073602c23203c2f7765696768743e0c7469700801106861736824011c543a3a486173680001247469705f76616c7565cc013042616c616e63654f663c543e000360b04465636c6172652061207469702076616c756520666f7220616e20616c72656164792d6f70656e207469702e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d7573742062652061706d656d626572206f662074686520605469707065727360207365742e0061012d206068617368603a20546865206964656e74697479206f6620746865206f70656e2074697020666f722077686963682061207469702076616c7565206973206465636c617265642e205468697320697320666f726d65645d0120206173207468652068617368206f6620746865207475706c65206f66207468652068617368206f6620746865206f726967696e616c207469702060726561736f6e6020616e64207468652062656e65666963696172793420206163636f756e742049442e4d012d20607469705f76616c7565603a2054686520616d6f756e74206f66207469702074686174207468652073656e64657220776f756c64206c696b6520746f20676976652e20546865206d656469616e20746970d4202076616c7565206f662061637469766520746970706572732077696c6c20626520676976656e20746f20746865206077686f602e006101456d6974732060546970436c6f73696e676020696620746865207468726573686f6c64206f66207469707065727320686173206265656e207265616368656420616e642074686520636f756e74646f776e20706572696f643068617320737461727465642e002823203c7765696768743e61012d20436f6d706c65786974793a20604f285429602077686572652060546020697320746865206e756d626572206f6620746970706572732e206465636f64696e6720605469707065726020766563206f66206c656e6774682d0120206054602c20696e736572742074697020616e6420636865636b20636c6f73696e672c20605460206973206368617267656420617320757070657220626f756e6420676976656e2062795d01202060436f6e7461696e734c656e677468426f756e64602e205468652061637475616c20636f737420646570656e6473206f6e2074686520696d706c656d656e746174696f6e206f662060543a3a54697070657273602e005d01202041637475616c6c792077656967687420636f756c64206265206c6f77657220617320697420646570656e6473206f6e20686f77206d616e7920746970732061726520696e20604f70656e5469706020627574206974d02020697320776569676874656420617320696620616c6d6f73742066756c6c20692e65206f66206c656e6774682060542d31602e702d20446252656164733a206054697070657273602c20605469707360482d2044625772697465733a206054697073602c23203c2f7765696768743e24636c6f73655f7469700401106861736824011c543a3a486173680004405c436c6f736520616e64207061796f75742061207469702e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e00150154686520746970206964656e74696669656420627920606861736860206d75737420686176652066696e69736865642069747320636f756e74646f776e20706572696f642e0061012d206068617368603a20546865206964656e74697479206f6620746865206f70656e2074697020666f722077686963682061207469702076616c7565206973206465636c617265642e205468697320697320666f726d65645d0120206173207468652068617368206f6620746865207475706c65206f6620746865206f726967696e616c207469702060726561736f6e6020616e64207468652062656e6566696369617279206163636f756e742049442e002823203c7765696768743e61012d20436f6d706c65786974793a20604f285429602077686572652060546020697320746865206e756d626572206f6620746970706572732e206465636f64696e6720605469707065726020766563206f66206c656e677468510120206054602e20605460206973206368617267656420617320757070657220626f756e6420676976656e2062792060436f6e7461696e734c656e677468426f756e64602e205468652061637475616c20636f7374c02020646570656e6473206f6e2074686520696d706c656d656e746174696f6e206f662060543a3a54697070657273602ea82d20446252656164733a206054697073602c206054697070657273602c20607469702066696e64657260d82d2044625772697465733a2060526561736f6e73602c206054697073602c206054697070657273602c20607469702066696e646572602c23203c2f7765696768743e24736c6173685f7469700401106861736824011c543a3a486173680005309452656d6f766520616e6420736c61736820616e20616c72656164792d6f70656e207469702e00a84d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a52656a6563744f726967696e602e00f44173206120726573756c742c207468652066696e64657220697320736c617368656420616e6420746865206465706f7369747320617265206c6f73742e0084456d6974732060546970536c617368656460206966207375636365737366756c2e002823203c7765696768743efc2020605460206973206368617267656420617320757070657220626f756e6420676976656e2062792060436f6e7461696e734c656e677468426f756e64602e010120205468652061637475616c20636f737420646570656e6473206f6e2074686520696d706c656d656e746174696f6e206f662060543a3a54697070657273602e2c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632eed030c9070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173651870616c6c65741043616c6c0404540001103c7375626d69745f756e7369676e65640801307261775f736f6c7574696f6ef103017c426f783c526177536f6c7574696f6e3c536f6c7574696f6e4f663c543e3e3e00011c7769746e657373c5040158536f6c7574696f6e4f72536e617073686f7453697a65000038a45375626d6974206120736f6c7574696f6e20666f722074686520756e7369676e65642070686173652e00c8546865206469737061746368206f726967696e20666f20746869732063616c6c206d757374206265205f5f6e6f6e655f5f2e003d0154686973207375626d697373696f6e20697320636865636b6564206f6e2074686520666c792e204d6f72656f7665722c207468697320756e7369676e656420736f6c7574696f6e206973206f6e6c79550176616c696461746564207768656e207375626d697474656420746f2074686520706f6f6c2066726f6d20746865202a2a6c6f63616c2a2a206e6f64652e204566666563746976656c792c2074686973206d65616e735d0174686174206f6e6c79206163746976652076616c696461746f72732063616e207375626d69742074686973207472616e73616374696f6e207768656e20617574686f72696e67206120626c6f636b202873696d696c617240746f20616e20696e686572656e74292e005901546f2070726576656e7420616e7920696e636f727265637420736f6c7574696f6e2028616e642074687573207761737465642074696d652f776569676874292c2074686973207472616e73616374696f6e2077696c6c4d0170616e69632069662074686520736f6c7574696f6e207375626d6974746564206279207468652076616c696461746f7220697320696e76616c696420696e20616e79207761792c206566666563746976656c799c70757474696e6720746865697220617574686f72696e6720726577617264206174207269736b2e00e04e6f206465706f736974206f7220726577617264206973206173736f63696174656420776974682074686973207375626d697373696f6e2e6c7365745f6d696e696d756d5f756e747275737465645f73636f72650401406d617962655f6e6578745f73636f7265c90401544f7074696f6e3c456c656374696f6e53636f72653e000114b05365742061206e65772076616c756520666f7220604d696e696d756d556e7472757374656453636f7265602e00d84469737061746368206f726967696e206d75737420626520616c69676e656420776974682060543a3a466f7263654f726967696e602e00f05468697320636865636b2063616e206265207475726e6564206f66662062792073657474696e67207468652076616c756520746f20604e6f6e65602e747365745f656d657267656e63795f656c656374696f6e5f726573756c74040120737570706f727473cd040158537570706f7274733c543a3a4163636f756e7449643e0002205901536574206120736f6c7574696f6e20696e207468652071756575652c20746f2062652068616e646564206f757420746f2074686520636c69656e74206f6620746869732070616c6c657420696e20746865206e6578748863616c6c20746f2060456c656374696f6e50726f76696465723a3a656c656374602e004501546869732063616e206f6e6c79206265207365742062792060543a3a466f7263654f726967696e602c20616e64206f6e6c79207768656e207468652070686173652069732060456d657267656e6379602e00610154686520736f6c7574696f6e206973206e6f7420636865636b656420666f7220616e7920666561736962696c69747920616e6420697320617373756d656420746f206265207472757374776f727468792c20617320616e795101666561736962696c69747920636865636b20697473656c662063616e20696e207072696e6369706c652063617573652074686520656c656374696f6e2070726f6365737320746f206661696c202864756520746f686d656d6f72792f77656967687420636f6e73747261696e73292e187375626d69740801307261775f736f6c7574696f6ef103017c426f783c526177536f6c7574696f6e3c536f6c7574696f6e4f663c543e3e3e0001586e756d5f7369676e65645f7375626d697373696f6e7310010c7533320003349c5375626d6974206120736f6c7574696f6e20666f7220746865207369676e65642070686173652e00d0546865206469737061746368206f726967696e20666f20746869732063616c6c206d757374206265205f5f7369676e65645f5f2e005d0154686520736f6c7574696f6e20697320706f74656e7469616c6c79207175657565642c206261736564206f6e2074686520636c61696d65642073636f726520616e642070726f6365737365642061742074686520656e64506f6620746865207369676e65642070686173652e005d0141206465706f73697420697320726573657276656420616e64207265636f7264656420666f722074686520736f6c7574696f6e2e204261736564206f6e20746865206f7574636f6d652c2074686520736f6c7574696f6e15016d696768742062652072657761726465642c20736c61736865642c206f722067657420616c6c206f7220612070617274206f6620746865206465706f736974206261636b2e002823203c7765696768743eb051756575652073697a65206d7573742062652070726f7669646564206173207769746e65737320646174612e2c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ef103089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173652c526177536f6c7574696f6e04045301f503000c0120736f6c7574696f6ef50301045300011473636f7265c1040134456c656374696f6e53636f7265000114726f756e6410010c7533320000f5030840706f6c6b61646f745f72756e74696d65544e706f73436f6d70616374536f6c7574696f6e31360000400118766f74657331f90300000118766f74657332050400000118766f74657333190400000118766f74657334250400000118766f74657335310400000118766f746573363d0400000118766f74657337490400000118766f74657338550400000118766f7465733961040000011c766f74657331306d040000011c766f746573313179040000011c766f746573313285040000011c766f746573313391040000011c766f74657331349d040000011c766f7465733135a9040000011c766f7465733136b504000000f903000002fd0300fd0300000408ad010104000104000006250100050400000209040009040000040cad010d040104000d04000004080104110400110400000615040015040c3473705f61726974686d65746963287065725f7468696e677318506572553136000004002501010c753136000019040000021d04001d040000040cad0121040104002104000003020000000d0400250400000229040029040000040cad012d040104002d04000003030000000d0400310400000235040035040000040cad0139040104003904000003040000000d04003d0400000241040041040000040cad0145040104004504000003050000000d040049040000024d04004d040000040cad0151040104005104000003060000000d0400550400000259040059040000040cad015d040104005d04000003070000000d0400610400000265040065040000040cad0169040104006904000003080000000d04006d0400000271040071040000040cad0175040104007504000003090000000d040079040000027d04007d040000040cad01810401040081040000030a0000000d0400850400000289040089040000040cad018d040104008d040000030b0000000d0400910400000295040095040000040cad01990401040099040000030c0000000d04009d04000002a10400a1040000040cad01a504010400a5040000030d0000000d0400a904000002ad0400ad040000040cad01b104010400b1040000030e0000000d0400b504000002b90400b9040000040cad01bd04010400bd040000030f0000000d0400c104000003030000001800c504089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f706861736558536f6c7574696f6e4f72536e617073686f7453697a650000080118766f74657273ad01010c75333200011c74617267657473ad01010c7533320000c90404184f7074696f6e04045401c1040108104e6f6e6500000010536f6d650400c1040000010000cd04000002d10400d1040000040800d50400d504084473705f6e706f735f656c656374696f6e731c537570706f727404244163636f756e744964010000080114746f74616c18013c457874656e64656442616c616e6365000118766f74657273f401845665633c284163636f756e7449642c20457874656e64656442616c616e6365293e0000d904106c706f6c6b61646f745f72756e74696d655f70617261636861696e7334636f6e66696775726174696f6e1870616c6c65741043616c6c0404540001a4807365745f76616c69646174696f6e5f757067726164655f6672657175656e637904010c6e6577100138543a3a426c6f636b4e756d62657200000494536574207468652076616c69646174696f6e2075706772616465206672657175656e63792e707365745f76616c69646174696f6e5f757067726164655f64656c617904010c6e6577100138543a3a426c6f636b4e756d62657200010484536574207468652076616c69646174696f6e20757067726164652064656c61792e647365745f636f64655f726574656e74696f6e5f706572696f6404010c6e6577100138543a3a426c6f636b4e756d626572000204d05365742074686520616363657074616e636520706572696f6420666f7220616e20696e636c756465642063616e6469646174652e447365745f6d61785f636f64655f73697a6504010c6e657710010c753332000304dc53657420746865206d61782076616c69646174696f6e20636f64652073697a6520666f7220696e636f6d696e672075706772616465732e407365745f6d61785f706f765f73697a6504010c6e657710010c753332000404c453657420746865206d617820504f5620626c6f636b2073697a6520666f7220696e636f6d696e672075706772616465732e587365745f6d61785f686561645f646174615f73697a6504010c6e657710010c7533320005049453657420746865206d6178206865616420646174612073697a6520666f722070617261732e507365745f706172617468726561645f636f72657304010c6e657710010c753332000604b453657420746865206e756d626572206f66207061726174687265616420657865637574696f6e20636f7265732e587365745f706172617468726561645f7265747269657304010c6e657710010c753332000704d853657420746865206e756d626572206f66207265747269657320666f72206120706172746963756c617220706172617468726561642e707365745f67726f75705f726f746174696f6e5f6672657175656e637904010c6e6577100138543a3a426c6f636b4e756d626572000804d0536574207468652070617261636861696e2076616c696461746f722d67726f757020726f746174696f6e206672657175656e6379747365745f636861696e5f617661696c6162696c6974795f706572696f6404010c6e6577100138543a3a426c6f636b4e756d626572000904ac5365742074686520617661696c6162696c69747920706572696f6420666f722070617261636861696e732e787365745f7468726561645f617661696c6162696c6974795f706572696f6404010c6e6577100138543a3a426c6f636b4e756d626572000a04b05365742074686520617661696c6162696c69747920706572696f6420666f722070617261746872656164732e607365745f7363686564756c696e675f6c6f6f6b616865616404010c6e657710010c753332000b04390153657420746865207363686564756c696e67206c6f6f6b61686561642c20696e206578706563746564206e756d626572206f6620626c6f636b73206174207065616b207468726f7567687075742e6c7365745f6d61785f76616c696461746f72735f7065725f636f726504010c6e65777902012c4f7074696f6e3c7533323e000c04ec53657420746865206d6178696d756d206e756d626572206f662076616c696461746f727320746f2061737369676e20746f20616e7920636f72652e487365745f6d61785f76616c696461746f727304010c6e65777902012c4f7074696f6e3c7533323e000d040d0153657420746865206d6178696d756d206e756d626572206f662076616c696461746f727320746f2075736520696e2070617261636861696e20636f6e73656e7375732e487365745f646973707574655f706572696f6404010c6e657710013053657373696f6e496e646578000e040d0153657420746865206469737075746520706572696f642c20696e206e756d626572206f662073657373696f6e7320746f206b65657020666f722064697370757465732eb47365745f646973707574655f706f73745f636f6e636c7573696f6e5f616363657074616e63655f706572696f6404010c6e6577100138543a3a426c6f636b4e756d626572000f04c853657420746865206469737075746520706f737420636f6e636c7573696f6e20616363657074616e636520706572696f642e687365745f646973707574655f6d61785f7370616d5f736c6f747304010c6e657710010c753332001004b453657420746865206d6178696d756d206e756d626572206f662064697370757465207370616d20736c6f74732ea47365745f646973707574655f636f6e636c7573696f6e5f62795f74696d655f6f75745f706572696f6404010c6e6577100138543a3a426c6f636b4e756d626572001104b853657420746865206469737075746520636f6e636c7573696f6e2062792074696d65206f757420706572696f642e447365745f6e6f5f73686f775f736c6f747304010c6e657710010c753332001208f853657420746865206e6f2073686f7720736c6f74732c20696e206e756d626572206f66206e756d626572206f6620636f6e73656e73757320736c6f74732e4c4d757374206265206174206c6561737420312e507365745f6e5f64656c61795f7472616e6368657304010c6e657710010c7533320013049c5365742074686520746f74616c206e756d626572206f662064656c6179207472616e636865732e787365745f7a65726f74685f64656c61795f7472616e6368655f776964746804010c6e657710010c7533320014048c53657420746865207a65726f74682064656c6179207472616e6368652077696474682e507365745f6e65656465645f617070726f76616c7304010c6e657710010c753332001504dc53657420746865206e756d626572206f662076616c696461746f7273206e656564656420746f20617070726f7665206120626c6f636b2e707365745f72656c61795f7672665f6d6f64756c6f5f73616d706c657304010c6e657710010c753332001604590153657420746865206e756d626572206f662073616d706c657320746f20646f206f6620746865206052656c61795652464d6f64756c6f6020617070726f76616c2061737369676e6d656e7420637269746572696f6e2e687365745f6d61785f7570776172645f71756575655f636f756e7404010c6e657710010c7533320017042d015365747320746865206d6178696d756d206974656d7320746861742063616e2070726573656e7420696e206120757077617264206469737061746368207175657565206174206f6e63652e647365745f6d61785f7570776172645f71756575655f73697a6504010c6e657710010c75333200180465015365747320746865206d6178696d756d20746f74616c2073697a65206f66206974656d7320746861742063616e2070726573656e7420696e206120757077617264206469737061746368207175657565206174206f6e63652e747365745f6d61785f646f776e776172645f6d6573736167655f73697a6504010c6e657710010c7533320019049c5365742074686520637269746963616c20646f776e77617264206d6573736167652073697a652e707365745f756d705f736572766963655f746f74616c5f77656967687404010c6e6577200118576569676874001a043901536574732074686520736f6674206c696d697420666f7220746865207068617365206f66206469737061746368696e6720646973706174636861626c6520757077617264206d657373616765732e6c7365745f6d61785f7570776172645f6d6573736167655f73697a6504010c6e657710010c753332001b042d015365747320746865206d6178696d756d2073697a65206f6620616e20757077617264206d65737361676520746861742063616e2062652073656e7420627920612063616e6469646174652ea07365745f6d61785f7570776172645f6d6573736167655f6e756d5f7065725f63616e64696461746504010c6e657710010c753332001c0405015365747320746865206d6178696d756d206e756d626572206f66206d65737361676573207468617420612063616e6469646174652063616e20636f6e7461696e2e647365745f68726d705f6f70656e5f726571756573745f74746c04010c6e657710010c753332001d0435015365747320746865206e756d626572206f662073657373696f6e7320616674657220776869636820616e2048524d50206f70656e206368616e6e656c207265717565737420657870697265732e5c7365745f68726d705f73656e6465725f6465706f73697404010c6e657718011c42616c616e6365001e045101536574732074686520616d6f756e74206f662066756e64732074686174207468652073656e6465722073686f756c642070726f7669646520666f72206f70656e696e6720616e2048524d50206368616e6e656c2e687365745f68726d705f726563697069656e745f6465706f73697404010c6e657718011c42616c616e6365001f086101536574732074686520616d6f756e74206f662066756e647320746861742074686520726563697069656e742073686f756c642070726f7669646520666f7220616363657074696e67206f70656e696e6720616e2048524d50206368616e6e656c2e747365745f68726d705f6368616e6e656c5f6d61785f636170616369747904010c6e657710010c7533320020041d015365747320746865206d6178696d756d206e756d626572206f66206d6573736167657320616c6c6f77656420696e20616e2048524d50206368616e6e656c206174206f6e63652e7c7365745f68726d705f6368616e6e656c5f6d61785f746f74616c5f73697a6504010c6e657710010c75333200210451015365747320746865206d6178696d756d20746f74616c2073697a65206f66206d6573736167657320696e20627974657320616c6c6f77656420696e20616e2048524d50206368616e6e656c206174206f6e63652e9c7365745f68726d705f6d61785f70617261636861696e5f696e626f756e645f6368616e6e656c7304010c6e657710010c75333200220449015365747320746865206d6178696d756d206e756d626572206f6620696e626f756e642048524d50206368616e6e656c7320612070617261636861696e20697320616c6c6f77656420746f206163636570742ea07365745f68726d705f6d61785f706172617468726561645f696e626f756e645f6368616e6e656c7304010c6e657710010c7533320023044d015365747320746865206d6178696d756d206e756d626572206f6620696e626f756e642048524d50206368616e6e656c732061207061726174687265616420697320616c6c6f77656420746f206163636570742e847365745f68726d705f6368616e6e656c5f6d61785f6d6573736167655f73697a6504010c6e657710010c7533320024043d015365747320746865206d6178696d756d2073697a65206f662061206d657373616765207468617420636f756c6420657665722062652070757420696e746f20616e2048524d50206368616e6e656c2ea07365745f68726d705f6d61785f70617261636861696e5f6f7574626f756e645f6368616e6e656c7304010c6e657710010c75333200250445015365747320746865206d6178696d756d206e756d626572206f66206f7574626f756e642048524d50206368616e6e656c7320612070617261636861696e20697320616c6c6f77656420746f206f70656e2ea47365745f68726d705f6d61785f706172617468726561645f6f7574626f756e645f6368616e6e656c7304010c6e657710010c75333200260449015365747320746865206d6178696d756d206e756d626572206f66206f7574626f756e642048524d50206368616e6e656c732061207061726174687265616420697320616c6c6f77656420746f206f70656e2e987365745f68726d705f6d61785f6d6573736167655f6e756d5f7065725f63616e64696461746504010c6e657710010c75333200270435015365747320746865206d6178696d756d206e756d626572206f66206f7574626f756e642048524d50206d657373616765732063616e2062652073656e7420627920612063616e6469646174652e747365745f756d705f6d61785f696e646976696475616c5f77656967687404010c6e657720011857656967687400280431015365747320746865206d6178696d756d20616d6f756e74206f662077656967687420616e7920696e646976696475616c20757077617264206d657373616765206d617920636f6e73756d652e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632edd04106c706f6c6b61646f745f72756e74696d655f70617261636861696e73187368617265641870616c6c65741043616c6c040454000100042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ee104106c706f6c6b61646f745f72756e74696d655f70617261636861696e7324696e636c7573696f6e1870616c6c65741043616c6c040454000100042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ee504106c706f6c6b61646f745f72756e74696d655f70617261636861696e733870617261735f696e686572656e741870616c6c65741043616c6c04045400010414656e74657204011064617461e904018450617261636861696e73496e686572656e74446174613c543a3a4865616465723e0000043101456e7465722074686520706172617320696e686572656e742e20546869732077696c6c2070726f63657373206269746669656c647320616e64206261636b65642063616e646964617465732e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ee9040c4c706f6c6b61646f745f7072696d69746976657308763130496e686572656e7444617461040c484452011d02001001246269746669656c6473ed040190556e636865636b65645369676e6564417661696c6162696c6974794269746669656c64730001446261636b65645f63616e646964617465730905017c5665633c4261636b656443616e6469646174653c4844523a3a486173683e3e0001206469737075746573310501604d756c74694469737075746553746174656d656e74536574000134706172656e745f6865616465721d02010c4844520000ed04000002f10400f104104c706f6c6b61646f745f7072696d697469766573087631187369676e65643c556e636865636b65645369676e6564081c5061796c6f616401f5042c5265616c5061796c6f616401f504000c011c7061796c6f6164f504011c5061796c6f616400013c76616c696461746f725f696e6465780105013856616c696461746f72496e6465780001247369676e61747572650505014856616c696461746f725369676e61747572650000f5040c4c706f6c6b61646f745f7072696d69746976657308763150417661696c6162696c6974794269746669656c6400000400f904017c4269745665633c6269747665633a3a6f726465723a3a4c7362302c2075383e0000f90400000708fd0400fd040c18626974766563146f72646572104c7362300000000001050c4c706f6c6b61646f745f7072696d6974697665730876303856616c696461746f72496e6465780000040010010c75333200000505104c706f6c6b61646f745f7072696d6974697665730876303476616c696461746f725f617070245369676e6174757265000004005d010148737232353531393a3a5369676e6174757265000009050000020d05000d050c4c706f6c6b61646f745f7072696d6974697665730876313c4261636b656443616e6469646174650404480124000c012463616e64696461746511050170436f6d6d697474656443616e646964617465526563656970743c483e00013876616c69646974795f766f746573290501605665633c56616c69646974794174746573746174696f6e3e00014476616c696461746f725f696e6469636573f904017c4269745665633c6269747665633a3a6f726465723a3a4c7362302c2075383e000011050c4c706f6c6b61646f745f7072696d69746976657308763164436f6d6d697474656443616e6469646174655265636569707404044801240008012864657363726970746f724d01015843616e64696461746544657363726970746f723c483e00012c636f6d6d69746d656e74731505015043616e646964617465436f6d6d69746d656e7473000015050c4c706f6c6b61646f745f7072696d6974697665730876315043616e646964617465436f6d6d69746d656e747304044e01100018013c7570776172645f6d65737361676573c50101485665633c5570776172644d6573736167653e00014c686f72697a6f6e74616c5f6d65737361676573190501705665633c4f7574626f756e6448726d704d6573736167653c49643e3e00014c6e65775f76616c69646174696f6e5f636f6465210501584f7074696f6e3c56616c69646174696f6e436f64653e000124686561645f6461746169010120486561644461746100016c70726f6365737365645f646f776e776172645f6d6573736167657310010c75333200013868726d705f77617465726d61726b1001044e000019050000021d05001d050860706f6c6b61646f745f636f72655f7072696d6974697665734c4f7574626f756e6448726d704d6573736167650408496401510100080124726563697069656e745101010849640001106461746128015073705f7374643a3a7665633a3a5665633c75383e0000210504184f7074696f6e0404540125050108104e6f6e6500000010536f6d6504002505000001000025050c48706f6c6b61646f745f70617261636861696e287072696d6974697665733856616c69646174696f6e436f64650000040028011c5665633c75383e000029050000022d05002d050c4c706f6c6b61646f745f7072696d6974697665730876304c56616c69646974794174746573746174696f6e00010820496d706c6963697404000505014856616c696461746f725369676e6174757265000100204578706c6963697404000505014856616c696461746f725369676e617475726500020000310500000235050035050c4c706f6c6b61646f745f7072696d6974697665730876314c4469737075746553746174656d656e7453657400000c013863616e6469646174655f686173683905013443616e6469646174654861736800011c73657373696f6e10013053657373696f6e496e64657800012873746174656d656e74733d0501ec5665633c284469737075746553746174656d656e742c2056616c696461746f72496e6465782c2056616c696461746f725369676e6174757265293e000039050860706f6c6b61646f745f636f72655f7072696d6974697665733443616e64696461746548617368000004002401104861736800003d0500000241050041050000040c4505010505050045050c4c706f6c6b61646f745f7072696d697469766573087631404469737075746553746174656d656e740001081456616c696404004905016456616c69644469737075746553746174656d656e744b696e640000001c496e76616c696404004d05016c496e76616c69644469737075746553746174656d656e744b696e640001000049050c4c706f6c6b61646f745f7072696d6974697665730876316456616c69644469737075746553746174656d656e744b696e64000110204578706c696369740000003c4261636b696e675365636f6e646564040024011048617368000100304261636b696e6756616c696404002401104861736800020040417070726f76616c436865636b696e67000300004d050c4c706f6c6b61646f745f7072696d6974697665730876316c496e76616c69644469737075746553746174656d656e744b696e64000104204578706c69636974000000005105106c706f6c6b61646f745f72756e74696d655f70617261636861696e731470617261731870616c6c65741043616c6c04045400011458666f7263655f7365745f63757272656e745f636f646508011070617261510101185061726149640001206e65775f636f64652505013856616c69646174696f6e436f6465000004f8536574207468652073746f7261676520666f72207468652070617261636861696e2076616c69646174696f6e20636f646520696d6d6564696174656c792e58666f7263655f7365745f63757272656e745f6865616408011070617261510101185061726149640001206e65775f686561646901012048656164446174610001040101536574207468652073746f7261676520666f72207468652063757272656e742070617261636861696e2068656164206461746120696d6d6564696174656c792e6c666f7263655f7363686564756c655f636f64655f757067726164650c011070617261510101185061726149640001206e65775f636f64652505013856616c69646174696f6e436f646500014c72656c61795f706172656e745f6e756d626572100138543a3a426c6f636b4e756d6265720002042d015363686564756c6520616e207570677261646520617320696620697420776173207363686564756c656420696e2074686520676976656e2072656c617920706172656e7420626c6f636b2e4c666f7263655f6e6f74655f6e65775f6865616408011070617261510101185061726149640001206e65775f686561646901012048656164446174610003041d014e6f74652061206e657720626c6f636b206865616420666f7220706172612077697468696e2074686520636f6e74657874206f66207468652063757272656e7420626c6f636b2e48666f7263655f71756575655f616374696f6e040110706172615101011850617261496400040cf850757420612070617261636861696e206469726563746c7920696e746f20746865206e6578742073657373696f6e277320616374696f6e2071756575652ef457652063616e277420717565756520697420616e7920736f6f6e6572207468616e207468697320776974686f757420676f696e6720696e746f2074686538696e697469616c697a65722e2e2e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e5505106c706f6c6b61646f745f72756e74696d655f70617261636861696e732c696e697469616c697a65721870616c6c65741043616c6c04045400010434666f7263655f617070726f766504011475705f746f10012c426c6f636b4e756d62657200000c390149737375652061207369676e616c20746f2074686520636f6e73656e73757320656e67696e6520746f20666f726369626c79206163742061732074686f75676820616c6c2070617261636861696e5101626c6f636b7320696e20616c6c2072656c617920636861696e20626c6f636b7320757020746f20616e6420696e636c7564696e672074686520676976656e206e756d62657220696e207468652063757272656e74a0636861696e206172652076616c696420616e642073686f756c642062652066696e616c697a65642e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e5905106c706f6c6b61646f745f72756e74696d655f70617261636861696e730c646d701870616c6c65741043616c6c040454000100042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e5d05106c706f6c6b61646f745f72756e74696d655f70617261636861696e730c756d701870616c6c65741043616c6c04045400010448736572766963655f6f766572776569676874080114696e64657820013c4f766572776569676874496e6465780001307765696768745f6c696d6974200118576569676874000030ac5365727669636520612073696e676c65206f76657277656967687420757077617264206d6573736167652e00c02d20606f726967696e603a204d75737420706173732060457865637574654f7665727765696768744f726967696e602ee82d2060696e646578603a2054686520696e646578206f6620746865206f766572776569676874206d65737361676520746f20736572766963652e1d012d20607765696768745f6c696d6974603a2054686520616d6f756e74206f66207765696768742074686174206d65737361676520657865637574696f6e206d61792074616b652e001c4572726f72733adc2d2060556e6b6e6f776e4d657373616765496e646578603a204d657373616765206f662060696e6465786020697320756e6b6e6f776e2e2d012d20605765696768744f7665724c696d6974603a204d65737361676520657865637574696f6e206d6179207573652067726561746572207468616e20607765696768745f6c696d6974602e001c4576656e74733a8c2d20604f7665727765696768745365727669636564603a204f6e20737563636573732e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e6105106c706f6c6b61646f745f72756e74696d655f70617261636861696e731068726d701870616c6c65741043616c6c04045400011c5868726d705f696e69745f6f70656e5f6368616e6e656c0c0124726563697069656e745101011850617261496400015470726f706f7365645f6d61785f636170616369747910010c75333200016470726f706f7365645f6d61785f6d6573736167655f73697a6510010c7533320000284d01496e697469617465206f70656e696e672061206368616e6e656c2066726f6d20612070617261636861696e20746f206120676976656e20726563697069656e74207769746820676976656e206368616e6e656c2c706172616d65746572732e0059012d206070726f706f7365645f6d61785f636170616369747960202d2073706563696669657320686f77206d616e79206d657373616765732063616e20626520696e20746865206368616e6e656c206174206f6e63652e2d012d206070726f706f7365645f6d61785f6d6573736167655f73697a6560202d2073706563696669657320746865206d6178696d756d2073697a65206f6620746865206d657373616765732e0011015468657365206e756d62657273206172652061207375626a65637420746f207468652072656c61792d636861696e20636f6e66696775726174696f6e206c696d6974732e005101546865206368616e6e656c2063616e206265206f70656e6564206f6e6c792061667465722074686520726563697069656e7420636f6e6669726d7320697420616e64206f6e6c79206f6e20612073657373696f6e1c6368616e67652e6068726d705f6163636570745f6f70656e5f6368616e6e656c04011873656e6465725101011850617261496400010cf041636365707420612070656e64696e67206f70656e206368616e6e656c20726571756573742066726f6d2074686520676976656e2073656e6465722e00f4546865206368616e6e656c2077696c6c206265206f70656e6564206f6e6c79206f6e20746865206e6578742073657373696f6e20626f756e646172792e4868726d705f636c6f73655f6368616e6e656c0401286368616e6e656c5f69648901013448726d704368616e6e656c49640002105501496e69746961746520756e696c61746572616c20636c6f73696e67206f662061206368616e6e656c2e20546865206f726967696e206d75737420626520656974686572207468652073656e646572206f722074686598726563697069656e7420696e20746865206368616e6e656c206265696e6720636c6f7365642e00c054686520636c6f737572652063616e206f6e6c792068617070656e206f6e20612073657373696f6e206368616e67652e40666f7263655f636c65616e5f68726d7004011070617261510101185061726149640003141901546869732065787472696e7369632074726967676572732074686520636c65616e7570206f6620616c6c207468652048524d502073746f72616765206974656d7320746861742101612070617261206d617920686176652e204e6f726d616c6c7920746869732068617070656e73206f6e6365207065722073657373696f6e2c20627574207468697320616c6c6f77730101796f7520746f20747269676765722074686520636c65616e757020696d6d6564696174656c7920666f7220612073706563696669632070617261636861696e2e00504f726967696e206d75737420626520526f6f742e5c666f7263655f70726f636573735f68726d705f6f70656e000410a4466f7263652070726f636573732048524d50206f70656e206368616e6e656c2072657175657374732e0005014966207468657265206172652070656e64696e672048524d50206f70656e206368616e6e656c2072657175657374732c20796f752063616e207573652074686973cc66756e6374696f6e2070726f6365737320616c6c206f662074686f736520726571756573747320696d6d6564696174656c792e60666f7263655f70726f636573735f68726d705f636c6f7365000510a8466f7263652070726f636573732048524d5020636c6f7365206368616e6e656c2072657175657374732e0009014966207468657265206172652070656e64696e672048524d5020636c6f7365206368616e6e656c2072657175657374732c20796f752063616e207573652074686973cc66756e6374696f6e2070726f6365737320616c6c206f662074686f736520726571756573747320696d6d6564696174656c792e6068726d705f63616e63656c5f6f70656e5f726571756573740401286368616e6e656c5f69648901013448726d704368616e6e656c49640006145d01546869732063616e63656c7320612070656e64696e67206f70656e206368616e6e656c20726571756573742e2049742063616e2062652063616e63656c656420626520656974686572206f66207468652073656e64657219016f722074686520726563697069656e7420666f72207468617420726571756573742e20546865206f726967696e206d75737420626520656974686572206f662074686f73652e0055015468652063616e63656c6c696e672068617070656e7320696d6d6564696174656c792e204974206973206e6f7420706f737369626c6520746f2063616e63656c20746865207265717565737420696620697420697344616c72656164792061636365707465642e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e6505105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e3c70617261735f7265676973747261721870616c6c65741043616c6c0404540001182072656769737465720c010869645101011850617261496400013067656e657369735f6865616469010120486561644461746100013c76616c69646174696f6e5f636f64652505013856616c69646174696f6e436f6465000038f852656769737465722068656164206461746120616e642076616c69646174696f6e20636f646520666f72206120726573657276656420506172612049642e0030232320417267756d656e7473c02d20606f726967696e603a204d7573742062652063616c6c6564206279206120605369676e656460206f726967696e2e2d012d20606964603a2054686520706172612049442e204d757374206265206f776e65642f6d616e616765642062792074686520606f726967696e60207369676e696e67206163636f756e742e01012d206067656e657369735f68656164603a205468652067656e6573697320686561642064617461206f66207468652070617261636861696e2f7468726561642e25012d206076616c69646174696f6e5f636f6465603a2054686520696e697469616c2076616c69646174696f6e20636f6465206f66207468652070617261636861696e2f7468726561642e00402323204465706f736974732f466565739501546865206f726967696e207369676e6564206163636f756e74206d7573742072657365727665206120636f72726573706f6e64696e67206465706f73697420666f722074686520726567697374726174696f6e2e20416e797468696e6720616c7265616479d872657365727665642070726576696f75736c7920666f7220746869732070617261204944206973206163636f756e74656420666f722e00242323204576656e7473d454686520605265676973746572656460206576656e7420697320656d697474656420696e2063617365206f6620737563636573732e38666f7263655f726567697374657214010c77686f000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e00010869645101011850617261496400013067656e657369735f6865616469010120486561644461746100013c76616c69646174696f6e5f636f64652505013856616c69646174696f6e436f6465000118dc466f7263652074686520726567697374726174696f6e206f6620612050617261204964206f6e207468652072656c617920636861696e2e00b8546869732066756e6374696f6e206d7573742062652063616c6c6564206279206120526f6f74206f726967696e2e001901546865206465706f7369742074616b656e2063616e2062652073706563696669656420666f72207468697320726567697374726174696f6e2e20416e79206050617261496460190163616e20626520726567697374657265642c20696e636c7564696e67207375622d3130303020494473207768696368206172652053797374656d2050617261636861696e732e286465726567697374657204010869645101011850617261496400020c050144657265676973746572206120506172612049642c2066726565696e6720616c6c206461746120616e642072657475726e696e6720616e79206465706f7369742e007d015468652063616c6c6572206d75737420626520526f6f742c2074686520607061726160206f776e65722c206f72207468652060706172616020697473656c662e205468652070617261206d757374206265206120706172617468726561642e10737761700801086964510101185061726149640001146f746865725101011850617261496400032cd85377617020612070617261636861696e207769746820616e6f746865722070617261636861696e206f7220706172617468726561642e000101546865206f726967696e206d75737420626520526f6f742c2074686520607061726160206f776e65722c206f72207468652060706172616020697473656c662e00610154686520737761702077696c6c2068617070656e206f6e6c7920696620746865726520697320616c726561647920616e206f70706f7369746520737761702070656e64696e672e204966207468657265206973206e6f742c590174686520737761702077696c6c2062652073746f72656420696e207468652070656e64696e67207377617073206d61702c20726561647920666f722061206c6174657220636f6e6669726d61746f727920737761702e005d01546865206050617261496460732072656d61696e206d617070656420746f207468652073616d652068656164206461746120616e6420636f646520736f2065787465726e616c20636f64652063616e2072656c79206f6e3d01605061726149646020746f2062652061206c6f6e672d7465726d206964656e746966696572206f662061206e6f74696f6e616c202270617261636861696e222e20486f77657665722c20746865697255017363686564756c696e6720696e666f2028692e652e2077686574686572207468657927726520612070617261746872656164206f722070617261636861696e292c2061756374696f6e20696e666f726d6174696f6e94616e64207468652061756374696f6e206465706f736974206172652073776974636865642e44666f7263655f72656d6f76655f6c6f636b04011070617261510101185061726149640004100d0152656d6f76652061206d616e61676572206c6f636b2066726f6d206120706172612e20546869732077696c6c20616c6c6f7720746865206d616e61676572206f662061350170726576696f75736c79206c6f636b6564207061726120746f2064657265676973746572206f7220737761702061207061726120776974686f7574207573696e6720676f7665726e616e63652e009843616e206f6e6c792062652063616c6c65642062792074686520526f6f74206f726967696e2e1c72657365727665000538945265736572766520612050617261204964206f6e207468652072656c617920636861696e2e004d01546869732066756e6374696f6e2077696c6c20726573657276652061206e6577205061726120496420746f206265206f776e65642f6d616e6167656420627920746865206f726967696e206163636f756e742e7d01546865206f726967696e206163636f756e742069732061626c6520746f2072656769737465722068656164206461746120616e642076616c69646174696f6e20636f6465207573696e67206072656769737465726020746f2063726561746581016120706172617468726561642e205573696e672074686520536c6f74732070616c6c65742c206120706172617468726561642063616e207468656e20626520757067726164656420746f2067657420612070617261636861696e20736c6f742e0030232320417267756d656e747379012d20606f726967696e603a204d7573742062652063616c6c6564206279206120605369676e656460206f726967696e2e204265636f6d657320746865206d616e616765722f6f776e6572206f6620746865206e657720706172612049442e00402323204465706f736974732f466565732101546865206f726967696e206d75737420726573657276652061206465706f736974206f662060506172614465706f7369746020666f722074686520726567697374726174696f6e2e00242323204576656e74736d015468652060526573657276656460206576656e7420697320656d697474656420696e2063617365206f6620737563636573732c2077686963682070726f76696465732074686520494420726573657276656420666f72207573652e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e6905105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e14736c6f74731870616c6c65741043616c6c04045400010c2c666f7263655f6c6561736514011070617261510101185061726149640001186c6561736572000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000130706572696f645f626567696e1001404c65617365506572696f644f663c543e000130706572696f645f636f756e741001404c65617365506572696f644f663c543e00001069014a757374206120636f6e6e65637420696e746f2074686520606c656173655f6f7574602063616c6c2c20696e206361736520526f6f742077616e747320746f20666f72636520736f6d65206c6561736520746f2068617070656ee0696e646570656e64656e746c79206f6620616e79206f74686572206f6e2d636861696e206d656368616e69736d20746f207573652069742e009843616e206f6e6c792062652063616c6c65642062792074686520526f6f74206f726967696e2e40636c6561725f616c6c5f6c6561736573040110706172615101011850617261496400010c4d01436c65617220616c6c206c656173657320666f72206120506172612049642c20726566756e64696e6720616e79206465706f73697473206261636b20746f20746865206f726967696e616c206f776e6572732e009843616e206f6e6c792062652063616c6c65642062792074686520526f6f74206f726967696e2e3c747269676765725f6f6e626f617264040110706172615101011850617261496400021c250154727920746f206f6e626f61726420612070617261636861696e2074686174206861732061206c6561736520666f72207468652063757272656e74206c6561736520706572696f642e004501546869732066756e6374696f6e2063616e2062652075736566756c2069662074686572652077617320736f6d6520737461746520697373756520776974682061207061726120746861742073686f756c64390168617665206f6e626f61726465642c206275742077617320756e61626c6520746f2e204173206c6f6e67206173207468657920686176652061206c6561736520706572696f642c2077652063616e6c6c6574207468656d206f6e626f6172642066726f6d20686572652e00cc4f726967696e206d757374206265207369676e65642c206275742063616e2062652063616c6c656420627920616e796f6e652e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e6d05105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e2061756374696f6e731870616c6c65741043616c6c04045400010c2c6e65775f61756374696f6e0801206475726174696f6ead010138543a3a426c6f636b4e756d6265720001486c656173655f706572696f645f696e646578ad0101404c65617365506572696f644f663c543e000014544372656174652061206e65772061756374696f6e2e005101546869732063616e206f6e6c792068617070656e207768656e2074686572652069736e277420616c726561647920616e2061756374696f6e20696e2070726f677265737320616e64206d6179206f6e6c79206265250163616c6c65642062792074686520726f6f74206f726967696e2e20416363657074732074686520606475726174696f6e60206f6620746869732061756374696f6e20616e64207468655901606c656173655f706572696f645f696e64657860206f662074686520696e697469616c206c6561736520706572696f64206f662074686520666f757220746861742061726520746f2062652061756374696f6e65642e0c626964140110706172617105011850617261496400013461756374696f6e5f696e646578ad01013041756374696f6e496e64657800012866697273745f736c6f74ad0101404c65617365506572696f644f663c543e0001246c6173745f736c6f74ad0101404c65617365506572696f644f663c543e000118616d6f756e74cc013042616c616e63654f663c543e00014049014d616b652061206e6577206269642066726f6d20616e206163636f756e742028696e636c7564696e6720612070617261636861696e206163636f756e742920666f72206465706c6f79696e672061206e65772870617261636861696e2e0059014d756c7469706c652073696d756c74616e656f757320626964732066726f6d207468652073616d65206269646465722061726520616c6c6f776564206f6e6c79206173206c6f6e6720617320616c6c206163746976653d0162696473206f7665726c61702065616368206f746865722028692e652e20617265206d757475616c6c79206578636c7573697665292e20426964732063616e6e6f742062652072656461637465642e0055012d20607375626020697320746865207375622d6269646465722049442c20616c6c6f77696e6720666f72206d756c7469706c6520636f6d706574696e67206269647320746f206265206d6164652062792028616e647066756e64656420627929207468652073616d65206163636f756e742e4d012d206061756374696f6e5f696e646578602069732074686520696e646578206f66207468652061756374696f6e20746f20626964206f6e2e2053686f756c64206a757374206265207468652070726573656e746876616c7565206f66206041756374696f6e436f756e746572602e49012d206066697273745f736c6f746020697320746865206669727374206c6561736520706572696f6420696e646578206f66207468652072616e676520746f20626964206f6e2e20546869732069732074686509016162736f6c757465206c6561736520706572696f6420696e6465782076616c75652c206e6f7420616e2061756374696f6e2d7370656369666963206f66667365742e41012d20606c6173745f736c6f746020697320746865206c617374206c6561736520706572696f6420696e646578206f66207468652072616e676520746f20626964206f6e2e20546869732069732074686509016162736f6c757465206c6561736520706572696f6420696e6465782076616c75652c206e6f7420616e2061756374696f6e2d7370656369666963206f66667365742e49012d2060616d6f756e74602069732074686520616d6f756e7420746f2062696420746f2062652068656c64206173206465706f73697420666f72207468652070617261636861696e2073686f756c6420746865c86269642077696e2e205468697320616d6f756e742069732068656c64207468726f7567686f7574207468652072616e67652e3863616e63656c5f61756374696f6e00020c7843616e63656c20616e20696e2d70726f67726573732061756374696f6e2e008843616e206f6e6c792062652063616c6c656420627920526f6f74206f726967696e2e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e71050000065101007505105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e2463726f77646c6f616e1870616c6c65741043616c6c04045400012018637265617465180114696e6465787105011850617261496400010c636170cc013042616c616e63654f663c543e00013066697273745f706572696f64ad0101404c65617365506572696f644f663c543e00012c6c6173745f706572696f64ad0101404c65617365506572696f644f663c543e00010c656e64ad010138543a3a426c6f636b4e756d62657200012076657269666965727905014c4f7074696f6e3c4d756c74695369676e65723e00001069014372656174652061206e65772063726f77646c6f616e696e672063616d706169676e20666f7220612070617261636861696e20736c6f7420776974682074686520676976656e206c6561736520706572696f642072616e67652e005d0154686973206170706c6965732061206c6f636b20746f20796f75722070617261636861696e20636f6e66696775726174696f6e2c20656e737572696e6720746861742069742063616e6e6f74206265206368616e676564646279207468652070617261636861696e206d616e616765722e28636f6e747269627574650c0114696e6465787105011850617261496400011476616c7565cc013042616c616e63654f663c543e0001247369676e6174757265890501584f7074696f6e3c4d756c74695369676e61747572653e0001085101436f6e7472696275746520746f20612063726f77642073616c652e20546869732077696c6c207472616e7366657220736f6d652062616c616e6365206f76657220746f2066756e6420612070617261636861696e5101736c6f742e2049742077696c6c20626520776974686472617761626c65207768656e207468652063726f77646c6f616e2068617320656e64656420616e64207468652066756e64732061726520756e757365642e20776974686472617708010c77686f000130543a3a4163636f756e744964000114696e64657871050118506172614964000244c057697468647261772066756c6c2062616c616e6365206f66206120737065636966696320636f6e7472696275746f722e00c04f726967696e206d757374206265207369676e65642c206275742063616e20636f6d652066726f6d20616e796f6e652e00ad015468652066756e64206d7573742062652065697468657220696e2c206f7220726561647920666f722c207265746972656d656e742e20466f7220612066756e6420746f206265202a696e2a207265746972656d656e742c207468656e20746865207265746972656d656e74f8666c6167206d757374206265207365742e20466f7220612066756e6420746f20626520726561647920666f72207265746972656d656e742c207468656e3a9c2d206974206d757374206e6f7420616c726561647920626520696e207265746972656d656e743b4d012d2074686520616d6f756e74206f66207261697365642066756e6473206d75737420626520626967676572207468616e20746865205f667265655f2062616c616e6365206f6620746865206163636f756e743b342d20616e64206569746865723abc20202d2074686520626c6f636b206e756d626572206d757374206265206174206c656173742060656e64603b206f722d0120202d207468652063757272656e74206c6561736520706572696f64206d7573742062652067726561746572207468616e207468652066756e64277320606c6173745f706572696f64602e006d01496e207468697320636173652c207468652066756e642773207265746972656d656e7420666c61672069732073657420616e64206974732060656e646020697320726573657420746f207468652063757272656e7420626c6f636b1c6e756d6265722e00f02d206077686f603a20546865206163636f756e742077686f736520636f6e747269627574696f6e2073686f756c642062652077697468647261776e2e19012d2060696e646578603a205468652070617261636861696e20746f2077686f73652063726f77646c6f616e2074686520636f6e747269627574696f6e20776173206d6164652e18726566756e64040114696e64657871050118506172614964000314e04175746f6d61746963616c6c7920726566756e6420636f6e7472696275746f7273206f6620616e20656e6465642063726f77646c6f616e2e210144756520746f20776569676874207265737472696374696f6e732c20746869732066756e6374696f6e206d6179206e65656420746f2062652063616c6c6564206d756c7469706c65490174696d657320746f2066756c6c7920726566756e6420616c6c2075736572732e2057652077696c6c20726566756e64206052656d6f76654b6579734c696d69746020757365727320617420612074696d652e00c04f726967696e206d757374206265207369676e65642c206275742063616e20636f6d652066726f6d20616e796f6e652e20646973736f6c7665040114696e64657871050118506172614964000404550152656d6f766520612066756e6420616674657220746865207265746972656d656e7420706572696f642068617320656e64656420616e6420616c6c2066756e64732068617665206265656e2072657475726e65642e1065646974180114696e6465787105011850617261496400010c636170cc013042616c616e63654f663c543e00013066697273745f706572696f64ad0101404c65617365506572696f644f663c543e00012c6c6173745f706572696f64ad0101404c65617365506572696f644f663c543e00010c656e64ad010138543a3a426c6f636b4e756d62657200012076657269666965727905014c4f7074696f6e3c4d756c74695369676e65723e00050cd0456469742074686520636f6e66696775726174696f6e20666f7220616e20696e2d70726f67726573732063726f77646c6f616e2e008843616e206f6e6c792062652063616c6c656420627920526f6f74206f726967696e2e206164645f6d656d6f080114696e646578510101185061726149640001106d656d6f28011c5665633c75383e00060cec41646420616e206f7074696f6e616c206d656d6f20746f20616e206578697374696e672063726f77646c6f616e20636f6e747269627574696f6e2e002d014f726967696e206d757374206265205369676e65642c20616e64207468652075736572206d757374206861766520636f6e747269627574656420746f207468652063726f77646c6f616e2e10706f6b65040114696e6465785101011850617261496400070c74506f6b65207468652066756e6420696e746f20604e657752616973656000dc4f726967696e206d757374206265205369676e65642c20616e64207468652066756e6420686173206e6f6e2d7a65726f2072616973652e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e790504184f7074696f6e040454017d050108104e6f6e6500000010536f6d6504007d0500000100007d05082873705f72756e74696d652c4d756c74695369676e657200010c1c456432353531390400b0013c656432353531393a3a5075626c69630000001c537232353531390400bc013c737232353531393a3a5075626c696300010014456364736104008105013465636473613a3a5075626c69630002000081050c1c73705f636f7265146563647361185075626c696300000400850501205b75383b2033335d00008505000003210000000800890504184f7074696f6e040454018d050108104e6f6e6500000010536f6d6504008d0500000100008d05082873705f72756e74696d65384d756c74695369676e617475726500010c1c456432353531390400ad020148656432353531393a3a5369676e61747572650000001c5372323535313904005d010148737232353531393a3a5369676e617475726500010014456364736104009105014065636473613a3a5369676e61747572650002000091050c1c73705f636f7265146563647361245369676e617475726500000400110301205b75383b2036355d000095050840706f6c6b61646f745f72756e74696d65304f726967696e43616c6c65720001141873797374656d0400990501746672616d655f73797374656d3a3a4f726967696e3c52756e74696d653e0000001c436f756e63696c04009d0501010170616c6c65745f636f6c6c6563746976653a3a4f726967696e3c52756e74696d652c2070616c6c65745f636f6c6c6563746976653a3a496e7374616e6365313e000f0048546563686e6963616c436f6d6d69747465650400a10501010170616c6c65745f636f6c6c6563746976653a3a4f726967696e3c52756e74696d652c2070616c6c65745f636f6c6c6563746976653a3a496e7374616e6365323e0010004050617261636861696e734f726967696e0400a505016470617261636861696e735f6f726967696e3a3a4f726967696e00320010566f69640400a90501110173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a566f696400040000990508306672616d655f73797374656d245261774f726967696e04244163636f756e7449640100010c10526f6f74000000185369676e656404000001244163636f756e744964000100104e6f6e65000200009d05084470616c6c65745f636f6c6c656374697665245261774f726967696e08244163636f756e7449640100044900010c1c4d656d62657273080010012c4d656d626572436f756e74000010012c4d656d626572436f756e74000000184d656d62657204000001244163636f756e744964000100205f5068616e746f6d00020000a105084470616c6c65745f636f6c6c656374697665245261774f726967696e08244163636f756e7449640100044900010c1c4d656d62657273080010012c4d656d626572436f756e74000010012c4d656d626572436f756e74000000184d656d62657204000001244163636f756e744964000100205f5068616e746f6d00020000a505106c706f6c6b61646f745f72756e74696d655f70617261636861696e73186f726967696e1870616c6c6574184f726967696e0001042450617261636861696e04005101011850617261496400000000a905081c73705f636f726510566f696400010000ad05084070616c6c65745f7363686564756c65722052656c656173657300010808563100000008563200010000b1050c4070616c6c65745f7363686564756c65721870616c6c6574144572726f72040454000110404661696c6564546f5363686564756c65000004644661696c656420746f207363686564756c6520612063616c6c204e6f74466f756e640001047c43616e6e6f742066696e6420746865207363686564756c65642063616c6c2e5c546172676574426c6f636b4e756d626572496e50617374000204a4476976656e2074617267657420626c6f636b206e756d62657220697320696e2074686520706173742e4852657363686564756c654e6f4368616e6765000304f052657363686564756c65206661696c6564206265636175736520697420646f6573206e6f74206368616e6765207363686564756c65642074696d652e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909b50510346672616d655f737570706f72741c73746f72616765407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401b905045300000400bd0501185665633c543e0000b9050000040825022000bd05000002b90500c10510346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e6465645665630804540104045300000400c50501185665633c543e0000c5050000020400c90504184f7074696f6e04045401040108104e6f6e6500000010536f6d650400040000010000cd05084473705f636f6e73656e7375735f62616265584261626545706f6368436f6e66696775726174696f6e00000801046335020128287536342c2075363429000134616c6c6f7765645f736c6f747339020130416c6c6f776564536c6f74730000d1050c2c70616c6c65745f626162651870616c6c6574144572726f7204045400010c60496e76616c696445717569766f636174696f6e50726f6f660000043101416e2065717569766f636174696f6e2070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e60496e76616c69644b65794f776e65727368697050726f6f66000104310141206b6579206f776e6572736869702070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e584475706c69636174654f6666656e63655265706f727400020415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909d5050000040c0018e800d9050c3870616c6c65745f696e64696365731870616c6c6574144572726f720404540001142c4e6f7441737369676e65640000048c54686520696e64657820776173206e6f7420616c72656164792061737369676e65642e204e6f744f776e6572000104a454686520696e6465782069732061737369676e656420746f20616e6f74686572206163636f756e742e14496e5573650002047054686520696e64657820776173206e6f7420617661696c61626c652e2c4e6f745472616e73666572000304c854686520736f7572636520616e642064657374696e6174696f6e206163636f756e747320617265206964656e746963616c2e245065726d616e656e74000404d054686520696e646578206973207065726d616e656e7420616e64206d6179206e6f742062652066726565642f6368616e6765642e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909dd0510346672616d655f737570706f72741c73746f72616765407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401e105045300000400e90501185665633c543e0000e105083c70616c6c65745f62616c616e6365732c42616c616e63654c6f636b041c42616c616e63650118000c01086964f50101384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e636500011c726561736f6e73e505011c526561736f6e730000e505083c70616c6c65745f62616c616e6365731c526561736f6e7300010c0c466565000000104d6973630001000c416c6c00020000e905000002e10500ed0510346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e64656456656308045401f105045300000400f50501185665633c543e0000f105083c70616c6c65745f62616c616e6365732c52657365727665446174610844526573657276654964656e74696669657201f5011c42616c616e63650118000801086964f5010144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e63650000f505000002f10500f905083c70616c6c65745f62616c616e6365732052656c65617365730001081856315f305f300000001856325f305f3000010000fd050c3c70616c6c65745f62616c616e6365731870616c6c6574144572726f720804540004490001203856657374696e6742616c616e63650000049856657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c7565544c69717569646974795265737472696374696f6e73000104c44163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c4c496e73756666696369656e7442616c616e63650002047442616c616e636520746f6f206c6f7720746f2073656e642076616c7565484578697374656e7469616c4465706f736974000304e856616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f736974244b656570416c6976650004048c5472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e745c4578697374696e6756657374696e675363686564756c65000504c8412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742c446561644163636f756e740006048842656e6566696369617279206163636f756e74206d757374207072652d65786973743c546f6f4d616e795265736572766573000704ac4e756d626572206f66206e616d656420726573657276657320657863656564204d6178526573657276657304bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a09090901060c3473705f61726974686d657469632c66697865645f706f696e7424466978656455313238000004001801107531323800000506086870616c6c65745f7472616e73616374696f6e5f7061796d656e742052656c6561736573000108245631416e6369656e740000000856320001000009060000020d06000d060c346672616d655f737570706f72741c7765696768747358576569676874546f466565436f656666696369656e74041c42616c616e6365011800100134636f6566665f696e746567657218011c42616c616e6365000128636f6566665f66726163b901011c50657262696c6c0001206e65676174697665e80110626f6f6c0001186465677265650801087538000011060000021506001506084470616c6c65745f617574686f727368697038556e636c65456e7472794974656d0c2c426c6f636b4e756d62657201101048617368012418417574686f72010001083c496e636c7573696f6e486569676874040010012c426c6f636b4e756d62657200000014556e636c650800240110486173680000f10201384f7074696f6e3c417574686f723e0001000019060c4470616c6c65745f617574686f72736869701870616c6c6574144572726f7204045400011c48496e76616c6964556e636c65506172656e740000048854686520756e636c6520706172656e74206e6f7420696e2074686520636861696e2e40556e636c6573416c726561647953657400010480556e636c657320616c72656164792073657420696e2074686520626c6f636b2e34546f6f4d616e79556e636c657300020440546f6f206d616e7920756e636c65732e3047656e65736973556e636c650003045454686520756e636c652069732067656e657369732e30546f6f48696768556e636c650004047c54686520756e636c6520697320746f6f206869676820696e20636861696e2e50556e636c65416c7265616479496e636c756465640005047854686520756e636c6520697320616c726561647920696e636c756465642e204f6c64556e636c65000604b454686520756e636c652069736e277420726563656e7420656e6f75676820746f20626520696e636c756465642e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a0909091d06083870616c6c65745f7374616b696e67345374616b696e674c656467657208244163636f756e74496401001c42616c616e636501180014011473746173680001244163636f756e744964000114746f74616ccc011c42616c616e6365000118616374697665cc011c42616c616e6365000124756e6c6f636b696e67210601645665633c556e6c6f636b4368756e6b3c42616c616e63653e3e00013c636c61696d65645f72657761726473750201345665633c457261496e6465783e000021060000022506002506083870616c6c65745f7374616b696e672c556e6c6f636b4368756e6b041c42616c616e636501180008011476616c7565cc011c42616c616e636500010c657261ad010120457261496e64657800002906083870616c6c65745f7374616b696e672c4e6f6d696e6174696f6e7304244163636f756e7449640100000c011c74617267657473dc01385665633c4163636f756e7449643e0001307375626d69747465645f696e100120457261496e64657800012873757070726573736564e80110626f6f6c00002d06083870616c6c65745f7374616b696e6734416374697665457261496e666f0000080114696e646578100120457261496e6465780001147374617274d501012c4f7074696f6e3c7536343e00003106000004081000003506083870616c6c65745f7374616b696e673c457261526577617264506f696e747304244163636f756e744964010000080114746f74616c10012c526577617264506f696e74000128696e646976696475616c3906018042547265654d61703c4163636f756e7449642c20526577617264506f696e743e00003906042042547265654d617008044b0100045601100004003d060000003d060000024106004106000004080010004506083870616c6c65745f7374616b696e671c466f7263696e67000110284e6f74466f7263696e6700000020466f7263654e657700010024466f7263654e6f6e650002002c466f726365416c776179730003000049060000024d06004d06083870616c6c65745f7374616b696e6738556e6170706c696564536c61736808244163636f756e74496401001c42616c616e636501180014012476616c696461746f720001244163636f756e74496400010c6f776e18011c42616c616e63650001186f7468657273f401645665633c284163636f756e7449642c2042616c616e6365293e0001247265706f7274657273dc01385665633c4163636f756e7449643e0001187061796f757418011c42616c616e63650000510600000408b901180055060c3870616c6c65745f7374616b696e6720736c617368696e6734536c617368696e675370616e7300001001287370616e5f696e6465781001245370616e496e6465780001286c6173745f7374617274100120457261496e6465780001486c6173745f6e6f6e7a65726f5f736c617368100120457261496e6465780001147072696f72750201345665633c457261496e6465783e000059060c3870616c6c65745f7374616b696e6720736c617368696e67285370616e5265636f7264041c42616c616e636501180008011c736c617368656418011c42616c616e6365000120706169645f6f757418011c42616c616e636500005d06083870616c6c65745f7374616b696e672052656c65617365730001203456315f305f30416e6369656e740000001856325f305f300001001856335f305f300002001856345f305f300003001856355f305f300004001856365f305f300005001856375f305f300006001856385f305f30000700006106103870616c6c65745f7374616b696e671870616c6c65741870616c6c6574144572726f7204045400015c344e6f74436f6e74726f6c6c6572000004644e6f74206120636f6e74726f6c6c6572206163636f756e742e204e6f745374617368000104504e6f742061207374617368206163636f756e742e34416c7265616479426f6e64656400020460537461736820697320616c726561647920626f6e6465642e34416c726561647950616972656400030474436f6e74726f6c6c657220697320616c7265616479207061697265642e30456d7074795461726765747300040460546172676574732063616e6e6f7420626520656d7074792e384475706c6963617465496e646578000504404475706c696361746520696e6465782e44496e76616c6964536c617368496e64657800060484536c617368207265636f726420696e646578206f7574206f6620626f756e64732e40496e73756666696369656e74426f6e64000704cc43616e206e6f7420626f6e6420776974682076616c7565206c657373207468616e206d696e696d756d2072657175697265642e304e6f4d6f72654368756e6b730008049043616e206e6f74207363686564756c65206d6f726520756e6c6f636b206368756e6b732e344e6f556e6c6f636b4368756e6b000904a043616e206e6f74207265626f6e6420776974686f757420756e6c6f636b696e67206368756e6b732e3046756e646564546172676574000a04c8417474656d7074696e6720746f2074617267657420612073746173682074686174207374696c6c206861732066756e64732e48496e76616c6964457261546f526577617264000b0458496e76616c69642065726120746f207265776172642e68496e76616c69644e756d6265724f664e6f6d696e6174696f6e73000c0478496e76616c6964206e756d626572206f66206e6f6d696e6174696f6e732e484e6f74536f72746564416e64556e69717565000d04804974656d7320617265206e6f7420736f7274656420616e6420756e697175652e38416c7265616479436c61696d6564000e0409015265776172647320666f72207468697320657261206861766520616c7265616479206265656e20636c61696d656420666f7220746869732076616c696461746f722e54496e636f7272656374486973746f72794465707468000f04c0496e636f72726563742070726576696f757320686973746f727920646570746820696e7075742070726f76696465642e58496e636f7272656374536c617368696e675370616e73001004b0496e636f7272656374206e756d626572206f6620736c617368696e67207370616e732070726f76696465642e2042616453746174650011043901496e7465726e616c20737461746520686173206265636f6d6520736f6d65686f7720636f7272757074656420616e6420746865206f7065726174696f6e2063616e6e6f7420636f6e74696e75652e38546f6f4d616e795461726765747300120494546f6f206d616e79206e6f6d696e6174696f6e207461726765747320737570706c6965642e244261645461726765740013043d0141206e6f6d696e6174696f6e207461726765742077617320737570706c69656420746861742077617320626c6f636b6564206f72206f7468657277697365206e6f7420612076616c696461746f722e4043616e6e6f744368696c6c4f74686572001404550154686520757365722068617320656e6f75676820626f6e6420616e6420746875732063616e6e6f74206265206368696c6c656420666f72636566756c6c7920627920616e2065787465726e616c20706572736f6e2e44546f6f4d616e794e6f6d696e61746f72730015084d0154686572652061726520746f6f206d616e79206e6f6d696e61746f727320696e207468652073797374656d2e20476f7665726e616e6365206e6565647320746f2061646a75737420746865207374616b696e67b473657474696e677320746f206b656570207468696e6773207361666520666f72207468652072756e74696d652e44546f6f4d616e7956616c696461746f72730016084d0154686572652061726520746f6f206d616e792076616c696461746f727320696e207468652073797374656d2e20476f7665726e616e6365206e6565647320746f2061646a75737420746865207374616b696e67b473657474696e677320746f206b656570207468696e6773207361666520666f72207468652072756e74696d652e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a09090965060c2873705f7374616b696e671c6f6666656e6365384f6666656e636544657461696c7308205265706f727465720100204f6666656e64657201c4000801206f6666656e646572c401204f6666656e6465720001247265706f7274657273dc01345665633c5265706f727465723e00006906000004089828006d06000002710600710600000408008502007506000004087906280079060c1c73705f636f72651863727970746f244b65795479706549640000040038011c5b75383b20345d00007d060c3870616c6c65745f73657373696f6e1870616c6c6574144572726f7204045400011430496e76616c696450726f6f6600000460496e76616c6964206f776e6572736869702070726f6f662e5c4e6f4173736f63696174656456616c696461746f7249640001049c4e6f206173736f6369617465642076616c696461746f7220494420666f72206163636f756e742e344475706c6963617465644b65790002046452656769737465726564206475706c6963617465206b65792e184e6f4b657973000304a44e6f206b65797320617265206173736f63696174656420776974682074686973206163636f756e742e244e6f4163636f756e7400040419014b65792073657474696e67206163636f756e74206973206e6f74206c6976652c20736f206974277320696d706f737369626c6520746f206173736f6369617465206b6579732e04744572726f7220666f72207468652073657373696f6e2070616c6c65742e8106083870616c6c65745f6772616e6470612c53746f726564537461746504044e01100110104c6976650000003050656e64696e6750617573650801307363686564756c65645f61741001044e00011464656c61791001044e000100185061757365640002003450656e64696e67526573756d650801307363686564756c65645f61741001044e00011464656c61791001044e000300008506083870616c6c65745f6772616e6470614c53746f72656450656e64696e674368616e676508044e0110144c696d697400001001307363686564756c65645f61741001044e00011464656c61791001044e0001406e6578745f617574686f7269746965738906016c426f756e646564417574686f726974794c6973743c4c696d69743e000118666f72636564790201244f7074696f6e3c4e3e0000890610346672616d655f737570706f72741c73746f72616765407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401a8045300000400a401185665633c543e00008d060c3870616c6c65745f6772616e6470611870616c6c6574144572726f7204045400011c2c50617573654661696c65640000080501417474656d707420746f207369676e616c204752414e445041207061757365207768656e2074686520617574686f72697479207365742069736e2774206c697665a42865697468657220706175736564206f7220616c72656164792070656e64696e67207061757365292e30526573756d654661696c65640001081101417474656d707420746f207369676e616c204752414e44504120726573756d65207768656e2074686520617574686f72697479207365742069736e277420706175736564a028656974686572206c697665206f7220616c72656164792070656e64696e6720726573756d65292e344368616e676550656e64696e67000204e8417474656d707420746f207369676e616c204752414e445041206368616e67652077697468206f6e6520616c72656164792070656e64696e672e1c546f6f536f6f6e000304bc43616e6e6f74207369676e616c20666f72636564206368616e676520736f20736f6f6e206166746572206c6173742e60496e76616c69644b65794f776e65727368697050726f6f66000404310141206b6579206f776e6572736869702070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e60496e76616c696445717569766f636174696f6e50726f6f660005043101416e2065717569766f636174696f6e2070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e584475706c69636174654f6666656e63655265706f727400060415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909910610346672616d655f737570706f72741c73746f72616765407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401b8045300000400950601185665633c543e00009506000002b800990610346672616d655f737570706f727418747261697473106d69736334577261707065724f7061717565040454019d06000800ad010000009d0601045400009d06084070616c6c65745f696d5f6f6e6c696e6564426f756e6465644f70617175654e6574776f726b53746174650c4c506565724964456e636f64696e674c696d697400584d756c746941646472456e636f64696e674c696d697400384164647265737365734c696d6974000008011c706565725f6964a106019c5765616b426f756e6465645665633c75382c20506565724964456e636f64696e674c696d69743e00014865787465726e616c5f616464726573736573a506012d015765616b426f756e6465645665633c5765616b426f756e6465645665633c75382c204d756c746941646472456e636f64696e674c696d69743e2c204164647265737365734c696d69740a3e0000a10610346672616d655f737570706f72741c73746f72616765407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401080453000004002801185665633c543e0000a50610346672616d655f737570706f72741c73746f72616765407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401a106045300000400a90601185665633c543e0000a906000002a10600ad060c4070616c6c65745f696d5f6f6e6c696e651870616c6c6574144572726f7204045400010828496e76616c69644b6579000004604e6f6e206578697374656e74207075626c6963206b65792e4c4475706c696361746564486561727462656174000104544475706c696361746564206865617274626561742e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909b106000002b50600b5060000040c10240000b90600000408dc1800bd06084070616c6c65745f64656d6f637261637938507265696d6167655374617475730c244163636f756e74496401001c42616c616e636501182c426c6f636b4e756d626572011001081c4d697373696e67040010012c426c6f636b4e756d62657200000024417661696c61626c651401106461746128011c5665633c75383e00012070726f76696465720001244163636f756e74496400011c6465706f73697418011c42616c616e636500011473696e636510012c426c6f636b4e756d6265720001186578706972797902014c4f7074696f6e3c426c6f636b4e756d6265723e00010000c1060c4070616c6c65745f64656d6f6372616379147479706573385265666572656e64756d496e666f0c2c426c6f636b4e756d6265720110104861736801241c42616c616e6365011801081c4f6e676f696e670400c50601b05265666572656e64756d5374617475733c426c6f636b4e756d6265722c20486173682c2042616c616e63653e0000002046696e6973686564080120617070726f766564e80110626f6f6c00010c656e6410012c426c6f636b4e756d62657200010000c5060c4070616c6c65745f64656d6f6372616379147479706573405265666572656e64756d5374617475730c2c426c6f636b4e756d6265720110104861736801241c42616c616e636501180014010c656e6410012c426c6f636b4e756d62657200013470726f706f73616c5f68617368240110486173680001247468726573686f6c64e00134566f74655468726573686f6c6400011464656c617910012c426c6f636b4e756d62657200011474616c6c79c906013854616c6c793c42616c616e63653e0000c9060c4070616c6c65745f64656d6f63726163791474797065731454616c6c79041c42616c616e63650118000c01106179657318011c42616c616e63650001106e61797318011c42616c616e636500011c7475726e6f757418011c42616c616e63650000cd060c4070616c6c65745f64656d6f637261637910766f746518566f74696e670c1c42616c616e63650118244163636f756e74496401002c426c6f636b4e756d62657201100108184469726563740c0114766f746573d10601b05665633c285265666572656e64756d496e6465782c204163636f756e74566f74653c42616c616e63653e293e00012c64656c65676174696f6e73d906015044656c65676174696f6e733c42616c616e63653e0001147072696f72dd06017c5072696f724c6f636b3c426c6f636b4e756d6265722c2042616c616e63653e0000002844656c65676174696e6714011c62616c616e636518011c42616c616e63650001187461726765740001244163636f756e744964000128636f6e76696374696f6ee9020128436f6e76696374696f6e00012c64656c65676174696f6e73d906015044656c65676174696f6e733c42616c616e63653e0001147072696f72dd06017c5072696f724c6f636b3c426c6f636b4e756d6265722c2042616c616e63653e00010000d106000002d50600d5060000040810e10200d9060c4070616c6c65745f64656d6f63726163791474797065732c44656c65676174696f6e73041c42616c616e6365011800080114766f74657318011c42616c616e636500011c6361706974616c18011c42616c616e63650000dd060c4070616c6c65745f64656d6f637261637910766f7465245072696f724c6f636b082c426c6f636b4e756d62657201101c42616c616e6365011800080010012c426c6f636b4e756d626572000018011c42616c616e63650000e1060000040824e000e5060000040810dc00e906084070616c6c65745f64656d6f63726163792052656c656173657300010408563100000000ed060c4070616c6c65745f64656d6f63726163791870616c6c6574144572726f720404540001702056616c75654c6f770000043456616c756520746f6f206c6f773c50726f706f73616c4d697373696e670001045c50726f706f73616c20646f6573206e6f742065786973743c416c726561647943616e63656c65640002049443616e6e6f742063616e63656c207468652073616d652070726f706f73616c207477696365444475706c696361746550726f706f73616c0003045450726f706f73616c20616c7265616479206d6164654c50726f706f73616c426c61636b6c69737465640004046850726f706f73616c207374696c6c20626c61636b6c6973746564444e6f7453696d706c654d616a6f72697479000504a84e6578742065787465726e616c2070726f706f73616c206e6f742073696d706c65206d616a6f726974792c496e76616c69644861736800060430496e76616c69642068617368284e6f50726f706f73616c000704504e6f2065787465726e616c2070726f706f73616c34416c72656164795665746f6564000804984964656e74697479206d6179206e6f74207665746f20612070726f706f73616c207477696365444475706c6963617465507265696d61676500090458507265696d61676520616c7265616479206e6f7465642c4e6f74496d6d696e656e74000a04304e6f7420696d6d696e656e7420546f6f4561726c79000b0424546f6f206561726c7920496d6d696e656e74000c0420496d6d696e656e743c507265696d6167654d697373696e67000d0448507265696d616765206e6f7420666f756e64445265666572656e64756d496e76616c6964000e0484566f746520676976656e20666f7220696e76616c6964207265666572656e64756d3c507265696d616765496e76616c6964000f0440496e76616c696420707265696d6167652c4e6f6e6557616974696e67001004504e6f2070726f706f73616c732077616974696e67204e6f74566f746572001104c454686520676976656e206163636f756e7420646964206e6f7420766f7465206f6e20746865207265666572656e64756d2e304e6f5065726d697373696f6e001204c8546865206163746f7220686173206e6f207065726d697373696f6e20746f20636f6e647563742074686520616374696f6e2e44416c726561647944656c65676174696e6700130488546865206163636f756e7420697320616c72656164792064656c65676174696e672e44496e73756666696369656e7446756e6473001404fc546f6f206869676820612062616c616e6365207761732070726f7669646564207468617420746865206163636f756e742063616e6e6f74206166666f72642e344e6f7444656c65676174696e67001504a0546865206163636f756e74206973206e6f742063757272656e746c792064656c65676174696e672e28566f74657345786973740016085501546865206163636f756e742063757272656e746c792068617320766f74657320617474616368656420746f20697420616e6420746865206f7065726174696f6e2063616e6e6f74207375636365656420756e74696ce87468657365206172652072656d6f7665642c20656974686572207468726f7567682060756e766f746560206f722060726561705f766f7465602e44496e7374616e744e6f74416c6c6f776564001704d854686520696e7374616e74207265666572656e64756d206f726967696e2069732063757272656e746c7920646973616c6c6f7765642e204e6f6e73656e73650018049444656c65676174696f6e20746f206f6e6573656c66206d616b6573206e6f2073656e73652e3c57726f6e675570706572426f756e6400190450496e76616c696420757070657220626f756e642e3c4d6178566f74657352656163686564001a04804d6178696d756d206e756d626572206f6620766f74657320726561636865642e40546f6f4d616e7950726f706f73616c73001b04904d6178696d756d206e756d626572206f662070726f706f73616c7320726561636865642e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909f10610346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e6465645665630804540124045300000400a10101185665633c543e0000f506084470616c6c65745f636f6c6c65637469766514566f74657308244163636f756e74496401002c426c6f636b4e756d626572011000140114696e64657810013450726f706f73616c496e6465780001247468726573686f6c6410012c4d656d626572436f756e7400011061796573dc01385665633c4163636f756e7449643e0001106e617973dc01385665633c4163636f756e7449643e00010c656e6410012c426c6f636b4e756d6265720000f9060c4470616c6c65745f636f6c6c6563746976651870616c6c6574144572726f72080454000449000128244e6f744d656d6265720000045c4163636f756e74206973206e6f742061206d656d626572444475706c696361746550726f706f73616c0001047c4475706c69636174652070726f706f73616c73206e6f7420616c6c6f7765643c50726f706f73616c4d697373696e670002044c50726f706f73616c206d7573742065786973742857726f6e67496e646578000304404d69736d61746368656420696e646578344475706c6963617465566f7465000404584475706c696361746520766f74652069676e6f72656448416c7265616479496e697469616c697a6564000504804d656d626572732061726520616c726561647920696e697469616c697a65642120546f6f4561726c79000604010154686520636c6f73652063616c6c20776173206d61646520746f6f206561726c792c206265666f72652074686520656e64206f662074686520766f74696e672e40546f6f4d616e7950726f706f73616c73000704fc54686572652063616e206f6e6c792062652061206d6178696d756d206f6620604d617850726f706f73616c7360206163746976652070726f706f73616c732e4c57726f6e6750726f706f73616c576569676874000804d054686520676976656e2077656967687420626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e4c57726f6e6750726f706f73616c4c656e677468000904d054686520676976656e206c656e67746820626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909fd0610346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e6465645665630804540124045300000400a10101185665633c543e000001070c4470616c6c65745f636f6c6c6563746976651870616c6c6574144572726f72080454000449000128244e6f744d656d6265720000045c4163636f756e74206973206e6f742061206d656d626572444475706c696361746550726f706f73616c0001047c4475706c69636174652070726f706f73616c73206e6f7420616c6c6f7765643c50726f706f73616c4d697373696e670002044c50726f706f73616c206d7573742065786973742857726f6e67496e646578000304404d69736d61746368656420696e646578344475706c6963617465566f7465000404584475706c696361746520766f74652069676e6f72656448416c7265616479496e697469616c697a6564000504804d656d626572732061726520616c726561647920696e697469616c697a65642120546f6f4561726c79000604010154686520636c6f73652063616c6c20776173206d61646520746f6f206561726c792c206265666f72652074686520656e64206f662074686520766f74696e672e40546f6f4d616e7950726f706f73616c73000704fc54686572652063616e206f6e6c792062652061206d6178696d756d206f6620604d617850726f706f73616c7360206163746976652070726f706f73616c732e4c57726f6e6750726f706f73616c576569676874000804d054686520676976656e2077656967687420626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e4c57726f6e6750726f706f73616c4c656e677468000904d054686520676976656e206c656e67746820626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a09090905070000020907000907086470616c6c65745f656c656374696f6e735f70687261676d656e2853656174486f6c64657208244163636f756e74496401001c42616c616e63650118000c010c77686f0001244163636f756e7449640001147374616b6518011c42616c616e636500011c6465706f73697418011c42616c616e636500000d07086470616c6c65745f656c656374696f6e735f70687261676d656e14566f74657208244163636f756e74496401001c42616c616e63650118000c0114766f746573dc01385665633c4163636f756e7449643e0001147374616b6518011c42616c616e636500011c6465706f73697418011c42616c616e6365000011070c6470616c6c65745f656c656374696f6e735f70687261676d656e1870616c6c6574144572726f7204045400014430556e61626c65546f566f7465000004c043616e6e6f7420766f7465207768656e206e6f2063616e64696461746573206f72206d656d626572732065786973742e1c4e6f566f746573000104944d75737420766f746520666f72206174206c65617374206f6e652063616e6469646174652e30546f6f4d616e79566f7465730002048443616e6e6f7420766f7465206d6f7265207468616e2063616e646964617465732e504d6178696d756d566f74657345786365656465640003049843616e6e6f7420766f7465206d6f7265207468616e206d6178696d756d20616c6c6f7765642e284c6f7742616c616e6365000404c443616e6e6f7420766f74652077697468207374616b65206c657373207468616e206d696e696d756d2062616c616e63652e3c556e61626c65546f506179426f6e6400050478566f7465722063616e206e6f742070617920766f74696e6720626f6e642e2c4d7573744265566f746572000604404d757374206265206120766f7465722e285265706f727453656c660007044c43616e6e6f74207265706f72742073656c662e4c4475706c69636174656443616e646964617465000804804475706c6963617465642063616e646964617465207375626d697373696f6e2e304d656d6265725375626d6974000904884d656d6265722063616e6e6f742072652d7375626d69742063616e6469646163792e3852756e6e657255705375626d6974000a048852756e6e65722063616e6e6f742072652d7375626d69742063616e6469646163792e68496e73756666696369656e7443616e64696461746546756e6473000b049443616e64696461746520646f6573206e6f74206861766520656e6f7567682066756e64732e244e6f744d656d626572000c04344e6f742061206d656d6265722e48496e76616c69645769746e65737344617461000d04e05468652070726f766964656420636f756e74206f66206e756d626572206f662063616e6469646174657320697320696e636f72726563742e40496e76616c6964566f7465436f756e74000e04cc5468652070726f766964656420636f756e74206f66206e756d626572206f6620766f74657320697320696e636f72726563742e44496e76616c696452656e6f756e63696e67000f04fc5468652072656e6f756e63696e67206f726967696e2070726573656e74656420612077726f6e67206052656e6f756e63696e676020706172616d657465722e48496e76616c69645265706c6163656d656e74001004fc50726564696374696f6e20726567617264696e67207265706c6163656d656e74206166746572206d656d6265722072656d6f76616c2069732077726f6e672e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a09090915070c4470616c6c65745f6d656d626572736869701870616c6c6574144572726f7208045400044900010834416c72656164794d656d62657200000444416c72656164792061206d656d6265722e244e6f744d656d626572000104344e6f742061206d656d6265722e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a0909091907083c70616c6c65745f74726561737572792050726f706f73616c08244163636f756e74496401001c42616c616e636501180010012070726f706f7365720001244163636f756e74496400011476616c756518011c42616c616e636500012c62656e65666963696172790001244163636f756e744964000110626f6e6418011c42616c616e636500001d0710346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e6465645665630804540110045300000400750201185665633c543e000021070c3473705f61726974686d65746963287065725f7468696e67731c5065726d696c6c0000040010010c7533320000250708346672616d655f737570706f72742050616c6c6574496400000400f501011c5b75383b20385d000029070c3c70616c6c65745f74726561737572791870616c6c6574144572726f7208045400044900010c70496e73756666696369656e7450726f706f7365727342616c616e63650000047850726f706f73657227732062616c616e636520697320746f6f206c6f772e30496e76616c6964496e646578000104904e6f2070726f706f73616c206f7220626f756e7479206174207468617420696e6465782e40546f6f4d616e79417070726f76616c7300020480546f6f206d616e7920617070726f76616c7320696e207468652071756575652e04784572726f7220666f72207468652074726561737572792070616c6c65742e2d07105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e18636c61696d731870616c6c6574144572726f7204045400011860496e76616c6964457468657265756d5369676e61747572650000046c496e76616c696420457468657265756d207369676e61747572652e405369676e65724861734e6f436c61696d00010478457468657265756d206164647265737320686173206e6f20636c61696d2e4053656e6465724861734e6f436c61696d000204b04163636f756e742049442073656e64696e67207472616e73616374696f6e20686173206e6f20636c61696d2e30506f74556e646572666c6f77000308610154686572652773206e6f7420656e6f75676820696e2074686520706f7420746f20706179206f757420736f6d6520756e76657374656420616d6f756e742e2047656e6572616c6c7920696d706c6965732061206c6f676963186572726f722e40496e76616c696453746174656d656e740004049041206e65656465642073746174656d656e7420776173206e6f7420696e636c756465642e4c56657374656442616c616e6365457869737473000504a4546865206163636f756e7420616c7265616479206861732061207665737465642062616c616e63652e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909310710346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e646564566563080454012903045300000400350701185665633c543e000035070000022903003907083870616c6c65745f76657374696e672052656c6561736573000108085630000000085631000100003d070c3870616c6c65745f76657374696e671870616c6c6574144572726f72040454000114284e6f7456657374696e6700000484546865206163636f756e7420676976656e206973206e6f742076657374696e672e5441744d617856657374696e675363686564756c65730001082501546865206163636f756e7420616c72656164792068617320604d617856657374696e675363686564756c65736020636f756e74206f66207363686564756c657320616e642074687573510163616e6e6f742061646420616e6f74686572206f6e652e20436f6e7369646572206d657267696e67206578697374696e67207363686564756c657320696e206f7264657220746f2061646420616e6f746865722e24416d6f756e744c6f770002040501416d6f756e74206265696e67207472616e7366657272656420697320746f6f206c6f7720746f2063726561746520612076657374696e67207363686564756c652e605363686564756c65496e6465784f75744f66426f756e6473000304d0416e20696e64657820776173206f7574206f6620626f756e6473206f66207468652076657374696e67207363686564756c65732e54496e76616c69645363686564756c65506172616d730004040d014661696c656420746f206372656174652061206e6577207363686564756c65206265636175736520736f6d6520706172616d657465722077617320696e76616c69642e04744572726f7220666f72207468652076657374696e672070616c6c65742e41070c3870616c6c65745f7574696c6974791870616c6c6574144572726f7204045400010430546f6f4d616e7943616c6c730000045c546f6f206d616e792063616c6c7320626174636865642e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a09090945070c3c70616c6c65745f6964656e7469747914747970657330526567697374726174696f6e0c1c42616c616e63650118344d61784a756467656d656e7473004c4d61784164646974696f6e616c4669656c647300000c01286a756467656d656e7473490701fc426f756e6465645665633c28526567697374726172496e6465782c204a756467656d656e743c42616c616e63653e292c204d61784a756467656d656e74733e00011c6465706f73697418011c42616c616e6365000110696e666f390301844964656e74697479496e666f3c4d61784164646974696f6e616c4669656c64733e0000490710346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e646564566563080454014d07045300000400510701185665633c543e00004d070000040810d1030051070000024d070055070000040818590700590710346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e6465645665630804540100045300000400dc01185665633c543e00005d0710346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e646564566563080454016107045300000400690701185665633c543e0000610704184f7074696f6e0404540165070108104e6f6e6500000010536f6d6504006507000001000065070c3c70616c6c65745f6964656e7469747914747970657334526567697374726172496e666f081c42616c616e63650118244163636f756e7449640100000c011c6163636f756e740001244163636f756e74496400010c66656518011c42616c616e63650001186669656c6473c90301384964656e746974794669656c6473000069070000026107006d070c3c70616c6c65745f6964656e746974791870616c6c6574144572726f7204045400014048546f6f4d616e795375624163636f756e74730000045c546f6f206d616e7920737562732d6163636f756e74732e204e6f74466f756e64000104504163636f756e742069736e277420666f756e642e204e6f744e616d6564000204504163636f756e742069736e2774206e616d65642e28456d707479496e64657800030430456d70747920696e6465782e284665654368616e6765640004043c466565206973206368616e6765642e284e6f4964656e74697479000504484e6f206964656e7469747920666f756e642e3c537469636b794a756467656d656e7400060444537469636b79206a756467656d656e742e384a756467656d656e74476976656e000704404a756467656d656e7420676976656e2e40496e76616c69644a756467656d656e7400080448496e76616c6964206a756467656d656e742e30496e76616c6964496e6465780009045454686520696e64657820697320696e76616c69642e34496e76616c6964546172676574000a04585468652074617267657420697320696e76616c69642e34546f6f4d616e794669656c6473000b046c546f6f206d616e79206164646974696f6e616c206669656c64732e44546f6f4d616e7952656769737472617273000c04e84d6178696d756d20616d6f756e74206f66207265676973747261727320726561636865642e2043616e6e6f742061646420616e79206d6f72652e38416c7265616479436c61696d6564000d04704163636f756e7420494420697320616c7265616479206e616d65642e184e6f74537562000e047053656e646572206973206e6f742061207375622d6163636f756e742e204e6f744f776e6564000f04885375622d6163636f756e742069736e2774206f776e65642062792073656e6465722e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a09090971070000040875071800750710346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e6465645665630804540179070453000004007d0701185665633c543e00007907083070616c6c65745f70726f78793c50726f7879446566696e6974696f6e0c244163636f756e74496401002450726f7879547970650121012c426c6f636b4e756d6265720110000c012064656c65676174650001244163636f756e74496400012870726f78795f747970652101012450726f78795479706500011464656c617910012c426c6f636b4e756d62657200007d0700000279070081070000040885071800850710346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e6465645665630804540189070453000004008d0701185665633c543e00008907083070616c6c65745f70726f787930416e6e6f756e63656d656e740c244163636f756e7449640100104861736801242c426c6f636b4e756d6265720110000c01107265616c0001244163636f756e74496400012463616c6c5f686173682401104861736800011868656967687410012c426c6f636b4e756d62657200008d0700000289070091070c3070616c6c65745f70726f78791870616c6c6574144572726f720404540001201c546f6f4d616e79000004210154686572652061726520746f6f206d616e792070726f786965732072656769737465726564206f7220746f6f206d616e7920616e6e6f756e63656d656e74732070656e64696e672e204e6f74466f756e640001047450726f787920726567697374726174696f6e206e6f7420666f756e642e204e6f7450726f7879000204cc53656e646572206973206e6f7420612070726f7879206f6620746865206163636f756e7420746f2062652070726f786965642e2c556e70726f787961626c650003042101412063616c6c20776869636820697320696e636f6d70617469626c652077697468207468652070726f7879207479706527732066696c7465722077617320617474656d707465642e244475706c69636174650004046c4163636f756e7420697320616c726561647920612070726f78792e304e6f5065726d697373696f6e000504150143616c6c206d6179206e6f74206265206d6164652062792070726f78792062656361757365206974206d617920657363616c617465206974732070726976696c656765732e2c556e616e6e6f756e636564000604d0416e6e6f756e63656d656e742c206966206d61646520617420616c6c2c20776173206d61646520746f6f20726563656e746c792e2c4e6f53656c6650726f78790007046443616e6e6f74206164642073656c662061732070726f78792e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a0909099507000004080004009907083c70616c6c65745f6d756c7469736967204d756c74697369670c2c426c6f636b4e756d62657201101c42616c616e63650118244163636f756e7449640100001001107768656e2d01015854696d65706f696e743c426c6f636b4e756d6265723e00011c6465706f73697418011c42616c616e63650001246465706f7369746f720001244163636f756e744964000124617070726f76616c73dc01385665633c4163636f756e7449643e00009d070000040c28001800a1070c3c70616c6c65745f6d756c74697369671870616c6c6574144572726f72040454000138404d696e696d756d5468726573686f6c640000047c5468726573686f6c64206d7573742062652032206f7220677265617465722e3c416c7265616479417070726f766564000104ac43616c6c20697320616c726561647920617070726f7665642062792074686973207369676e61746f72792e444e6f417070726f76616c734e65656465640002049c43616c6c20646f65736e2774206e65656420616e7920286d6f72652920617070726f76616c732e44546f6f4665775369676e61746f72696573000304a854686572652061726520746f6f20666577207369676e61746f7269657320696e20746865206c6973742e48546f6f4d616e795369676e61746f72696573000404ac54686572652061726520746f6f206d616e79207369676e61746f7269657320696e20746865206c6973742e545369676e61746f726965734f75744f664f726465720005040d01546865207369676e61746f7269657320776572652070726f7669646564206f7574206f66206f726465723b20746865792073686f756c64206265206f7264657265642e4c53656e646572496e5369676e61746f726965730006040d015468652073656e6465722077617320636f6e7461696e656420696e20746865206f74686572207369676e61746f726965733b2069742073686f756c646e27742062652e204e6f74466f756e64000704dc4d756c7469736967206f7065726174696f6e206e6f7420666f756e64207768656e20617474656d7074696e6720746f2063616e63656c2e204e6f744f776e65720008042d014f6e6c7920746865206163636f756e742074686174206f726967696e616c6c79206372656174656420746865206d756c74697369672069732061626c6520746f2063616e63656c2069742e2c4e6f54696d65706f696e740009041d014e6f2074696d65706f696e742077617320676976656e2c2079657420746865206d756c7469736967206f7065726174696f6e20697320616c726561647920756e6465727761792e3857726f6e6754696d65706f696e74000a042d014120646966666572656e742074696d65706f696e742077617320676976656e20746f20746865206d756c7469736967206f7065726174696f6e207468617420697320756e6465727761792e4c556e657870656374656454696d65706f696e74000b04f4412074696d65706f696e742077617320676976656e2c20796574206e6f206d756c7469736967206f7065726174696f6e20697320756e6465727761792e3c4d6178576569676874546f6f4c6f77000c04d0546865206d6178696d756d2077656967687420696e666f726d6174696f6e2070726f76696465642077617320746f6f206c6f772e34416c726561647953746f726564000d04a0546865206461746120746f2062652073746f72656420697320616c72656164792073746f7265642e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909a507083c70616c6c65745f626f756e7469657318426f756e74790c244163636f756e74496401001c42616c616e636501182c426c6f636b4e756d62657201100018012070726f706f7365720001244163636f756e74496400011476616c756518011c42616c616e636500010c66656518011c42616c616e636500013c63757261746f725f6465706f73697418011c42616c616e6365000110626f6e6418011c42616c616e6365000118737461747573a9070190426f756e74795374617475733c4163636f756e7449642c20426c6f636b4e756d6265723e0000a907083c70616c6c65745f626f756e7469657330426f756e747953746174757308244163636f756e74496401002c426c6f636b4e756d626572011001182050726f706f73656400000020417070726f7665640001001846756e6465640002003c43757261746f7250726f706f73656404011c63757261746f720001244163636f756e7449640003001841637469766508011c63757261746f720001244163636f756e7449640001287570646174655f64756510012c426c6f636b4e756d6265720004003450656e64696e675061796f75740c011c63757261746f720001244163636f756e74496400012c62656e65666963696172790001244163636f756e744964000124756e6c6f636b5f617410012c426c6f636b4e756d62657200050000ad070c3c70616c6c65745f626f756e746965731870616c6c6574144572726f7204045400012470496e73756666696369656e7450726f706f7365727342616c616e63650000047850726f706f73657227732062616c616e636520697320746f6f206c6f772e30496e76616c6964496e646578000104904e6f2070726f706f73616c206f7220626f756e7479206174207468617420696e6465782e30526561736f6e546f6f4269670002048454686520726561736f6e20676976656e206973206a75737420746f6f206269672e40556e65787065637465645374617475730003048054686520626f756e74792073746174757320697320756e65787065637465642e385265717569726543757261746f720004045c5265717569726520626f756e74792063757261746f722e30496e76616c696456616c756500050454496e76616c696420626f756e74792076616c75652e28496e76616c69644665650006044c496e76616c696420626f756e7479206665652e3450656e64696e675061796f75740007086c4120626f756e7479207061796f75742069732070656e64696e672ef8546f2063616e63656c2074686520626f756e74792c20796f75206d75737420756e61737369676e20616e6420736c617368207468652063757261746f722e245072656d6174757265000804450154686520626f756e746965732063616e6e6f7420626520636c61696d65642f636c6f73656420626563617573652069742773207374696c6c20696e2074686520636f756e74646f776e20706572696f642e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909b107082c70616c6c65745f746970731c4f70656e54697010244163636f756e74496401001c42616c616e636501182c426c6f636b4e756d626572011010486173680124001c0118726561736f6e2401104861736800010c77686f0001244163636f756e74496400011866696e6465720001244163636f756e74496400011c6465706f73697418011c42616c616e6365000118636c6f7365737902014c4f7074696f6e3c426c6f636b4e756d6265723e00011074697073f401645665633c284163636f756e7449642c2042616c616e6365293e00012c66696e646572735f666565e80110626f6f6c0000b5070c2c70616c6c65745f746970731870616c6c6574144572726f7204045400011830526561736f6e546f6f4269670000048454686520726561736f6e20676976656e206973206a75737420746f6f206269672e30416c72656164794b6e6f776e00010488546865207469702077617320616c726561647920666f756e642f737461727465642e28556e6b6e6f776e5469700002046054686520746970206861736820697320756e6b6e6f776e2e244e6f7446696e6465720003041d01546865206163636f756e7420617474656d7074696e6720746f20726574726163742074686520746970206973206e6f74207468652066696e646572206f6620746865207469702e245374696c6c4f70656e0004042901546865207469702063616e6e6f7420626520636c61696d65642f636c6f736564206265636175736520746865726520617265206e6f7420656e6f7567682074697070657273207965742e245072656d61747572650005043101546865207469702063616e6e6f7420626520636c61696d65642f636c6f73656420626563617573652069742773207374696c6c20696e2074686520636f756e74646f776e20706572696f642e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909b907089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173651450686173650408426e011001100c4f6666000000185369676e656400010020556e7369676e65640400bd07012828626f6f6c2c20426e2900020024456d657267656e637900030000bd0700000408e81000c107089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f7068617365345265616479536f6c7574696f6e0404410100000c0120737570706f727473cd04012c537570706f7274733c413e00011473636f7265c1040134456c656374696f6e53636f726500011c636f6d707574653d01013c456c656374696f6e436f6d707574650000c507089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f706861736534526f756e64536e617073686f74040441010000080118766f74657273c90701705665633c28412c20566f74655765696768742c205665633c413e293e00011c74617267657473dc01185665633c413e0000c907000002cd0700cd070000040c0020dc00d10710346672616d655f737570706f72741c73746f7261676544626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b01c10404560110045300000400d507013842547265654d61703c4b2c20563e0000d507042042547265654d617008044b01c10404560110000400d907000000d907000002dd0700dd0700000408c1041000e1070c9070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f7068617365187369676e6564405369676e65645375626d697373696f6e0c244163636f756e74496401001c42616c616e6365011820536f6c7574696f6e01f5030010010c77686f0001244163636f756e74496400011c6465706f73697418011c42616c616e63650001307261775f736f6c7574696f6ef1030154526177536f6c7574696f6e3c536f6c7574696f6e3e00011872657761726418011c42616c616e63650000e5070c9070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173651870616c6c6574144572726f7204045400012c6850726544697370617463684561726c795375626d697373696f6e000004645375626d697373696f6e2077617320746f6f206561726c792e6c507265446973706174636857726f6e6757696e6e6572436f756e740001048857726f6e67206e756d626572206f662077696e6e6572732070726573656e7465642e6450726544697370617463685765616b5375626d697373696f6e000204905375626d697373696f6e2077617320746f6f207765616b2c2073636f72652d776973652e3c5369676e6564517565756546756c6c0003044901546865207175657565207761732066756c6c2c20616e642074686520736f6c7574696f6e20776173206e6f7420626574746572207468616e20616e79206f6620746865206578697374696e67206f6e65732e585369676e656443616e6e6f745061794465706f73697400040494546865206f726967696e206661696c656420746f2070617920746865206465706f7369742e505369676e6564496e76616c69645769746e657373000504a05769746e657373206461746120746f20646973706174636861626c6520697320696e76616c69642e4c5369676e6564546f6f4d756368576569676874000604b8546865207369676e6564207375626d697373696f6e20636f6e73756d657320746f6f206d756368207765696768743c4f637743616c6c57726f6e67457261000704984f4357207375626d697474656420736f6c7574696f6e20666f722077726f6e6720726f756e645c4d697373696e67536e617073686f744d65746164617461000804a8536e617073686f74206d657461646174612073686f756c6420657869737420627574206469646e27742e58496e76616c69645375626d697373696f6e496e646578000904d06053656c663a3a696e736572745f7375626d697373696f6e602072657475726e656420616e20696e76616c696420696e6465782e3843616c6c4e6f74416c6c6f776564000a04985468652063616c6c206973206e6f7420616c6c6f776564206174207468697320706f696e742e040d014572726f72206f66207468652070616c6c657420746861742063616e2062652072657475726e656420696e20726573706f6e736520746f20646973706174636865732ee9070c6c706f6c6b61646f745f72756e74696d655f70617261636861696e7334636f6e66696775726174696f6e44486f7374436f6e66696775726174696f6e042c426c6f636b4e756d626572011000a001346d61785f636f64655f73697a6510010c7533320001486d61785f686561645f646174615f73697a6510010c7533320001586d61785f7570776172645f71756575655f636f756e7410010c7533320001546d61785f7570776172645f71756575655f73697a6510010c75333200015c6d61785f7570776172645f6d6573736167655f73697a6510010c7533320001906d61785f7570776172645f6d6573736167655f6e756d5f7065725f63616e64696461746510010c75333200018868726d705f6d61785f6d6573736167655f6e756d5f7065725f63616e64696461746510010c75333200017076616c69646174696f6e5f757067726164655f6672657175656e637910012c426c6f636b4e756d62657200016076616c69646174696f6e5f757067726164655f64656c617910012c426c6f636b4e756d6265720001306d61785f706f765f73697a6510010c7533320001646d61785f646f776e776172645f6d6573736167655f73697a6510010c753332000160756d705f736572766963655f746f74616c5f77656967687420011857656967687400019068726d705f6d61785f70617261636861696e5f6f7574626f756e645f6368616e6e656c7310010c75333200019468726d705f6d61785f706172617468726561645f6f7574626f756e645f6368616e6e656c7310010c75333200014c68726d705f73656e6465725f6465706f73697418011c42616c616e636500015868726d705f726563697069656e745f6465706f73697418011c42616c616e636500016468726d705f6368616e6e656c5f6d61785f636170616369747910010c75333200016c68726d705f6368616e6e656c5f6d61785f746f74616c5f73697a6510010c75333200018c68726d705f6d61785f70617261636861696e5f696e626f756e645f6368616e6e656c7310010c75333200019068726d705f6d61785f706172617468726561645f696e626f756e645f6368616e6e656c7310010c75333200017468726d705f6368616e6e656c5f6d61785f6d6573736167655f73697a6510010c753332000154636f64655f726574656e74696f6e5f706572696f6410012c426c6f636b4e756d626572000140706172617468726561645f636f72657310010c753332000148706172617468726561645f7265747269657310010c75333200016067726f75705f726f746174696f6e5f6672657175656e637910012c426c6f636b4e756d626572000164636861696e5f617661696c6162696c6974795f706572696f6410012c426c6f636b4e756d6265720001687468726561645f617661696c6162696c6974795f706572696f6410012c426c6f636b4e756d6265720001507363686564756c696e675f6c6f6f6b616865616410010c75333200015c6d61785f76616c696461746f72735f7065725f636f72657902012c4f7074696f6e3c7533323e0001386d61785f76616c696461746f72737902012c4f7074696f6e3c7533323e000138646973707574655f706572696f6410013053657373696f6e496e6465780001a4646973707574655f706f73745f636f6e636c7573696f6e5f616363657074616e63655f706572696f6410012c426c6f636b4e756d626572000158646973707574655f6d61785f7370616d5f736c6f747310010c753332000194646973707574655f636f6e636c7573696f6e5f62795f74696d655f6f75745f706572696f6410012c426c6f636b4e756d6265720001346e6f5f73686f775f736c6f747310010c7533320001406e5f64656c61795f7472616e6368657310010c7533320001687a65726f74685f64656c61795f7472616e6368655f776964746810010c7533320001406e65656465645f617070726f76616c7310010c75333200016072656c61795f7672665f6d6f64756c6f5f73616d706c657310010c753332000164756d705f6d61785f696e646976696475616c5f7765696768742001185765696768740000ed07106c706f6c6b61646f745f72756e74696d655f70617261636861696e7334636f6e66696775726174696f6e1870616c6c6574144572726f720404540001043c496e76616c69644e657756616c7565000004dc546865206e65772076616c756520666f72206120636f6e66696775726174696f6e20706172616d6574657220697320696e76616c69642e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909f107000002010500f507000002890200f9070c6c706f6c6b61646f745f72756e74696d655f70617261636861696e7324696e636c7573696f6e68417661696c6162696c6974794269746669656c645265636f726404044e0110000801206269746669656c64f5040150417661696c6162696c6974794269746669656c640001307375626d69747465645f61741001044e0000fd070c6c706f6c6b61646f745f72756e74696d655f70617261636861696e7324696e636c7573696f6e7043616e64696461746550656e64696e67417661696c6162696c6974790804480124044e011000200110636f72656d010124436f7265496e646578000110686173683905013443616e6469646174654861736800012864657363726970746f724d01015843616e64696461746544657363726970746f723c483e000148617661696c6162696c6974795f766f746573f90401604269745665633c4269744f726465724c7362302c2075383e00011c6261636b657273f90401604269745665633c4269744f726465724c7362302c2075383e00014c72656c61795f706172656e745f6e756d6265721001044e0001406261636b65645f696e5f6e756d6265721001044e0001346261636b696e675f67726f75707101012847726f7570496e64657800000108106c706f6c6b61646f745f72756e74696d655f70617261636861696e7324696e636c7573696f6e1870616c6c6574144572726f720404540001644457726f6e674269746669656c6453697a65000004a8417661696c6162696c697479206269746669656c642068617320756e65787065637465642073697a652e704269746669656c644475706c69636174654f72556e6f7264657265640001044d014d756c7469706c65206269746669656c6473207375626d69747465642062792073616d652076616c696461746f72206f722076616c696461746f7273206f7574206f66206f7264657220627920696e6465782e6456616c696461746f72496e6465784f75744f66426f756e64730002047856616c696461746f7220696e646578206f7574206f6620626f756e64732e60496e76616c69644269746669656c645369676e617475726500030444496e76616c6964207369676e617475726550556e7363686564756c656443616e646964617465000404ac43616e646964617465207375626d6974746564206275742070617261206e6f74207363686564756c65642e8043616e6469646174655363686564756c65644265666f72655061726146726565000504310143616e646964617465207363686564756c656420646573706974652070656e64696e672063616e64696461746520616c7265616479206578697374696e6720666f722074686520706172612e3457726f6e67436f6c6c61746f72000604ac43616e64696461746520696e636c756465642077697468207468652077726f6e6720636f6c6c61746f722e4c5363686564756c65644f75744f664f72646572000704745363686564756c656420636f726573206f7574206f66206f726465722e404865616444617461546f6f4c61726765000804a448656164206461746120657863656564732074686520636f6e66696775726564206d6178696d756d2e505072656d6174757265436f64655570677261646500090464436f64652075706772616465207072656d61747572656c792e3c4e6577436f6465546f6f4c61726765000a04604f757470757420636f646520697320746f6f206c617267656c43616e6469646174654e6f74496e506172656e74436f6e74657874000b048043616e646964617465206e6f7420696e20706172656e7420636f6e746578742e5c556e6f63637570696564426974496e4269746669656c64000c042101546865206269746669656c6420636f6e7461696e732061206269742072656c6174696e6720746f20616e20756e61737369676e656420617661696c6162696c69747920636f72652e44496e76616c696447726f7570496e646578000d049c496e76616c69642067726f757020696e64657820696e20636f72652061737369676e6d656e742e4c496e73756666696369656e744261636b696e67000e0490496e73756666696369656e7420286e6f6e2d6d616a6f7269747929206261636b696e672e38496e76616c69644261636b696e67000f04e4496e76616c69642028626164207369676e61747572652c20756e6b6e6f776e2076616c696461746f722c206574632e29206261636b696e672e444e6f74436f6c6c61746f725369676e656400100468436f6c6c61746f7220646964206e6f74207369676e20506f562e6856616c69646174696f6e44617461486173684d69736d61746368001104c45468652076616c69646174696f6e2064617461206861736820646f6573206e6f74206d617463682065787065637465642e34496e7465726e616c4572726f720012040501496e7465726e616c206572726f72206f6e6c792072657475726e6564207768656e20636f6d70696c6564207769746820646562756720617373657274696f6e732e80496e636f7272656374446f776e776172644d65737361676548616e646c696e67001304d854686520646f776e77617264206d657373616765207175657565206973206e6f742070726f63657373656420636f72726563746c792e54496e76616c69645570776172644d657373616765730014041d014174206c65617374206f6e6520757077617264206d6573736167652073656e7420646f6573206e6f7420706173732074686520616363657074616e63652063726974657269612e6048726d7057617465726d61726b4d697368616e646c696e6700150411015468652063616e646964617465206469646e277420666f6c6c6f77207468652072756c6573206f662048524d502077617465726d61726b20616476616e63656d656e742e4c496e76616c69644f7574626f756e6448726d70001604d45468652048524d50206d657373616765732073656e74206279207468652063616e646964617465206973206e6f742076616c69642e64496e76616c696456616c69646174696f6e436f646548617368001704dc5468652076616c69646174696f6e20636f64652068617368206f66207468652063616e646964617465206973206e6f742076616c69642e4050617261486561644d69736d6174636800180899015468652060706172615f6865616460206861736820696e207468652063616e6469646174652064657363726970746f7220646f65736e2774206d61746368207468652068617368206f66207468652061637475616c2070617261206865616420696e2074686530636f6d6d69746d656e74732e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a0909090508106c706f6c6b61646f745f72756e74696d655f70617261636861696e733870617261735f696e686572656e741870616c6c6574144572726f7204045400010c64546f6f4d616e79496e636c7573696f6e496e686572656e7473000004cc496e636c7573696f6e20696e686572656e742063616c6c6564206d6f7265207468616e206f6e63652070657220626c6f636b2e4c496e76616c6964506172656e7448656164657200010855015468652068617368206f6620746865207375626d697474656420706172656e742068656164657220646f65736e277420636f72726573706f6e6420746f2074686520736176656420626c6f636b2068617368206f662c74686520706172656e742e6443616e646964617465436f6e636c75646564496e76616c6964000204b844697370757465642063616e64696461746520746861742077617320636f6e636c7564656420696e76616c69642e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a0909090908000002f107000d080c6c706f6c6b61646f745f72756e74696d655f70617261636861696e73247363686564756c65725050617261746872656164436c61696d517565756500000801147175657565110801545665633c517565756564506172617468726561643e0001406e6578745f636f72655f6f666673657410010c7533320000110800000215080015080c6c706f6c6b61646f745f72756e74696d655f70617261636861696e73247363686564756c657240517565756564506172617468726561640000080114636c61696d1908013c50617261746872656164456e74727900012c636f72655f6f666673657410010c753332000019080c4c706f6c6b61646f745f7072696d6974697665730876313c50617261746872656164456e7472790000080114636c61696d1d08013c50617261746872656164436c61696d00011c7265747269657310010c75333200001d080c4c706f6c6b61646f745f7072696d6974697665730876313c50617261746872656164436c61696d00000800510101084964000055010128436f6c6c61746f72496400002108000002250800250804184f7074696f6e0404540129080108104e6f6e6500000010536f6d6504002908000001000029080c4c706f6c6b61646f745f7072696d69746976657308763130436f72654f63637570696564000108285061726174687265616404001908013c50617261746872656164456e7472790000002450617261636861696e000100002d08000002510100310800000235080035080c6c706f6c6b61646f745f72756e74696d655f70617261636861696e73247363686564756c657238436f726541737369676e6d656e740000100110636f72656d010124436f7265496e64657800011c706172615f6964510101185061726149640001106b696e643908013841737369676e6d656e744b696e6400012467726f75705f6964787101012847726f7570496e646578000039080c6c706f6c6b61646f745f72756e74696d655f70617261636861696e73247363686564756c65723841737369676e6d656e744b696e640001082450617261636861696e0000002850617261746872656164080055010128436f6c6c61746f724964000010010c753332000100003d080c6c706f6c6b61646f745f72756e74696d655f70617261636861696e7314706172617334506172614c6966656379636c6500011c284f6e626f617264696e6700000028506172617468726561640001002450617261636861696e0002004c557067726164696e675061726174687265616400030050446f776e67726164696e6750617261636861696e000400544f6666626f617264696e6750617261746872656164000500504f6666626f617264696e6750617261636861696e000600004108000004085101100045080c6c706f6c6b61646f745f72756e74696d655f70617261636861696e73147061726173405061726150617374436f64654d65746104044e011000080134757067726164655f74696d6573490801605665633c5265706c6163656d656e7454696d65733c4e3e3e00012c6c6173745f7072756e6564790201244f7074696f6e3c4e3e000049080000024d08004d080c6c706f6c6b61646f745f72756e74696d655f70617261636861696e73147061726173405265706c6163656d656e7454696d657304044e01100008012c65787065637465645f61741001044e0001306163746976617465645f61741001044e0000510800000241080055080c4c706f6c6b61646f745f7072696d6974697665730876313855706772616465476f41686561640001081441626f72740000001c476f41686561640001000059080c4c706f6c6b61646f745f7072696d69746976657308763148557067726164655265737472696374696f6e0001041c50726573656e74000000005d080c6c706f6c6b61646f745f72756e74696d655f70617261636861696e731470617261733c5061726147656e657369734172677300000c013067656e657369735f6865616469010120486561644461746100013c76616c69646174696f6e5f636f64652505013856616c69646174696f6e436f646500012470617261636861696ee80110626f6f6c00006108106c706f6c6b61646f745f72756e74696d655f70617261636861696e731470617261731870616c6c6574144572726f72040454000114344e6f74526567697374657265640000049450617261206973206e6f74207265676973746572656420696e206f75722073797374656d2e3443616e6e6f744f6e626f6172640001041501506172612063616e6e6f74206265206f6e626f6172646564206265636175736520697420697320616c726561647920747261636b6564206279206f75722073797374656d2e3843616e6e6f744f6666626f6172640002049c506172612063616e6e6f74206265206f6666626f617264656420617420746869732074696d652e3443616e6e6f74557067726164650003049c506172612063616e6e6f7420626520757067726164656420746f20612070617261636861696e2e3c43616e6e6f74446f776e6772616465000404a8506172612063616e6e6f7420626520646f776e67726164656420746f206120706172617468726561642e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909650800000269080069080c6c706f6c6b61646f745f72756e74696d655f70617261636861696e732c696e697469616c697a657254427566666572656453657373696f6e4368616e676500000c012876616c696461746f7273f50701405665633c56616c696461746f7249643e000118717565756564f50701405665633c56616c696461746f7249643e00013473657373696f6e5f696e64657810013053657373696f6e496e64657800006d0800000271080071080860706f6c6b61646f745f636f72655f7072696d69746976657358496e626f756e64446f776e776172644d657373616765042c426c6f636b4e756d62657201100008011c73656e745f617410012c426c6f636b4e756d62657200010c6d736728013c446f776e776172644d6573736167650000750800000408510128007908106c706f6c6b61646f745f72756e74696d655f70617261636861696e730c756d701870616c6c6574144572726f720404540001084c556e6b6e6f776e4d657373616765496e6465780000048c546865206d65737361676520696e64657820676976656e20697320756e6b6e6f776e2e3c5765696768744f7665724c696d6974000104310154686520616d6f756e74206f662077656967687420676976656e20697320706f737369626c79206e6f7420656e6f75676820666f7220657865637574696e6720746865206d6573736167652e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a0909097d080c6c706f6c6b61646f745f72756e74696d655f70617261636861696e731068726d705848726d704f70656e4368616e6e656c526571756573740000180124636f6e6669726d6564e80110626f6f6c0001105f61676510013053657373696f6e496e64657800013873656e6465725f6465706f73697418011c42616c616e63650001406d61785f6d6573736167655f73697a6510010c7533320001306d61785f636170616369747910010c7533320001386d61785f746f74616c5f73697a6510010c7533320000810800000289010085080c6c706f6c6b61646f745f72756e74696d655f70617261636861696e731068726d702c48726d704368616e6e656c00002001306d61785f636170616369747910010c7533320001386d61785f746f74616c5f73697a6510010c7533320001406d61785f6d6573736167655f73697a6510010c7533320001246d73675f636f756e7410010c753332000128746f74616c5f73697a6510010c7533320001206d71635f68656164890801304f7074696f6e3c486173683e00013873656e6465725f6465706f73697418011c42616c616e6365000144726563697069656e745f6465706f73697418011c42616c616e63650000890804184f7074696f6e04045401240108104e6f6e6500000010536f6d6504002400000100008d0800000291080091080860706f6c6b61646f745f636f72655f7072696d69746976657348496e626f756e6448726d704d657373616765042c426c6f636b4e756d62657201100008011c73656e745f617410012c426c6f636b4e756d6265720001106461746128015073705f7374643a3a7665633a3a5665633c75383e00009508000002990800990800000408102d08009d08106c706f6c6b61646f745f72756e74696d655f70617261636861696e731068726d701870616c6c6574144572726f72040454000148544f70656e48726d704368616e6e656c546f53656c66000004c45468652073656e64657220747269656420746f206f70656e2061206368616e6e656c20746f207468656d73656c7665732e7c4f70656e48726d704368616e6e656c496e76616c6964526563697069656e740001048854686520726563697069656e74206973206e6f7420612076616c696420706172612e6c4f70656e48726d704368616e6e656c5a65726f43617061636974790002047c54686520726571756573746564206361706163697479206973207a65726f2e8c4f70656e48726d704368616e6e656c4361706163697479457863656564734c696d6974000304c05468652072657175657374656420636170616369747920657863656564732074686520676c6f62616c206c696d69742e784f70656e48726d704368616e6e656c5a65726f4d65737361676553697a65000404a054686520726571756573746564206d6178696d756d206d6573736167652073697a6520697320302e984f70656e48726d704368616e6e656c4d65737361676553697a65457863656564734c696d69740005042901546865206f70656e20726571756573742072657175657374656420746865206d6573736167652073697a65207468617420657863656564732074686520676c6f62616c206c696d69742e704f70656e48726d704368616e6e656c416c726561647945786973747300060468546865206368616e6e656c20616c7265616479206578697374737c4f70656e48726d704368616e6e656c416c7265616479526571756573746564000704d0546865726520697320616c72656164792061207265717565737420746f206f70656e207468652073616d65206368616e6e656c2e704f70656e48726d704368616e6e656c4c696d697445786365656465640008041d015468652073656e64657220616c72656164792068617320746865206d6178696d756d206e756d626572206f6620616c6c6f776564206f7574626f756e64206368616e6e656c732e7041636365707448726d704368616e6e656c446f65736e744578697374000904e0546865206368616e6e656c2066726f6d207468652073656e64657220746f20746865206f726967696e20646f65736e27742065786973742e8441636365707448726d704368616e6e656c416c7265616479436f6e6669726d6564000a0484546865206368616e6e656c20697320616c726561647920636f6e6669726d65642e7841636365707448726d704368616e6e656c4c696d69744578636565646564000b04250154686520726563697069656e7420616c72656164792068617320746865206d6178696d756d206e756d626572206f6620616c6c6f77656420696e626f756e64206368616e6e656c732e70436c6f736548726d704368616e6e656c556e617574686f72697a6564000c045501546865206f726967696e20747269657320746f20636c6f73652061206368616e6e656c207768657265206974206973206e656974686572207468652073656e646572206e6f722074686520726563697069656e742e6c436c6f736548726d704368616e6e656c446f65736e744578697374000d049c546865206368616e6e656c20746f20626520636c6f73656420646f65736e27742065786973742e7c436c6f736548726d704368616e6e656c416c7265616479556e646572776179000e04bc546865206368616e6e656c20636c6f7365207265717565737420697320616c7265616479207265717565737465642e8443616e63656c48726d704f70656e4368616e6e656c556e617574686f72697a6564000f045d0143616e63656c696e6720697320726571756573746564206279206e656974686572207468652073656e646572206e6f7220726563697069656e74206f6620746865206f70656e206368616e6e656c20726571756573742e684f70656e48726d704368616e6e656c446f65736e7445786973740010047c546865206f70656e207265717565737420646f65736e27742065786973742e7c4f70656e48726d704368616e6e656c416c7265616479436f6e6669726d65640011042d0143616e6e6f742063616e63656c20616e2048524d50206f70656e206368616e6e656c2072657175657374206265636175736520697420697320616c726561647920636f6e6669726d65642e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909a1080000028d0200a5080c4c706f6c6b61646f745f7072696d6974697665730876312c53657373696f6e496e666f000028012876616c696461746f7273f50701405665633c56616c696461746f7249643e000138646973636f766572795f6b657973a90801645665633c417574686f72697479446973636f7665727949643e00013c61737369676e6d656e745f6b657973a10801445665633c41737369676e6d656e7449643e00014076616c696461746f725f67726f757073090801605665633c5665633c56616c696461746f72496e6465783e3e00011c6e5f636f72657310010c7533320001687a65726f74685f64656c61795f7472616e6368655f776964746810010c75333200016072656c61795f7672665f6d6f64756c6f5f73616d706c657310010c7533320001406e5f64656c61795f7472616e6368657310010c7533320001346e6f5f73686f775f736c6f747310010c7533320001406e65656465645f617070726f76616c7310010c7533320000a908000002910200ad080c5c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e3c70617261735f7265676973747261722050617261496e666f081c4163636f756e7401001c42616c616e63650118000c011c6d616e6167657200011c4163636f756e7400011c6465706f73697418011c42616c616e63650001186c6f636b6564e80110626f6f6c0000b108105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e3c70617261735f7265676973747261721870616c6c6574144572726f72040454000130344e6f745265676973746572656400000464546865204944206973206e6f7420726567697374657265642e44416c7265616479526567697374657265640001047454686520494420697320616c726561647920726567697374657265642e204e6f744f776e65720002049c5468652063616c6c6572206973206e6f7420746865206f776e6572206f6620746869732049642e30436f6465546f6f4c617267650003045c496e76616c6964207061726120636f64652073697a652e404865616444617461546f6f4c6172676500040470496e76616c69642070617261206865616420646174612073697a652e304e6f7450617261636861696e0005046050617261206973206e6f7420612050617261636861696e2e344e6f74506172617468726561640006046450617261206973206e6f74206120506172617468726561642e4043616e6e6f74446572656769737465720007045843616e6e6f74206465726567697374657220706172613c43616e6e6f74446f776e6772616465000804d043616e6e6f74207363686564756c6520646f776e6772616465206f662070617261636861696e20746f20706172617468726561643443616e6e6f7455706772616465000904c843616e6e6f74207363686564756c652075706772616465206f66207061726174687265616420746f2070617261636861696e28506172614c6f636b6564000a04790150617261206973206c6f636b65642066726f6d206d616e6970756c6174696f6e20627920746865206d616e616765722e204d757374207573652070617261636861696e206f722072656c617920636861696e20676f7665726e616e63652e2c4e6f745265736572766564000b04d054686520494420676976656e20666f7220726567697374726174696f6e20686173206e6f74206265656e2072657365727665642e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909b508000002b90800b90804184f7074696f6e04045401f80108104e6f6e6500000010536f6d650400f80000010000bd08105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e14736c6f74731870616c6c6574144572726f7204045400010844506172614e6f744f6e626f617264696e670000048c5468652070617261636861696e204944206973206e6f74206f6e626f617264696e672e284c656173654572726f720001048854686572652077617320616e206572726f72207769746820746865206c656173652e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909c1080000040800510100c50800000324000000c90800c90804184f7074696f6e04045401cd080108104e6f6e6500000010536f6d650400cd080000010000cd080000040c0051011800d108105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e2061756374696f6e731870616c6c6574144572726f7204045400011c4441756374696f6e496e50726f677265737300000490546869732061756374696f6e20697320616c726561647920696e2070726f67726573732e444c65617365506572696f64496e5061737400010480546865206c6561736520706572696f6420697320696e2074686520706173742e44506172614e6f74526567697374657265640002045850617261206973206e6f742072656769737465726564444e6f7443757272656e7441756374696f6e000304584e6f7420612063757272656e742061756374696f6e2e284e6f7441756374696f6e0004043c4e6f7420616e2061756374696f6e2e3041756374696f6e456e6465640005046841756374696f6e2068617320616c726561647920656e6465642e40416c72656164794c65617365644f7574000604d8546865207061726120697320616c7265616479206c6561736564206f757420666f722070617274206f6620746869732072616e67652e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909d5080c5c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e2463726f77646c6f616e2046756e64496e666f10244163636f756e74496401001c42616c616e636501182c426c6f636b4e756d62657201102c4c65617365506572696f640110002801246465706f7369746f720001244163636f756e74496400012076657269666965727905014c4f7074696f6e3c4d756c74695369676e65723e00011c6465706f73697418011c42616c616e636500011872616973656418011c42616c616e636500010c656e6410012c426c6f636b4e756d62657200010c63617018011c42616c616e63650001446c6173745f636f6e747269627574696f6ed90801744c617374436f6e747269627574696f6e3c426c6f636b4e756d6265723e00013066697273745f706572696f6410012c4c65617365506572696f6400012c6c6173745f706572696f6410012c4c65617365506572696f64000128747269655f696e64657810012454726965496e6465780000d9080c5c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e2463726f77646c6f616e404c617374436f6e747269627574696f6e042c426c6f636b4e756d6265720110010c144e6576657200000024507265456e64696e67040010010c75333200010018456e64696e67040010012c426c6f636b4e756d62657200020000dd08105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e2463726f77646c6f616e1870616c6c6574144572726f7204045400015c444669727374506572696f64496e50617374000004f45468652063757272656e74206c6561736520706572696f64206973206d6f7265207468616e20746865206669727374206c6561736520706572696f642e644669727374506572696f64546f6f466172496e4675747572650001041101546865206669727374206c6561736520706572696f64206e6565647320746f206174206c65617374206265206c657373207468616e203320606d61785f76616c7565602e6c4c617374506572696f644265666f72654669727374506572696f64000204e84c617374206c6561736520706572696f64206d7573742062652067726561746572207468616e206669727374206c6561736520706572696f642e604c617374506572696f64546f6f466172496e4675747572650003042d01546865206c617374206c6561736520706572696f642063616e6e6f74206265206d6f7265207468616e203320706572696f64732061667465722074686520666972737420706572696f642e3c43616e6e6f74456e64496e5061737400040445015468652063616d706169676e20656e6473206265666f7265207468652063757272656e7420626c6f636b206e756d6265722e2054686520656e64206d75737420626520696e20746865206675747572652e44456e64546f6f466172496e467574757265000504c054686520656e64206461746520666f7220746869732063726f77646c6f616e206973206e6f742073656e7369626c652e204f766572666c6f770006045854686572652077617320616e206f766572666c6f772e50436f6e747269627574696f6e546f6f536d616c6c000704e854686520636f6e747269627574696f6e207761732062656c6f7720746865206d696e696d756d2c20604d696e436f6e747269627574696f6e602e34496e76616c69645061726149640008044c496e76616c69642066756e6420696e6465782e2c436170457863656564656400090490436f6e747269627574696f6e7320657863656564206d6178696d756d20616d6f756e742e58436f6e747269627574696f6e506572696f644f766572000a04a854686520636f6e747269627574696f6e20706572696f642068617320616c726561647920656e6465642e34496e76616c69644f726967696e000b048c546865206f726967696e206f6620746869732063616c6c20697320696e76616c69642e304e6f7450617261636861696e000c04c8546869732063726f77646c6f616e20646f6573206e6f7420636f72726573706f6e6420746f20612070617261636861696e2e2c4c65617365416374697665000d041501546869732070617261636861696e206c65617365206973207374696c6c2061637469766520616e64207265746972656d656e742063616e6e6f742079657420626567696e2e404269644f724c65617365416374697665000e043101546869732070617261636861696e277320626964206f72206c65617365206973207374696c6c2061637469766520616e642077697468647261772063616e6e6f742079657420626567696e2e3046756e644e6f74456e646564000f04805468652063726f77646c6f616e20686173206e6f742079657420656e6465642e3c4e6f436f6e747269627574696f6e73001004d0546865726520617265206e6f20636f6e747269627574696f6e732073746f72656420696e20746869732063726f77646c6f616e2e484e6f745265616479546f446973736f6c766500110475015468652063726f77646c6f616e206973206e6f7420726561647920746f20646973736f6c76652e20506f74656e7469616c6c79207374696c6c20686173206120736c6f74206f7220696e207265746972656d656e7420706572696f642e40496e76616c69645369676e617475726500120448496e76616c6964207369676e61747572652e304d656d6f546f6f4c617267650013047c5468652070726f7669646564206d656d6f20697320746f6f206c617267652e44416c7265616479496e4e65775261697365001404845468652066756e6420697320616c726561647920696e20604e65775261697365604856726644656c6179496e50726f6772657373001504b44e6f20636f6e747269627574696f6e7320616c6c6f77656420647572696e6720746865205652462064656c6179344e6f4c65617365506572696f640016042d0141206c6561736520706572696f6420686173206e6f742073746172746564207965742c2064756520746f20616e206f666673657420696e20746865207374617274696e6720626c6f636b2e04bd010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6572726f7273290a0909096f6620746869732070616c6c65742e0a090909e108102873705f72756e74696d651c67656e657269634c756e636865636b65645f65787472696e73696348556e636865636b656445787472696e736963101c41646472657373014d021043616c6c010902245369676e6174757265018d0514457874726101e50800040028000000e50800000420e908ed08f108f508fd0801090509090900e90810306672616d655f73797374656d28657874656e73696f6e7348636865636b5f737065635f76657273696f6e40436865636b5370656356657273696f6e04045400000000ed0810306672616d655f73797374656d28657874656e73696f6e7340636865636b5f74785f76657273696f6e38436865636b547856657273696f6e04045400000000f10810306672616d655f73797374656d28657874656e73696f6e7334636865636b5f67656e6573697330436865636b47656e6573697304045400000000f50810306672616d655f73797374656d28657874656e73696f6e733c636865636b5f6d6f7274616c69747938436865636b4d6f7274616c69747904045400000400f908010c4572610000f908102873705f72756e74696d651c67656e657269630c6572610c4572610001010420496d6d6f7274616c0000001c4d6f7274616c31040008000001001c4d6f7274616c32040008000002001c4d6f7274616c33040008000003001c4d6f7274616c34040008000004001c4d6f7274616c35040008000005001c4d6f7274616c36040008000006001c4d6f7274616c37040008000007001c4d6f7274616c38040008000008001c4d6f7274616c3904000800000900204d6f7274616c313004000800000a00204d6f7274616c313104000800000b00204d6f7274616c313204000800000c00204d6f7274616c313304000800000d00204d6f7274616c313404000800000e00204d6f7274616c313504000800000f00204d6f7274616c313604000800001000204d6f7274616c313704000800001100204d6f7274616c313804000800001200204d6f7274616c313904000800001300204d6f7274616c323004000800001400204d6f7274616c323104000800001500204d6f7274616c323204000800001600204d6f7274616c323304000800001700204d6f7274616c323404000800001800204d6f7274616c323504000800001900204d6f7274616c323604000800001a00204d6f7274616c323704000800001b00204d6f7274616c323804000800001c00204d6f7274616c323904000800001d00204d6f7274616c333004000800001e00204d6f7274616c333104000800001f00204d6f7274616c333204000800002000204d6f7274616c333304000800002100204d6f7274616c333404000800002200204d6f7274616c333504000800002300204d6f7274616c333604000800002400204d6f7274616c333704000800002500204d6f7274616c333804000800002600204d6f7274616c333904000800002700204d6f7274616c343004000800002800204d6f7274616c343104000800002900204d6f7274616c343204000800002a00204d6f7274616c343304000800002b00204d6f7274616c343404000800002c00204d6f7274616c343504000800002d00204d6f7274616c343604000800002e00204d6f7274616c343704000800002f00204d6f7274616c343804000800003000204d6f7274616c343904000800003100204d6f7274616c353004000800003200204d6f7274616c353104000800003300204d6f7274616c353204000800003400204d6f7274616c353304000800003500204d6f7274616c353404000800003600204d6f7274616c353504000800003700204d6f7274616c353604000800003800204d6f7274616c353704000800003900204d6f7274616c353804000800003a00204d6f7274616c353904000800003b00204d6f7274616c363004000800003c00204d6f7274616c363104000800003d00204d6f7274616c363204000800003e00204d6f7274616c363304000800003f00204d6f7274616c363404000800004000204d6f7274616c363504000800004100204d6f7274616c363604000800004200204d6f7274616c363704000800004300204d6f7274616c363804000800004400204d6f7274616c363904000800004500204d6f7274616c373004000800004600204d6f7274616c373104000800004700204d6f7274616c373204000800004800204d6f7274616c373304000800004900204d6f7274616c373404000800004a00204d6f7274616c373504000800004b00204d6f7274616c373604000800004c00204d6f7274616c373704000800004d00204d6f7274616c373804000800004e00204d6f7274616c373904000800004f00204d6f7274616c383004000800005000204d6f7274616c383104000800005100204d6f7274616c383204000800005200204d6f7274616c383304000800005300204d6f7274616c383404000800005400204d6f7274616c383504000800005500204d6f7274616c383604000800005600204d6f7274616c383704000800005700204d6f7274616c383804000800005800204d6f7274616c383904000800005900204d6f7274616c393004000800005a00204d6f7274616c393104000800005b00204d6f7274616c393204000800005c00204d6f7274616c393304000800005d00204d6f7274616c393404000800005e00204d6f7274616c393504000800005f00204d6f7274616c393604000800006000204d6f7274616c393704000800006100204d6f7274616c393804000800006200204d6f7274616c393904000800006300244d6f7274616c31303004000800006400244d6f7274616c31303104000800006500244d6f7274616c31303204000800006600244d6f7274616c31303304000800006700244d6f7274616c31303404000800006800244d6f7274616c31303504000800006900244d6f7274616c31303604000800006a00244d6f7274616c31303704000800006b00244d6f7274616c31303804000800006c00244d6f7274616c31303904000800006d00244d6f7274616c31313004000800006e00244d6f7274616c31313104000800006f00244d6f7274616c31313204000800007000244d6f7274616c31313304000800007100244d6f7274616c31313404000800007200244d6f7274616c31313504000800007300244d6f7274616c31313604000800007400244d6f7274616c31313704000800007500244d6f7274616c31313804000800007600244d6f7274616c31313904000800007700244d6f7274616c31323004000800007800244d6f7274616c31323104000800007900244d6f7274616c31323204000800007a00244d6f7274616c31323304000800007b00244d6f7274616c31323404000800007c00244d6f7274616c31323504000800007d00244d6f7274616c31323604000800007e00244d6f7274616c31323704000800007f00244d6f7274616c31323804000800008000244d6f7274616c31323904000800008100244d6f7274616c31333004000800008200244d6f7274616c31333104000800008300244d6f7274616c31333204000800008400244d6f7274616c31333304000800008500244d6f7274616c31333404000800008600244d6f7274616c31333504000800008700244d6f7274616c31333604000800008800244d6f7274616c31333704000800008900244d6f7274616c31333804000800008a00244d6f7274616c31333904000800008b00244d6f7274616c31343004000800008c00244d6f7274616c31343104000800008d00244d6f7274616c31343204000800008e00244d6f7274616c31343304000800008f00244d6f7274616c31343404000800009000244d6f7274616c31343504000800009100244d6f7274616c31343604000800009200244d6f7274616c31343704000800009300244d6f7274616c31343804000800009400244d6f7274616c31343904000800009500244d6f7274616c31353004000800009600244d6f7274616c31353104000800009700244d6f7274616c31353204000800009800244d6f7274616c31353304000800009900244d6f7274616c31353404000800009a00244d6f7274616c31353504000800009b00244d6f7274616c31353604000800009c00244d6f7274616c31353704000800009d00244d6f7274616c31353804000800009e00244d6f7274616c31353904000800009f00244d6f7274616c3136300400080000a000244d6f7274616c3136310400080000a100244d6f7274616c3136320400080000a200244d6f7274616c3136330400080000a300244d6f7274616c3136340400080000a400244d6f7274616c3136350400080000a500244d6f7274616c3136360400080000a600244d6f7274616c3136370400080000a700244d6f7274616c3136380400080000a800244d6f7274616c3136390400080000a900244d6f7274616c3137300400080000aa00244d6f7274616c3137310400080000ab00244d6f7274616c3137320400080000ac00244d6f7274616c3137330400080000ad00244d6f7274616c3137340400080000ae00244d6f7274616c3137350400080000af00244d6f7274616c3137360400080000b000244d6f7274616c3137370400080000b100244d6f7274616c3137380400080000b200244d6f7274616c3137390400080000b300244d6f7274616c3138300400080000b400244d6f7274616c3138310400080000b500244d6f7274616c3138320400080000b600244d6f7274616c3138330400080000b700244d6f7274616c3138340400080000b800244d6f7274616c3138350400080000b900244d6f7274616c3138360400080000ba00244d6f7274616c3138370400080000bb00244d6f7274616c3138380400080000bc00244d6f7274616c3138390400080000bd00244d6f7274616c3139300400080000be00244d6f7274616c3139310400080000bf00244d6f7274616c3139320400080000c000244d6f7274616c3139330400080000c100244d6f7274616c3139340400080000c200244d6f7274616c3139350400080000c300244d6f7274616c3139360400080000c400244d6f7274616c3139370400080000c500244d6f7274616c3139380400080000c600244d6f7274616c3139390400080000c700244d6f7274616c3230300400080000c800244d6f7274616c3230310400080000c900244d6f7274616c3230320400080000ca00244d6f7274616c3230330400080000cb00244d6f7274616c3230340400080000cc00244d6f7274616c3230350400080000cd00244d6f7274616c3230360400080000ce00244d6f7274616c3230370400080000cf00244d6f7274616c3230380400080000d000244d6f7274616c3230390400080000d100244d6f7274616c3231300400080000d200244d6f7274616c3231310400080000d300244d6f7274616c3231320400080000d400244d6f7274616c3231330400080000d500244d6f7274616c3231340400080000d600244d6f7274616c3231350400080000d700244d6f7274616c3231360400080000d800244d6f7274616c3231370400080000d900244d6f7274616c3231380400080000da00244d6f7274616c3231390400080000db00244d6f7274616c3232300400080000dc00244d6f7274616c3232310400080000dd00244d6f7274616c3232320400080000de00244d6f7274616c3232330400080000df00244d6f7274616c3232340400080000e000244d6f7274616c3232350400080000e100244d6f7274616c3232360400080000e200244d6f7274616c3232370400080000e300244d6f7274616c3232380400080000e400244d6f7274616c3232390400080000e500244d6f7274616c3233300400080000e600244d6f7274616c3233310400080000e700244d6f7274616c3233320400080000e800244d6f7274616c3233330400080000e900244d6f7274616c3233340400080000ea00244d6f7274616c3233350400080000eb00244d6f7274616c3233360400080000ec00244d6f7274616c3233370400080000ed00244d6f7274616c3233380400080000ee00244d6f7274616c3233390400080000ef00244d6f7274616c3234300400080000f000244d6f7274616c3234310400080000f100244d6f7274616c3234320400080000f200244d6f7274616c3234330400080000f300244d6f7274616c3234340400080000f400244d6f7274616c3234350400080000f500244d6f7274616c3234360400080000f600244d6f7274616c3234370400080000f700244d6f7274616c3234380400080000f800244d6f7274616c3234390400080000f900244d6f7274616c3235300400080000fa00244d6f7274616c3235310400080000fb00244d6f7274616c3235320400080000fc00244d6f7274616c3235330400080000fd00244d6f7274616c3235340400080000fe00244d6f7274616c3235350400080000ff0000fd0810306672616d655f73797374656d28657874656e73696f6e732c636865636b5f6e6f6e636528436865636b4e6f6e636504045400000400ad010120543a3a496e6465780000010910306672616d655f73797374656d28657874656e73696f6e7330636865636b5f7765696768742c436865636b576569676874040454000000000509086870616c6c65745f7472616e73616374696f6e5f7061796d656e74604368617267655472616e73616374696f6e5061796d656e7404045400000400cc013042616c616e63654f663c543e000009090c5c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e18636c61696d734850726576616c696461746541747465737473040454000000000d090840706f6c6b61646f745f72756e74696d651c52756e74696d6500000000b81853797374656d011853797374656d401c4163636f756e7401010402000c4101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e74000010040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e2c426c6f636b57656967687401001c600000000000000000000000000000000000000000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e000010040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b486173680101040510248000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101040510280400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d6265720100101000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801002480000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e1844696765737401002c040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e7473010048040010a0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e005901204e4f54453a20546869732073746f72616765206974656d206973206578706c696369746c7920756e626f756e6465642073696e6365206974206973206e6576657220696e74656e64656420746f2062652072656164642066726f6d2077697468696e207468652072756e74696d652e284576656e74436f756e74010010100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f706963730101040224a5010400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e004d01205468652076616c756520686173207468652074797065206028543a3a426c6f636b4e756d6265722c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000a90104000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e740100e80400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e740100e80400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e506861736500009d01040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e01b50101541830426c6f636b57656967687473c901850100f2052a0100000000204aa9d1010000405973070000000001c0766c8f58010000010098f73e5d010000010000000000000000405973070000000001c0febef9cc0100000100204aa9d1010000010088526a74000000405973070000000000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e677468d9013000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e74101060090000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e204462576569676874e1014040787d010000000000e1f505000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6ee501490320706f6c6b61646f743c7061726974792d706f6c6b61646f7400000000962300000000000038df6acb689907609b0300000037e397fc7c91f5e40100000040fe3ad401f8959a05000000d2bc9897eed08f1503000000f78b278be53f454c02000000af2c0297a23e6d3d0100000049eaaf1b548a0cb00100000091d5df18b0d2cf5801000000ed99c5acb25eedf503000000cbca25e39f14238702000000687ad44ad37f03c201000000ab3c0572291feb8b01000000bc9d89904f5b923f0100000037c8bb1350a9a2a801000000080000000484204765742074686520636861696e27732063757272656e742076657273696f6e2e2853533538507265666978250108000014a8205468652064657369676e61746564205353383520707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e01f90100245363686564756c657201245363686564756c65720c184167656e64610101040510fd010400044d01204974656d7320746f2062652065786563757465642c20696e64657865642062792074686520626c6f636b206e756d626572207468617420746865792073686f756c64206265206578656375746564206f6e2e184c6f6f6b75700001040528740400040101204c6f6f6b75702066726f6d206964656e7469747920746f2074686520626c6f636b206e756d62657220616e6420696e646578206f6620746865207461736b2e3853746f7261676556657273696f6e0100ad0504000c7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e0098204e6577206e6574776f726b732073746172742077697468206c6173742076657273696f6e2e010d02017008344d6178696d756d576569676874202000806e877401000008450120546865206d6178696d756d207765696768742074686174206d6179206265207363686564756c65642070657220626c6f636b20666f7220616e7920646973706174636861626c6573206f66206c657373a4207072696f72697479207468616e20607363686564756c653a3a484152445f444541444c494e45602e504d61785363686564756c6564506572426c6f636b101032000000081d0120546865206d6178696d756d206e756d626572206f66207363686564756c65642063616c6c7320696e2074686520717565756520666f7220612073696e676c6520626c6f636b2edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e01b105011042616265011042616265402845706f6368496e64657801002020000000000000000004542043757272656e742065706f636820696e6465782e2c417574686f7269746965730100b5050400046c2043757272656e742065706f636820617574686f7269746965732e2c47656e65736973536c6f740100290220000000000000000008f82054686520736c6f74206174207768696368207468652066697273742065706f63682061637475616c6c7920737461727465642e205468697320697320309020756e74696c2074686520666972737420626c6f636b206f662074686520636861696e2e2c43757272656e74536c6f740100290220000000000000000004542043757272656e7420736c6f74206e756d6265722e2852616e646f6d6e65737301000480000000000000000000000000000000000000000000000000000000000000000028b8205468652065706f63682072616e646f6d6e65737320666f7220746865202a63757272656e742a2065706f63682e002c20232053656375726974790005012054686973204d555354204e4f54206265207573656420666f722067616d626c696e672c2061732069742063616e20626520696e666c75656e6365642062792061f8206d616c6963696f75732076616c696461746f7220696e207468652073686f7274207465726d2e204974204d4159206265207573656420696e206d616e7915012063727970746f677261706869632070726f746f636f6c732c20686f77657665722c20736f206c6f6e67206173206f6e652072656d656d6265727320746861742074686973150120286c696b652065766572797468696e6720656c7365206f6e2d636861696e29206974206973207075626c69632e20466f72206578616d706c652c2069742063616e206265050120757365642077686572652061206e756d626572206973206e656564656420746861742063616e6e6f742068617665206265656e2063686f73656e20627920616e0d01206164766572736172792c20666f7220707572706f7365732073756368206173207075626c69632d636f696e207a65726f2d6b6e6f776c656467652070726f6f66732e6050656e64696e6745706f6368436f6e6669674368616e67650000310204000461012050656e64696e672065706f636820636f6e66696775726174696f6e206368616e676520746861742077696c6c206265206170706c696564207768656e20746865206e6578742065706f636820697320656e61637465642e384e65787452616e646f6d6e657373010004800000000000000000000000000000000000000000000000000000000000000000045c204e6578742065706f63682072616e646f6d6e6573732e3c4e657874417574686f7269746965730100b50504000460204e6578742065706f636820617574686f7269746965732e305365676d656e74496e6465780100101000000000247c2052616e646f6d6e65737320756e64657220636f6e737472756374696f6e2e00f4205765206d616b6520612074726164656f6666206265747765656e2073746f7261676520616363657373657320616e64206c697374206c656e6774682e01012057652073746f72652074686520756e6465722d636f6e737472756374696f6e2072616e646f6d6e65737320696e207365676d656e7473206f6620757020746f942060554e4445525f434f4e535452554354494f4e5f5345474d454e545f4c454e475448602e00ec204f6e63652061207365676d656e7420726561636865732074686973206c656e6774682c20776520626567696e20746865206e657874206f6e652e090120576520726573657420616c6c207365676d656e747320616e642072657475726e20746f206030602061742074686520626567696e6e696e67206f662065766572791c2065706f63682e44556e646572436f6e737472756374696f6e0101040510c10504000415012054574f582d4e4f54453a20605365676d656e74496e6465786020697320616e20696e6372656173696e6720696e74656765722c20736f2074686973206973206f6b61792e2c496e697469616c697a65640000c90504000801012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e292077686963682069732060536f6d65601d01206966207065722d626c6f636b20696e697469616c697a6174696f6e2068617320616c7265616479206265656e2063616c6c656420666f722063757272656e7420626c6f636b2e4c417574686f7256726652616e646f6d6e6573730100c90504001015012054686973206669656c642073686f756c6420616c7761797320626520706f70756c6174656420647572696e6720626c6f636b2070726f63657373696e6720756e6c6573731901207365636f6e6461727920706c61696e20736c6f74732061726520656e61626c65642028776869636820646f6e277420636f6e7461696e206120565246206f7574707574292e0051012049742069732073657420696e20606f6e5f696e697469616c697a65602c206265666f72652069742077696c6c20636f6e7461696e207468652076616c75652066726f6d20746865206c61737420626c6f636b2e2845706f63685374617274010074200000000000000000145d012054686520626c6f636b206e756d62657273207768656e20746865206c61737420616e642063757272656e742065706f6368206861766520737461727465642c20726573706563746976656c7920604e2d316020616e641420604e602e4901204e4f54453a20576520747261636b207468697320697320696e206f7264657220746f20616e6e6f746174652074686520626c6f636b206e756d626572207768656e206120676976656e20706f6f6c206f66590120656e74726f7079207761732066697865642028692e652e20697420776173206b6e6f776e20746f20636861696e206f6273657276657273292e2053696e63652065706f6368732061726520646566696e656420696e590120736c6f74732c207768696368206d617920626520736b69707065642c2074686520626c6f636b206e756d62657273206d6179206e6f74206c696e6520757020776974682074686520736c6f74206e756d626572732e204c6174656e657373010010100000000014d820486f77206c617465207468652063757272656e7420626c6f636b20697320636f6d706172656420746f2069747320706172656e742e001501205468697320656e74727920697320706f70756c617465642061732070617274206f6620626c6f636b20657865637574696f6e20616e6420697320636c65616e65642075701101206f6e20626c6f636b2066696e616c697a6174696f6e2e205175657279696e6720746869732073746f7261676520656e747279206f757473696465206f6620626c6f636bb020657865637574696f6e20636f6e746578742073686f756c6420616c77617973207969656c64207a65726f2e2c45706f6368436f6e6669670000cd0504000861012054686520636f6e66696775726174696f6e20666f72207468652063757272656e742065706f63682e2053686f756c64206e6576657220626520604e6f6e656020617320697420697320696e697469616c697a656420696e242067656e657369732e3c4e65787445706f6368436f6e6669670000cd050400082d012054686520636f6e66696775726174696f6e20666f7220746865206e6578742065706f63682c20604e6f6e65602069662074686520636f6e6669672077696c6c206e6f74206368616e6765e82028796f752063616e2066616c6c6261636b20746f206045706f6368436f6e6669676020696e737465616420696e20746861742063617365292e011502000c3445706f63684475726174696f6e202060090000000000000cec2054686520616d6f756e74206f662074696d652c20696e20736c6f74732c207468617420656163682065706f63682073686f756c64206c6173742e1901204e4f54453a2043757272656e746c79206974206973206e6f7420706f737369626c6520746f206368616e6765207468652065706f6368206475726174696f6e20616674657221012074686520636861696e2068617320737461727465642e20417474656d7074696e6720746f20646f20736f2077696c6c20627269636b20626c6f636b2070726f64756374696f6e2e444578706563746564426c6f636b54696d652020701700000000000014050120546865206578706563746564206176657261676520626c6f636b2074696d6520617420776869636820424142452073686f756c64206265206372656174696e67110120626c6f636b732e2053696e636520424142452069732070726f626162696c6973746963206974206973206e6f74207472697669616c20746f20666967757265206f75740501207768617420746865206578706563746564206176657261676520626c6f636b2074696d652073686f756c64206265206261736564206f6e2074686520736c6f740901206475726174696f6e20616e642074686520736563757269747920706172616d657465722060636020287768657265206031202d20636020726570726573656e7473a0207468652070726f626162696c697479206f66206120736c6f74206265696e6720656d707479292e384d6178417574686f7269746965731010a08601000488204d6178206e756d626572206f6620617574686f72697469657320616c6c6f77656401d105022454696d657374616d70012454696d657374616d70080c4e6f7701002020000000000000000004902043757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e244469645570646174650100e8040004b420446964207468652074696d657374616d7020676574207570646174656420696e207468697320626c6f636b3f013d020004344d696e696d756d506572696f642020b80b000000000000104d0120546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e204265776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a5d0120706572696f6420746861742074686520626c6f636b2070726f64756374696f6e206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c5d012067656e6572616c6c7920776f726b2077697468207468697320746f2064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20652e672e20466f7220417572612c2069742077696c6c206265a020646f75626c65207468697320706572696f64206f6e2064656661756c742073657474696e67732e00031c496e6469636573011c496e646963657304204163636f756e74730001040210d5050400048820546865206c6f6f6b75702066726f6d20696e64657820746f206163636f756e742e0145020184041c4465706f736974184000e8764817000000000000000000000004ac20546865206465706f736974206e656564656420666f7220726573657276696e6720616e20696e6465782e01d905042042616c616e636573012042616c616e6365731434546f74616c49737375616e6365010018400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e1c4163636f756e740101040200140101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c6c205468652062616c616e6365206f6620616e206163636f756e742e004101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b730101040200dd05040008b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e2052657365727665730101040200ed05040004a4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e3853746f7261676556657273696f6e0100f90504000c7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e00a020546869732069732073657420746f2076322e302e3020666f72206e6577206e6574776f726b732e01490201880c484578697374656e7469616c4465706f736974184000e40b5402000000000000000000000004d420546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d61784c6f636b7310103200000008f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e2c4d61785265736572766573101032000000040d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e01fd0505485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c6965720100010640000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e0100050604000000000c485472616e73616374696f6e42797465466565184040420f00000000000000000000000000040d01205468652066656520746f206265207061696420666f72206d616b696e672061207472616e73616374696f6e3b20746865207065722d6279746520706f7274696f6e2e604f7065726174696f6e616c4665654d756c7469706c696572080405545901204120666565206d756c6974706c69657220666f7220604f7065726174696f6e616c602065787472696e7369637320746f20636f6d7075746520227669727475616c207469702220746f20626f6f73742074686569722c20607072696f7269747960004d0120546869732076616c7565206973206d756c7469706c656420627920746865206066696e616c5f6665656020746f206f627461696e206120227669727475616c20746970222074686174206973206c61746572f420616464656420746f20612074697020636f6d706f6e656e7420696e20726567756c617220607072696f72697479602063616c63756c6174696f6e732e4d01204974206d65616e732074686174206120604e6f726d616c60207472616e73616374696f6e2063616e2066726f6e742d72756e20612073696d696c61726c792d73697a656420604f7065726174696f6e616c6041012065787472696e736963202877697468206e6f20746970292c20627920696e636c7564696e672061207469702076616c75652067726561746572207468616e20746865207669727475616c207469702e003c20606060727573742c69676e6f726540202f2f20466f7220604e6f726d616c608c206c6574207072696f72697479203d207072696f726974795f63616c6328746970293b0054202f2f20466f7220604f7065726174696f6e616c601101206c6574207669727475616c5f746970203d2028696e636c7573696f6e5f666565202b2074697029202a204f7065726174696f6e616c4665654d756c7469706c6965723bc4206c6574207072696f72697479203d207072696f726974795f63616c6328746970202b207669727475616c5f746970293b1020606060005101204e6f746520746861742073696e636520776520757365206066696e616c5f6665656020746865206d756c7469706c696572206170706c69657320616c736f20746f2074686520726567756c61722060746970605d012073656e74207769746820746865207472616e73616374696f6e2e20536f2c206e6f74206f6e6c7920646f657320746865207472616e73616374696f6e206765742061207072696f726974792062756d702062617365646101206f6e207468652060696e636c7573696f6e5f666565602c2062757420776520616c736f20616d706c6966792074686520696d70616374206f662074697073206170706c69656420746f20604f7065726174696f6e616c6038207472616e73616374696f6e732e2c576569676874546f46656509065c040000000000000000000000000000000000b4c4040001040d012054686520706f6c796e6f6d69616c2074686174206973206170706c69656420696e206f7264657220746f20646572697665206665652066726f6d207765696768742e002028417574686f72736869700128417574686f72736869700c18556e636c6573010011060400041c20556e636c657318417574686f720000000400046420417574686f72206f662063757272656e7420626c6f636b2e30446964536574556e636c65730100e8040004bc205768657468657220756e636c6573207765726520616c72656164792073657420696e207468697320626c6f636b2e015502000440556e636c6547656e65726174696f6e731010000000000ccc20546865206e756d626572206f6620626c6f636b73206261636b2077652073686f756c642061636365707420756e636c65732ee42054686973206d65616e7320746861742077652077696c6c206465616c207769746820756e636c652d706172656e7473207468617420617265942060556e636c6547656e65726174696f6e73202b203160206265666f726520606e6f77602e011906061c5374616b696e67011c5374616b696e679430486973746f7279446570746801001010540000001c8c204e756d626572206f66206572617320746f206b65657020696e20686973746f72792e00390120496e666f726d6174696f6e206973206b65707420666f72206572617320696e20605b63757272656e745f657261202d20686973746f72795f64657074683b2063757272656e745f6572615d602e006101204d757374206265206d6f7265207468616e20746865206e756d626572206f6620657261732064656c617965642062792073657373696f6e206f74686572776973652e20492e652e2061637469766520657261206d757374390120616c7761797320626520696e20686973746f72792e20492e652e20606163746976655f657261203e2063757272656e745f657261202d20686973746f72795f646570746860206d757374206265302067756172616e746565642e3856616c696461746f72436f756e74010010100000000004a82054686520696465616c206e756d626572206f66207374616b696e67207061727469636970616e74732e544d696e696d756d56616c696461746f72436f756e740100101000000000044101204d696e696d756d206e756d626572206f66207374616b696e67207061727469636970616e7473206265666f726520656d657267656e637920636f6e646974696f6e732061726520696d706f7365642e34496e76756c6e657261626c65730100dc04000c590120416e792076616c696461746f72732074686174206d6179206e6576657220626520736c6173686564206f7220666f726369626c79206b69636b65642e20497427732061205665632073696e636520746865792772654d01206561737920746f20696e697469616c697a6520616e642074686520706572666f726d616e636520686974206973206d696e696d616c2028776520657870656374206e6f206d6f7265207468616e20666f7572ac20696e76756c6e657261626c65732920616e64207265737472696374656420746f20746573746e6574732e18426f6e6465640001040500000400040101204d61702066726f6d20616c6c206c6f636b65642022737461736822206163636f756e747320746f2074686520636f6e74726f6c6c6572206163636f756e742e404d696e4e6f6d696e61746f72426f6e64010018400000000000000000000000000000000004210120546865206d696e696d756d2061637469766520626f6e6420746f206265636f6d6520616e64206d61696e7461696e2074686520726f6c65206f662061206e6f6d696e61746f722e404d696e56616c696461746f72426f6e64010018400000000000000000000000000000000004210120546865206d696e696d756d2061637469766520626f6e6420746f206265636f6d6520616e64206d61696e7461696e2074686520726f6c65206f6620612076616c696461746f722e184c656467657200010402001d060400044501204d61702066726f6d20616c6c2028756e6c6f636b6564292022636f6e74726f6c6c657222206163636f756e747320746f2074686520696e666f20726567617264696e6720746865207374616b696e672e14506179656501010405006102040004e42057686572652074686520726577617264207061796d656e742073686f756c64206265206d6164652e204b657965642062792073746173682e2856616c696461746f7273010104050065020800000c450120546865206d61702066726f6d202877616e6e616265292076616c696461746f72207374617368206b657920746f2074686520707265666572656e636573206f6620746861742076616c696461746f722e004901205768656e207570646174696e6720746869732073746f72616765206974656d2c20796f75206d75737420616c736f20757064617465207468652060436f756e746572466f7256616c696461746f7273602e50436f756e746572466f7256616c696461746f72730100101000000000042101204120747261636b657220746f206b65657020636f756e74206f6620746865206e756d626572206f66206974656d7320696e20746865206056616c696461746f727360206d61702e484d617856616c696461746f7273436f756e7400001004000c310120546865206d6178696d756d2076616c696461746f7220636f756e74206265666f72652077652073746f7020616c6c6f77696e67206e65772076616c696461746f727320746f206a6f696e2e00d0205768656e20746869732076616c7565206973206e6f74207365742c206e6f206c696d6974732061726520656e666f726365642e284e6f6d696e61746f72730001040500290604000c650120546865206d61702066726f6d206e6f6d696e61746f72207374617368206b657920746f2074686520736574206f66207374617368206b657973206f6620616c6c2076616c696461746f727320746f206e6f6d696e6174652e004901205768656e207570646174696e6720746869732073746f72616765206974656d2c20796f75206d75737420616c736f20757064617465207468652060436f756e746572466f724e6f6d696e61746f7273602e50436f756e746572466f724e6f6d696e61746f72730100101000000000042101204120747261636b657220746f206b65657020636f756e74206f6620746865206e756d626572206f66206974656d7320696e2074686520604e6f6d696e61746f727360206d61702e484d61784e6f6d696e61746f7273436f756e7400001004000c310120546865206d6178696d756d206e6f6d696e61746f7220636f756e74206265666f72652077652073746f7020616c6c6f77696e67206e65772076616c696461746f727320746f206a6f696e2e00d0205768656e20746869732076616c7565206973206e6f74207365742c206e6f206c696d6974732061726520656e666f726365642e2843757272656e744572610000100400105c205468652063757272656e742065726120696e6465782e006501205468697320697320746865206c617465737420706c616e6e6564206572612c20646570656e64696e67206f6e20686f77207468652053657373696f6e2070616c6c657420717565756573207468652076616c696461746f7280207365742c206974206d6967687420626520616374697665206f72206e6f742e2441637469766545726100002d06040010d820546865206163746976652065726120696e666f726d6174696f6e2c20697420686f6c647320696e64657820616e642073746172742e0059012054686520616374697665206572612069732074686520657261206265696e672063757272656e746c792072657761726465642e2056616c696461746f7220736574206f66207468697320657261206d757374206265ac20657175616c20746f205b6053657373696f6e496e746572666163653a3a76616c696461746f7273605d2e5445726173537461727453657373696f6e496e6465780001040510100400103101205468652073657373696f6e20696e646578206174207768696368207468652065726120737461727420666f7220746865206c6173742060484953544f52595f44455054486020657261732e006101204e6f74653a205468697320747261636b7320746865207374617274696e672073657373696f6e2028692e652e2073657373696f6e20696e646578207768656e20657261207374617274206265696e672061637469766529f020666f7220746865206572617320696e20605b43757272656e74457261202d20484953544f52595f44455054482c2043757272656e744572615d602e2c457261735374616b65727301010805053106c80c0000001878204578706f73757265206f662076616c696461746f72206174206572612e0061012054686973206973206b65796564206669727374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00a82049732069742072656d6f7665642061667465722060484953544f52595f44455054486020657261732e4101204966207374616b657273206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e20656d707479206578706f737572652069732072657475726e65642e48457261735374616b657273436c697070656401010805053106c80c0000002c9820436c6970706564204578706f73757265206f662076616c696461746f72206174206572612e00590120546869732069732073696d696c617220746f205b60457261735374616b657273605d20627574206e756d626572206f66206e6f6d696e61746f7273206578706f736564206973207265647563656420746f20746865dc2060543a3a4d61784e6f6d696e61746f72526577617264656450657256616c696461746f72602062696767657374207374616b6572732e1d0120284e6f74653a20746865206669656c642060746f74616c6020616e6420606f776e60206f6620746865206578706f737572652072656d61696e7320756e6368616e676564292ef42054686973206973207573656420746f206c696d69742074686520692f6f20636f737420666f7220746865206e6f6d696e61746f72207061796f75742e005d012054686973206973206b657965642066697374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00a82049732069742072656d6f7665642061667465722060484953544f52595f44455054486020657261732e4101204966207374616b657273206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e20656d707479206578706f737572652069732072657475726e65642e484572617356616c696461746f7250726566730101080505310665020800001411012053696d696c617220746f2060457261735374616b657273602c207468697320686f6c64732074686520707265666572656e636573206f662076616c696461746f72732e0061012054686973206973206b65796564206669727374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00a82049732069742072656d6f7665642061667465722060484953544f52595f44455054486020657261732e4c4572617356616c696461746f7252657761726400010405101804000c09012054686520746f74616c2076616c696461746f7220657261207061796f757420666f7220746865206c6173742060484953544f52595f44455054486020657261732e0021012045726173207468617420686176656e27742066696e697368656420796574206f7220686173206265656e2072656d6f76656420646f65736e27742068617665207265776172642e4045726173526577617264506f696e74730101040510350614000000000008ac205265776172647320666f7220746865206c6173742060484953544f52595f44455054486020657261732e250120496620726577617264206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e2030207265776172642069732072657475726e65642e3845726173546f74616c5374616b65010104051018400000000000000000000000000000000008ec2054686520746f74616c20616d6f756e74207374616b656420666f7220746865206c6173742060484953544f52595f44455054486020657261732e1d0120496620746f74616c206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e2030207374616b652069732072657475726e65642e20466f7263654572610100450604000454204d6f6465206f662065726120666f7263696e672e4c536c6173685265776172644672616374696f6e0100b90110000000000cf8205468652070657263656e74616765206f662074686520736c617368207468617420697320646973747269627574656420746f207265706f72746572732e00e4205468652072657374206f662074686520736c61736865642076616c75652069732068616e646c6564206279207468652060536c617368602e4c43616e63656c6564536c6173685061796f757401001840000000000000000000000000000000000815012054686520616d6f756e74206f662063757272656e637920676976656e20746f207265706f7274657273206f66206120736c617368206576656e7420776869636820776173ec2063616e63656c65642062792065787472616f7264696e6172792063697263756d7374616e6365732028652e672e20676f7665726e616e6365292e40556e6170706c696564536c617368657301010405104906040004c420416c6c20756e6170706c69656420736c61736865732074686174206172652071756575656420666f72206c617465722e28426f6e646564457261730100a50104001025012041206d617070696e672066726f6d207374696c6c2d626f6e646564206572617320746f207468652066697273742073657373696f6e20696e646578206f662074686174206572612e00c8204d75737420636f6e7461696e7320696e666f726d6174696f6e20666f72206572617320666f72207468652072616e67653abc20605b6163746976655f657261202d20626f756e64696e675f6475726174696f6e3b206163746976655f6572615d604c56616c696461746f72536c617368496e457261000108050531065106040008450120416c6c20736c617368696e67206576656e7473206f6e2076616c696461746f72732c206d61707065642062792065726120746f20746865206869676865737420736c6173682070726f706f7274696f6e7020616e6420736c6173682076616c7565206f6620746865206572612e4c4e6f6d696e61746f72536c617368496e4572610001080505310618040004610120416c6c20736c617368696e67206576656e7473206f6e206e6f6d696e61746f72732c206d61707065642062792065726120746f20746865206869676865737420736c6173682076616c7565206f6620746865206572612e34536c617368696e675370616e73000104050055060400048c20536c617368696e67207370616e7320666f72207374617368206163636f756e74732e245370616e536c6173680101040541065906800000000000000000000000000000000000000000000000000000000000000000083d01205265636f72647320696e666f726d6174696f6e2061626f757420746865206d6178696d756d20736c617368206f6620612073746173682077697468696e206120736c617368696e67207370616e2cb82061732077656c6c20617320686f77206d7563682072657761726420686173206265656e2070616964206f75742e584561726c69657374556e6170706c696564536c617368000010040004fc20546865206561726c696573742065726120666f72207768696368207765206861766520612070656e64696e672c20756e6170706c69656420736c6173682e5443757272656e74506c616e6e656453657373696f6e01001010000000000ce820546865206c61737420706c616e6e65642073657373696f6e207363686564756c6564206279207468652073657373696f6e2070616c6c65742e0071012054686973206973206261736963616c6c7920696e2073796e632077697468207468652063616c6c20746f205b6070616c6c65745f73657373696f6e3a3a53657373696f6e4d616e616765723a3a6e65775f73657373696f6e605d2e3853746f7261676556657273696f6e01005d06040710cc2054727565206966206e6574776f726b20686173206265656e20757067726164656420746f20746869732076657273696f6e2e7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e00a020546869732069732073657420746f2076372e302e3020666f72206e6577206e6574776f726b732e384368696c6c5468726573686f6c640000710204000c510120546865207468726573686f6c6420666f72207768656e2075736572732063616e2073746172742063616c6c696e6720606368696c6c5f6f746865726020666f72206f746865722076616c696461746f7273202f5901206e6f6d696e61746f72732e20546865207468726573686f6c6420697320636f6d706172656420746f207468652061637475616c206e756d626572206f662076616c696461746f7273202f206e6f6d696e61746f72732901202860436f756e74466f722a602920696e207468652073797374656d20636f6d706172656420746f2074686520636f6e66696775726564206d61782028604d61782a436f756e7460292e015d020190143853657373696f6e735065724572611010060000000470204e756d626572206f662073657373696f6e7320706572206572612e3c426f6e64696e674475726174696f6e10101c00000004e4204e756d626572206f6620657261732074686174207374616b65642066756e6473206d7573742072656d61696e20626f6e64656420666f722e48536c61736844656665724475726174696f6e10101b000000100101204e756d626572206f662065726173207468617420736c6173686573206172652064656665727265642062792c20616674657220636f6d7075746174696f6e2e000d0120546869732073686f756c64206265206c657373207468616e2074686520626f6e64696e67206475726174696f6e2e2053657420746f203020696620736c617368657315012073686f756c64206265206170706c69656420696d6d6564696174656c792c20776974686f7574206f70706f7274756e69747920666f7220696e74657276656e74696f6e2e804d61784e6f6d696e61746f72526577617264656450657256616c696461746f7210100001000010f820546865206d6178696d756d206e756d626572206f66206e6f6d696e61746f727320726577617264656420666f7220656163682076616c696461746f722e00510120466f7220656163682076616c696461746f72206f6e6c79207468652060244d61784e6f6d696e61746f72526577617264656450657256616c696461746f72602062696767657374207374616b6572732063616e390120636c61696d207468656972207265776172642e2054686973207573656420746f206c696d69742074686520692f6f20636f737420666f7220746865206e6f6d696e61746f72207061796f75742e384d61784e6f6d696e6174696f6e731010100000000001610607204f6666656e63657301204f6666656e6365730c1c5265706f72747300010405246506040004490120546865207072696d61727920737472756374757265207468617420686f6c647320616c6c206f6666656e6365207265636f726473206b65796564206279207265706f7274206964656e746966696572732e58436f6e63757272656e745265706f727473496e64657801010805056906a1010400042901204120766563746f72206f66207265706f727473206f66207468652073616d65206b696e6420746861742068617070656e6564206174207468652073616d652074696d6520736c6f742e485265706f72747342794b696e64496e646578010104059828040018110120456e756d65726174657320616c6c207265706f727473206f662061206b696e6420616c6f6e672077697468207468652074696d6520746865792068617070656e65642e00bc20416c6c207265706f7274732061726520736f72746564206279207468652074696d65206f66206f6666656e63652e004901204e6f74652074686174207468652061637475616c2074797065206f662074686973206d617070696e6720697320605665633c75383e602c207468697320697320626563617573652076616c756573206f66690120646966666572656e7420747970657320617265206e6f7420737570706f7274656420617420746865206d6f6d656e7420736f2077652061726520646f696e6720746865206d616e75616c2073657269616c697a6174696f6e2e00019400000828486973746f726963616c0000000000211c53657373696f6e011c53657373696f6e1c2856616c696461746f72730100dc0400047c205468652063757272656e7420736574206f662076616c696461746f72732e3043757272656e74496e646578010010100000000004782043757272656e7420696e646578206f66207468652073657373696f6e2e345175657565644368616e6765640100e8040008390120547275652069662074686520756e6465726c79696e672065636f6e6f6d6963206964656e746974696573206f7220776569676874696e6720626568696e64207468652076616c696461746f7273a420686173206368616e67656420696e20746865207175657565642076616c696461746f72207365742e285175657565644b65797301006d060400083d012054686520717565756564206b65797320666f7220746865206e6578742073657373696f6e2e205768656e20746865206e6578742073657373696f6e20626567696e732c207468657365206b657973e02077696c6c206265207573656420746f2064657465726d696e65207468652076616c696461746f7227732073657373696f6e206b6579732e4844697361626c656456616c696461746f72730100750204000c8020496e6469636573206f662064697361626c65642076616c696461746f72732e003501205468652073657420697320636c6561726564207768656e20606f6e5f73657373696f6e5f656e64696e67602072657475726e732061206e657720736574206f66206964656e7469746965732e204e6578744b657973000104050085020400049c20546865206e6578742073657373696f6e206b65797320666f7220612076616c696461746f722e204b65794f776e657200010405750600040004090120546865206f776e6572206f662061206b65792e20546865206b65792069732074686520604b657954797065496460202b2074686520656e636f646564206b65792e018102019c00017d06091c4772616e647061011c4772616e647061181453746174650100810604000490205374617465206f66207468652063757272656e7420617574686f72697479207365742e3450656e64696e674368616e676500008506040004c42050656e64696e67206368616e67653a20287369676e616c65642061742c207363686564756c6564206368616e6765292e284e657874466f72636564000010040004bc206e65787420626c6f636b206e756d6265722077686572652077652063616e20666f7263652061206368616e67652e1c5374616c6c65640000740400049020607472756560206966207765206172652063757272656e746c79207374616c6c65642e3043757272656e745365744964010020200000000000000000085d0120546865206e756d626572206f66206368616e6765732028626f746820696e207465726d73206f66206b65797320616e6420756e6465726c79696e672065636f6e6f6d696320726573706f6e736962696c697469657329c420696e20746865202273657422206f66204772616e6470612076616c696461746f72732066726f6d2067656e657369732e30536574496453657373696f6e00010405201004001059012041206d617070696e672066726f6d206772616e6470612073657420494420746f2074686520696e646578206f6620746865202a6d6f737420726563656e742a2073657373696f6e20666f722077686963682069747368206d656d62657273207765726520726573706f6e7369626c652e00b82054574f582d4e4f54453a2060536574496460206973206e6f7420756e646572207573657220636f6e74726f6c2e01950201a004384d6178417574686f7269746965731010a0860100045c204d617820417574686f72697469657320696e20757365018d060b20496d4f6e6c696e650120496d4f6e6c696e651038486561727462656174416674657201001010000000002c1d012054686520626c6f636b206e756d6265722061667465722077686963682069742773206f6b20746f2073656e64206865617274626561747320696e207468652063757272656e74242073657373696f6e2e0025012041742074686520626567696e6e696e67206f6620656163682073657373696f6e20776520736574207468697320746f20612076616c756520746861742073686f756c642066616c6c350120726f7567686c7920696e20746865206d6964646c65206f66207468652073657373696f6e206475726174696f6e2e20546865206964656120697320746f206669727374207761697420666f721901207468652076616c696461746f727320746f2070726f64756365206120626c6f636b20696e207468652063757272656e742073657373696f6e2c20736f207468617420746865a820686561727462656174206c61746572206f6e2077696c6c206e6f74206265206e65636573736172792e00390120546869732076616c75652077696c6c206f6e6c79206265207573656420617320612066616c6c6261636b206966207765206661696c20746f2067657420612070726f7065722073657373696f6e2d012070726f677265737320657374696d6174652066726f6d20604e65787453657373696f6e526f746174696f6e602c2061732074686f736520657374696d617465732073686f756c642062650101206d6f7265206163637572617465207468656e207468652076616c75652077652063616c63756c61746520666f7220604865617274626561744166746572602e104b65797301009106040004d0205468652063757272656e7420736574206f66206b6579732074686174206d61792069737375652061206865617274626561742e4852656365697665644865617274626561747300010805057499060400083d0120466f7220656163682073657373696f6e20696e6465782c207765206b6565702061206d617070696e67206f66202753657373696f6e496e6465786020616e64206041757468496e6465786020746fb02060577261707065724f70617175653c426f756e6465644f70617175654e6574776f726b53746174653e602e38417574686f726564426c6f636b730101080505310610100000000008150120466f7220656163682073657373696f6e20696e6465782c207765206b6565702061206d617070696e67206f66206056616c696461746f7249643c543e6020746f20746865c8206e756d626572206f6620626c6f636b7320617574686f7265642062792074686520676976656e20617574686f726974792e01c10201b40440556e7369676e65645072696f726974792020ffffffffffffffff10f0204120636f6e66696775726174696f6e20666f722062617365207072696f72697479206f6620756e7369676e6564207472616e73616374696f6e732e0015012054686973206973206578706f73656420736f20746861742069742063616e2062652074756e656420666f7220706172746963756c61722072756e74696d652c207768656eb4206d756c7469706c652070616c6c6574732073656e6420756e7369676e6564207472616e73616374696f6e732e01ad060c48417574686f72697479446973636f7665727900000000000d2444656d6f6372616379012444656d6f6372616379383c5075626c696350726f70436f756e74010010100000000004f420546865206e756d626572206f6620287075626c6963292070726f706f73616c7320746861742068617665206265656e206d61646520736f206661722e2c5075626c696350726f70730100b106040004210120546865207075626c69632070726f706f73616c732e20556e736f727465642e20546865207365636f6e64206974656d206973207468652070726f706f73616c277320686173682e244465706f7369744f660001040510b90604000c842054686f73652077686f2068617665206c6f636b65642061206465706f7369742e00d82054574f582d4e4f54453a20536166652c20617320696e6372656173696e6720696e7465676572206b6579732061726520736166652e24507265696d616765730001040624bd060400086101204d6170206f662068617368657320746f207468652070726f706f73616c20707265696d6167652c20616c6f6e6720776974682077686f207265676973746572656420697420616e64207468656972206465706f7369742ee42054686520626c6f636b206e756d6265722069732074686520626c6f636b20617420776869636820697420776173206465706f73697465642e3c5265666572656e64756d436f756e74010010100000000004310120546865206e6578742066726565207265666572656e64756d20696e6465782c20616b6120746865206e756d626572206f66207265666572656e6461207374617274656420736f206661722e344c6f77657374556e62616b6564010010100000000008250120546865206c6f77657374207265666572656e64756d20696e64657820726570726573656e74696e6720616e20756e62616b6564207265666572656e64756d2e20457175616c20746fdc20605265666572656e64756d436f756e74602069662074686572652069736e2774206120756e62616b6564207265666572656e64756d2e405265666572656e64756d496e666f4f660001040510c10604000cb420496e666f726d6174696f6e20636f6e6365726e696e6720616e7920676976656e207265666572656e64756d2e0009012054574f582d4e4f54453a205341464520617320696e646578657320617265206e6f7420756e64657220616e2061747461636b6572e280997320636f6e74726f6c2e20566f74696e674f660101040500cd06d8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000105d0120416c6c20766f74657320666f72206120706172746963756c617220766f7465722e2057652073746f7265207468652062616c616e636520666f7220746865206e756d626572206f6620766f74657320746861742077655d012068617665207265636f726465642e20546865207365636f6e64206974656d2069732074686520746f74616c20616d6f756e74206f662064656c65676174696f6e732c20746861742077696c6c2062652061646465642e00e82054574f582d4e4f54453a205341464520617320604163636f756e7449646073206172652063727970746f2068617368657320616e797761792e144c6f636b730001040500100400105d01204163636f756e747320666f7220776869636820746865726520617265206c6f636b7320696e20616374696f6e207768696368206d61792062652072656d6f76656420617420736f6d6520706f696e7420696e207468655101206675747572652e205468652076616c75652069732074686520626c6f636b206e756d62657220617420776869636820746865206c6f636b206578706972657320616e64206d61792062652072656d6f7665642e00c02054574f582d4e4f54453a204f4b20e2809520604163636f756e7449646020697320612073656375726520686173682e544c6173745461626c656457617345787465726e616c0100e80400085901205472756520696620746865206c617374207265666572656e64756d207461626c656420776173207375626d69747465642065787465726e616c6c792e2046616c7365206966206974207761732061207075626c6963282070726f706f73616c2e304e65787445787465726e616c0000e106040010590120546865207265666572656e64756d20746f206265207461626c6564207768656e6576657220697420776f756c642062652076616c696420746f207461626c6520616e2065787465726e616c2070726f706f73616c2e550120546869732068617070656e73207768656e2061207265666572656e64756d206e6565647320746f206265207461626c656420616e64206f6e65206f662074776f20636f6e646974696f6e7320617265206d65743aa4202d20604c6173745461626c656457617345787465726e616c60206973206066616c7365603b206f7268202d20605075626c696350726f70736020697320656d7074792e24426c61636b6c6973740001040624e50604000851012041207265636f7264206f662077686f207665746f656420776861742e204d6170732070726f706f73616c206861736820746f206120706f737369626c65206578697374656e7420626c6f636b206e756d626572e82028756e74696c207768656e206974206d6179206e6f742062652072657375626d69747465642920616e642077686f207665746f65642069742e3443616e63656c6c6174696f6e730101040624e80400042901205265636f7264206f6620616c6c2070726f706f73616c7320746861742068617665206265656e207375626a65637420746f20656d657267656e63792063616e63656c6c6174696f6e2e3853746f7261676556657273696f6e0000e90604000c7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e0098204e6577206e6574776f726b732073746172742077697468206c6173742076657273696f6e2e01dd0201d82c3c456e6163746d656e74506572696f6410100027060014e82054686520706572696f64206265747765656e20612070726f706f73616c206265696e6720617070726f76656420616e6420656e61637465642e0031012049742073686f756c642067656e6572616c6c792062652061206c6974746c65206d6f7265207468616e2074686520756e7374616b6520706572696f6420746f20656e737572652074686174510120766f74696e67207374616b657273206861766520616e206f70706f7274756e69747920746f2072656d6f7665207468656d73656c7665732066726f6d207468652073797374656d20696e207468652063617365b4207768657265207468657920617265206f6e20746865206c6f73696e672073696465206f66206120766f74652e304c61756e6368506572696f6410100027060004e420486f77206f6674656e2028696e20626c6f636b7329206e6577207075626c6963207265666572656e646120617265206c61756e636865642e30566f74696e67506572696f6410100027060004b820486f77206f6674656e2028696e20626c6f636b732920746f20636865636b20666f72206e657720766f7465732e44566f74654c6f636b696e67506572696f64101000270600109020546865206d696e696d756d20706572696f64206f6620766f7465206c6f636b696e672e0065012049742073686f756c64206265206e6f2073686f72746572207468616e20656e6163746d656e7420706572696f6420746f20656e73757265207468617420696e207468652063617365206f6620616e20617070726f76616c2c49012074686f7365207375636365737366756c20766f7465727320617265206c6f636b656420696e746f2074686520636f6e73657175656e636573207468617420746865697220766f74657320656e7461696c2e384d696e696d756d4465706f73697418400010a5d4e8000000000000000000000004350120546865206d696e696d756d20616d6f756e7420746f20626520757365642061732061206465706f73697420666f722061207075626c6963207265666572656e64756d2070726f706f73616c2e38496e7374616e74416c6c6f776564e804010c550120496e64696361746f7220666f72207768657468657220616e20656d657267656e6379206f726967696e206973206576656e20616c6c6f77656420746f2068617070656e2e20536f6d6520636861696e73206d617961012077616e7420746f207365742074686973207065726d616e656e746c7920746f206066616c7365602c206f7468657273206d61792077616e7420746f20636f6e646974696f6e206974206f6e207468696e67732073756368a020617320616e207570677261646520686176696e672068617070656e656420726563656e746c792e5446617374547261636b566f74696e67506572696f6410100807000004ec204d696e696d756d20766f74696e6720706572696f6420616c6c6f77656420666f72206120666173742d747261636b207265666572656e64756d2e34436f6f6c6f6666506572696f641010c089010004610120506572696f6420696e20626c6f636b7320776865726520616e2065787465726e616c2070726f706f73616c206d6179206e6f742062652072652d7375626d6974746564206166746572206265696e67207665746f65642e4c507265696d616765427974654465706f736974184000e1f5050000000000000000000000000429012054686520616d6f756e74206f662062616c616e63652074686174206d757374206265206465706f7369746564207065722062797465206f6620707265696d6167652073746f7265642e204d6178566f74657310106400000010b020546865206d6178696d756d206e756d626572206f6620766f74657320666f7220616e206163636f756e742e00d420416c736f207573656420746f20636f6d70757465207765696768742c20616e206f7665726c79206269672076616c75652063616e1501206c65616420746f2065787472696e7369632077697468207665727920626967207765696768743a20736565206064656c65676174656020666f7220696e7374616e63652e304d617850726f706f73616c73101064000000040d0120546865206d6178696d756d206e756d626572206f66207075626c69632070726f706f73616c7320746861742063616e20657869737420617420616e792074696d652e01ed060e1c436f756e63696c011c436f756e63696c182450726f706f73616c730100f106040004902054686520686173686573206f6620746865206163746976652070726f706f73616c732e2850726f706f73616c4f6600010406240902040004cc2041637475616c2070726f706f73616c20666f72206120676976656e20686173682c20696620697427732063757272656e742e18566f74696e670001040624f506040004b420566f746573206f6e206120676976656e2070726f706f73616c2c206966206974206973206f6e676f696e672e3450726f706f73616c436f756e74010010100000000004482050726f706f73616c7320736f206661722e1c4d656d626572730100dc0400043901205468652063757272656e74206d656d62657273206f662074686520636f6c6c6563746976652e20546869732069732073746f72656420736f7274656420286a7573742062792076616c7565292e145072696d65000000040004650120546865207072696d65206d656d62657220746861742068656c70732064657465726d696e65207468652064656661756c7420766f7465206265686176696f7220696e2063617365206f6620616273656e746174696f6e732e01ed0201e40001f9060f48546563686e6963616c436f6d6d69747465650148546563686e6963616c436f6d6d6974746565182450726f706f73616c730100fd06040004902054686520686173686573206f6620746865206163746976652070726f706f73616c732e2850726f706f73616c4f6600010406240902040004cc2041637475616c2070726f706f73616c20666f72206120676976656e20686173682c20696620697427732063757272656e742e18566f74696e670001040624f506040004b420566f746573206f6e206120676976656e2070726f706f73616c2c206966206974206973206f6e676f696e672e3450726f706f73616c436f756e74010010100000000004482050726f706f73616c7320736f206661722e1c4d656d626572730100dc0400043901205468652063757272656e74206d656d62657273206f662074686520636f6c6c6563746976652e20546869732069732073746f72656420736f7274656420286a7573742062792076616c7565292e145072696d65000000040004650120546865207072696d65206d656d62657220746861742068656c70732064657465726d696e65207468652064656661756c7420766f7465206265686176696f7220696e2063617365206f6620616273656e746174696f6e732e01f50201ec00010107104050687261676d656e456c656374696f6e014050687261676d656e456c656374696f6e141c4d656d626572730100050704000c74205468652063757272656e7420656c6563746564206d656d626572732e00b820496e76617269616e743a20416c7761797320736f72746564206261736564206f6e206163636f756e742069642e2452756e6e65727355700100050704001084205468652063757272656e742072657365727665642072756e6e6572732d75702e00590120496e76617269616e743a20416c7761797320736f72746564206261736564206f6e2072616e6b2028776f72736520746f2062657374292e2055706f6e2072656d6f76616c206f662061206d656d6265722c20746865bc206c6173742028692e652e205f626573745f292072756e6e65722d75702077696c6c206265207265706c616365642e2843616e646964617465730100f40400185901205468652070726573656e742063616e646964617465206c6973742e20412063757272656e74206d656d626572206f722072756e6e65722d75702063616e206e6576657220656e746572207468697320766563746f72d020616e6420697320616c7761797320696d706c696369746c7920617373756d656420746f20626520612063616e6469646174652e007c205365636f6e6420656c656d656e7420697320746865206465706f7369742e00b820496e76617269616e743a20416c7761797320736f72746564206261736564206f6e206163636f756e742069642e38456c656374696f6e526f756e647301001010000000000441012054686520746f74616c206e756d626572206f6620766f746520726f756e6473207468617420686176652068617070656e65642c206578636c7564696e6720746865207570636f6d696e67206f6e652e18566f74696e6701010405000d07840000000000000000000000000000000000000000000000000000000000000000000cb820566f74657320616e64206c6f636b6564207374616b65206f66206120706172746963756c617220766f7465722e00c42054574f582d4e4f54453a205341464520617320604163636f756e7449646020697320612063727970746f20686173682e01f90201f01c2050616c6c65744964f50120706872656c65637404d0204964656e74696669657220666f722074686520656c656374696f6e732d70687261676d656e2070616c6c65742773206c6f636b3443616e646964616379426f6e6418400010a5d4e8000000000000000000000004050120486f77206d7563682073686f756c64206265206c6f636b656420757020696e206f7264657220746f207375626d6974206f6e6527732063616e6469646163792e38566f74696e67426f6e64426173651840007013b72e000000000000000000000010942042617365206465706f736974206173736f636961746564207769746820766f74696e672e00550120546869732073686f756c642062652073656e7369626c79206869676820746f2065636f6e6f6d6963616c6c7920656e73757265207468652070616c6c65742063616e6e6f742062652061747461636b656420627994206372656174696e67206120676967616e746963206e756d626572206f6620766f7465732e40566f74696e67426f6e64466163746f72184000d012130000000000000000000000000411012054686520616d6f756e74206f6620626f6e642074686174206e65656420746f206265206c6f636b656420666f72206561636820766f746520283332206279746573292e38446573697265644d656d6265727310100d0000000470204e756d626572206f66206d656d6265727320746f20656c6563742e404465736972656452756e6e65727355701010140000000478204e756d626572206f662072756e6e6572735f757020746f206b6565702e305465726d4475726174696f6e1010c08901000c510120486f77206c6f6e6720656163682073656174206973206b6570742e205468697320646566696e657320746865206e65787420626c6f636b206e756d62657220617420776869636820616e20656c656374696f6e5d0120726f756e642077696c6c2068617070656e2e2049662073657420746f207a65726f2c206e6f20656c656374696f6e732061726520657665722074726967676572656420616e6420746865206d6f64756c652077696c6c5020626520696e2070617373697665206d6f64652e011107114c546563686e6963616c4d656d62657273686970014c546563686e6963616c4d656d62657273686970081c4d656d626572730100dc040004c8205468652063757272656e74206d656d626572736869702c2073746f72656420617320616e206f726465726564205665632e145072696d65000000040004a4205468652063757272656e74207072696d65206d656d6265722c206966206f6e65206578697374732e01010301fc0001150712205472656173757279012054726561737572790c3450726f706f73616c436f756e74010010100000000004a4204e756d626572206f662070726f706f73616c7320746861742068617665206265656e206d6164652e2450726f706f73616c73000104051019070400047c2050726f706f73616c7320746861742068617665206265656e206d6164652e24417070726f76616c7301001d07040004f82050726f706f73616c20696e646963657320746861742068617665206265656e20617070726f76656420627574206e6f742079657420617761726465642e010503010101183050726f706f73616c426f6e6421071050c30000085501204672616374696f6e206f6620612070726f706f73616c27732076616c756520746861742073686f756c6420626520626f6e64656420696e206f7264657220746f20706c616365207468652070726f706f73616c2e110120416e2061636365707465642070726f706f73616c2067657473207468657365206261636b2e20412072656a65637465642070726f706f73616c20646f6573206e6f742e4c50726f706f73616c426f6e644d696e696d756d18400010a5d4e80000000000000000000000044901204d696e696d756d20616d6f756e74206f662066756e647320746861742073686f756c6420626520706c6163656420696e2061206465706f73697420666f72206d616b696e6720612070726f706f73616c2e2c5370656e64506572696f64101000460500048820506572696f64206265747765656e2073756363657373697665207370656e64732e104275726e210710102700000411012050657263656e74616765206f662073706172652066756e64732028696620616e7929207468617420617265206275726e7420706572207370656e6420706572696f642e2050616c6c6574496425072070792f74727372790419012054686520747265617375727927732070616c6c65742069642c207573656420666f72206465726976696e672069747320736f7665726569676e206163636f756e742049442e304d6178417070726f76616c7310106400000004150120546865206d6178696d756d206e756d626572206f6620617070726f76616c7320746861742063616e207761697420696e20746865207370656e64696e672071756575652e0129071318436c61696d730118436c61696d731418436c61696d730001040609011804000014546f74616c0100184000000000000000000000000000000000001c56657374696e670001040609011903040010782056657374696e67207363686564756c6520666f72206120636c61696d2e0d012046697273742062616c616e63652069732074686520746f74616c20616d6f756e7420746861742073686f756c642062652068656c6420666f722076657374696e672ee4205365636f6e642062616c616e636520697320686f77206d7563682073686f756c6420626520756e6c6f636b65642070657220626c6f636b2ecc2054686520626c6f636b206e756d626572206973207768656e207468652076657374696e672073686f756c642073746172742e1c5369676e696e670001040609012103040004c0205468652073746174656d656e74206b696e642074686174206d757374206265207369676e65642c20696620616e792e24507265636c61696d73000104060009010400042d01205072652d636c61696d656420457468657265756d206163636f756e74732c20627920746865204163636f756e74204944207468617420746865792061726520636c61696d656420746f2e010903010501041850726566697828888450617920444f547320746f2074686520506f6c6b61646f74206163636f756e743a00012d07181c56657374696e67011c56657374696e67081c56657374696e6700010402003107040004d820496e666f726d6174696f6e20726567617264696e67207468652076657374696e67206f66206120676976656e206163636f756e742e3853746f7261676556657273696f6e0100390704000c7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e003101204e6577206e6574776f726b732073746172742077697468206c61746573742076657273696f6e2c2061732064657465726d696e6564206279207468652067656e65736973206275696c642e01250301110108444d696e5665737465645472616e73666572184000e40b5402000000000000000000000004e820546865206d696e696d756d20616d6f756e74207472616e7366657272656420746f2063616c6c20607665737465645f7472616e73666572602e4c4d617856657374696e675363686564756c657310101c00000000013d07191c5574696c69747900012d03011501044c626174636865645f63616c6c735f6c696d697410100dd2000004a820546865206c696d6974206f6e20746865206e756d626572206f6620626174636865642063616c6c732e0141071a204964656e7469747901204964656e7469747910284964656e746974794f660001040500450704000c210120496e666f726d6174696f6e20746861742069732070657274696e656e7420746f206964656e746966792074686520656e7469747920626568696e6420616e206163636f756e742e00c02054574f582d4e4f54453a204f4b20e2809520604163636f756e7449646020697320612073656375726520686173682e1c53757065724f660001040200c5030400086101205468652073757065722d6964656e74697479206f6620616e20616c7465726e6174697665202273756222206964656e7469747920746f676574686572207769746820697473206e616d652c2077697468696e2074686174510120636f6e746578742e20496620746865206163636f756e74206973206e6f7420736f6d65206f74686572206163636f756e742773207375622d6964656e746974792c207468656e206a75737420604e6f6e65602e18537562734f660101040500550744000000000000000000000000000000000014b820416c7465726e6174697665202273756222206964656e746974696573206f662074686973206163636f756e742e001d0120546865206669727374206974656d20697320746865206465706f7369742c20746865207365636f6e64206973206120766563746f72206f6620746865206163636f756e74732e00c02054574f582d4e4f54453a204f4b20e2809520604163636f756e7449646020697320612073656375726520686173682e285265676973747261727301005d070400104d012054686520736574206f6620726567697374726172732e204e6f7420657870656374656420746f206765742076657279206269672061732063616e206f6e6c79206265206164646564207468726f7567682061a8207370656369616c206f726967696e20286c696b656c79206120636f756e63696c206d6f74696f6e292e0029012054686520696e64657820696e746f20746869732063616e206265206361737420746f2060526567697374726172496e6465786020746f2067657420612076616c69642076616c75652e013503011901183042617369634465706f7369741840007db52a2f000000000000000000000004d42054686520616d6f756e742068656c64206f6e206465706f73697420666f7220612072656769737465726564206964656e74697479304669656c644465706f736974184000cd5627000000000000000000000000042d012054686520616d6f756e742068656c64206f6e206465706f73697420706572206164646974696f6e616c206669656c6420666f7220612072656769737465726564206964656e746974792e445375624163636f756e744465706f736974184080f884b02e00000000000000000000000c65012054686520616d6f756e742068656c64206f6e206465706f73697420666f7220612072656769737465726564207375626163636f756e742e20546869732073686f756c64206163636f756e7420666f7220746865206661637465012074686174206f6e652073746f72616765206974656d27732076616c75652077696c6c20696e637265617365206279207468652073697a65206f6620616e206163636f756e742049442c20616e642074686572652077696c6c350120626520616e6f746865722074726965206974656d2077686f73652076616c7565206973207468652073697a65206f6620616e206163636f756e7420494420706c75732033322062797465732e384d61785375624163636f756e7473101064000000040d0120546865206d6178696d756d206e756d626572206f66207375622d6163636f756e747320616c6c6f77656420706572206964656e746966696564206163636f756e742e4c4d61784164646974696f6e616c4669656c6473101064000000086501204d6178696d756d206e756d626572206f66206164646974696f6e616c206669656c64732074686174206d61792062652073746f72656420696e20616e2049442e204e656564656420746f20626f756e642074686520492f4fe020726571756972656420746f2061636365737320616e206964656e746974792c206275742063616e2062652070726574747920686967682e344d617852656769737472617273101014000000085101204d61786d696d756d206e756d626572206f66207265676973747261727320616c6c6f77656420696e207468652073797374656d2e204e656564656420746f20626f756e642074686520636f6d706c65786974797c206f662c20652e672e2c207570646174696e67206a756467656d656e74732e016d071c1450726f7879011450726f7879081c50726f78696573010104050071074400000000000000000000000000000000000845012054686520736574206f66206163636f756e742070726f786965732e204d61707320746865206163636f756e74207768696368206861732064656c65676174656420746f20746865206163636f756e7473210120776869636820617265206265696e672064656c65676174656420746f2c20746f67657468657220776974682074686520616d6f756e742068656c64206f6e206465706f7369742e34416e6e6f756e63656d656e74730101040500810744000000000000000000000000000000000004ac2054686520616e6e6f756e63656d656e7473206d616465206279207468652070726f787920286b6579292e01d503011d01184050726f78794465706f7369744261736518400084b2952e000000000000000000000010110120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e6720612070726f78792e00010120546869732069732068656c6420666f7220616e206164646974696f6e616c2073746f72616765206974656d2077686f73652076616c75652073697a652069732501206073697a656f662842616c616e6365296020627974657320616e642077686f7365206b65792073697a65206973206073697a656f66284163636f756e74496429602062797465732e4850726f78794465706f736974466163746f7218408066ab1300000000000000000000000014bc2054686520616d6f756e74206f662063757272656e6379206e6565646564207065722070726f78792061646465642e00350120546869732069732068656c6420666f7220616464696e6720333220627974657320706c757320616e20696e7374616e6365206f66206050726f78795479706560206d6f726520696e746f20616101207072652d6578697374696e672073746f726167652076616c75652e20546875732c207768656e20636f6e6669677572696e67206050726f78794465706f736974466163746f7260206f6e652073686f756c642074616b65f420696e746f206163636f756e7420603332202b2070726f78795f747970652e656e636f646528292e6c656e282960206279746573206f6620646174612e284d617850726f7869657310102000000004f020546865206d6178696d756d20616d6f756e74206f662070726f7869657320616c6c6f77656420666f7220612073696e676c65206163636f756e742e284d617850656e64696e6710102000000004450120546865206d6178696d756d20616d6f756e74206f662074696d652d64656c6179656420616e6e6f756e63656d656e747320746861742061726520616c6c6f77656420746f2062652070656e64696e672e5c416e6e6f756e63656d656e744465706f7369744261736518400084b2952e000000000000000000000010310120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e6720616e20616e6e6f756e63656d656e742e00490120546869732069732068656c64207768656e2061206e65772073746f72616765206974656d20686f6c64696e672061206042616c616e636560206973206372656174656420287479706963616c6c7920313620206279746573292e64416e6e6f756e63656d656e744465706f736974466163746f72184000cd562700000000000000000000000010d42054686520616d6f756e74206f662063757272656e6379206e65656465642070657220616e6e6f756e63656d656e74206d6164652e00590120546869732069732068656c6420666f7220616464696e6720616e20604163636f756e744964602c2060486173686020616e642060426c6f636b4e756d6265726020287479706963616c6c79203638206279746573298c20696e746f2061207072652d6578697374696e672073746f726167652076616c75652e0191071d204d756c746973696701204d756c746973696708244d756c746973696773000108050295079907040004942054686520736574206f66206f70656e206d756c7469736967206f7065726174696f6e732e1443616c6c7300010406049d0704000001dd030129010c2c4465706f736974426173651840008c61c52e000000000000000000000018590120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e672061206d756c746973696720657865637574696f6e206f7220746f842073746f726520612064697370617463682063616c6c20666f72206c617465722e00010120546869732069732068656c6420666f7220616e206164646974696f6e616c2073746f72616765206974656d2077686f73652076616c75652073697a652069733101206034202b2073697a656f662828426c6f636b4e756d6265722c2042616c616e63652c204163636f756e74496429296020627974657320616e642077686f7365206b65792073697a652069738020603332202b2073697a656f66284163636f756e74496429602062797465732e344465706f736974466163746f72184000d012130000000000000000000000000c55012054686520616d6f756e74206f662063757272656e6379206e65656465642070657220756e6974207468726573686f6c64207768656e206372656174696e672061206d756c746973696720657865637574696f6e2e00250120546869732069732068656c6420666f7220616464696e67203332206279746573206d6f726520696e746f2061207072652d6578697374696e672073746f726167652076616c75652e384d61785369676e61746f72696573250108640004ec20546865206d6178696d756d20616d6f756e74206f66207369676e61746f7269657320616c6c6f77656420696e20746865206d756c74697369672e01a1071e20426f756e746965730120426f756e74696573102c426f756e7479436f756e74010010100000000004c0204e756d626572206f6620626f756e74792070726f706f73616c7320746861742068617665206265656e206d6164652e20426f756e746965730001040510a5070400047820426f756e7469657320746861742068617665206265656e206d6164652e48426f756e74794465736372697074696f6e730001040510280400048020546865206465736372697074696f6e206f66206561636820626f756e74792e3c426f756e7479417070726f76616c7301007502040004ec20426f756e747920696e646963657320746861742068617665206265656e20617070726f76656420627574206e6f74207965742066756e6465642e01e5030131011c44426f756e74794465706f73697442617365184000e40b5402000000000000000000000004e82054686520616d6f756e742068656c64206f6e206465706f73697420666f7220706c6163696e67206120626f756e74792070726f706f73616c2e60426f756e74794465706f7369745061796f757444656c6179101000c20100045901205468652064656c617920706572696f6420666f72207768696368206120626f756e74792062656e6566696369617279206e65656420746f2077616974206265666f726520636c61696d20746865207061796f75742e48426f756e7479557064617465506572696f64101080c61300046c20426f756e7479206475726174696f6e20696e20626c6f636b732e50426f756e747943757261746f724465706f73697421071020a107000849012050657263656e74616765206f66207468652063757261746f722066656520746861742077696c6c20626520726573657276656420757066726f6e74206173206465706f73697420666f7220626f756e7479242063757261746f722e48426f756e747956616c75654d696e696d756d184000e876481700000000000000000000000470204d696e696d756d2076616c756520666f72206120626f756e74792e48446174614465706f73697450657242797465184000e1f5050000000000000000000000000461012054686520616d6f756e742068656c64206f6e206465706f7369742070657220627974652077697468696e2074686520746970207265706f727420726561736f6e206f7220626f756e7479206465736372697074696f6e2e4c4d6178696d756d526561736f6e4c656e6774681010004000000488204d6178696d756d2061636365707461626c6520726561736f6e206c656e6774682e01ad072210546970730110546970730810546970730001040524b10704000c650120546970734d6170207468617420617265206e6f742079657420636f6d706c657465642e204b65796564206279207468652068617368206f66206028726561736f6e2c2077686f29602066726f6d207468652076616c75652e3d012054686973206861732074686520696e73656375726520656e756d657261626c6520686173682066756e6374696f6e2073696e636520746865206b657920697473656c6620697320616c7265616479802067756172616e7465656420746f20626520612073656375726520686173682e1c526561736f6e7300010406242804000849012053696d706c6520707265696d616765206c6f6f6b75702066726f6d2074686520726561736f6e2773206861736820746f20746865206f726967696e616c20646174612e20416761696e2c2068617320616e610120696e73656375726520656e756d657261626c6520686173682073696e636520746865206b65792069732067756172616e7465656420746f2062652074686520726573756c74206f6620612073656375726520686173682e01e903013501144c4d6178696d756d526561736f6e4c656e6774681010004000000488204d6178696d756d2061636365707461626c6520726561736f6e206c656e6774682e48446174614465706f73697450657242797465184000e1f5050000000000000000000000000461012054686520616d6f756e742068656c64206f6e206465706f7369742070657220627974652077697468696e2074686520746970207265706f727420726561736f6e206f7220626f756e7479206465736372697074696f6e2e30546970436f756e74646f776e1010403800000445012054686520706572696f6420666f722077686963682061207469702072656d61696e73206f70656e20616674657220697320686173206163686965766564207468726573686f6c6420746970706572732e3454697046696e6465727346656571020414043501205468652070657263656e74206f66207468652066696e616c2074697020776869636820676f657320746f20746865206f726967696e616c207265706f72746572206f6620746865207469702e505469705265706f72744465706f73697442617365184000e40b5402000000000000000000000004d42054686520616d6f756e742068656c64206f6e206465706f73697420666f7220706c6163696e67206120746970207265706f72742e01b5072368456c656374696f6e50726f76696465724d756c746950686173650168456c656374696f6e50726f76696465724d756c746950686173652814526f756e64010010100100000018ac20496e7465726e616c20636f756e74657220666f7220746865206e756d626572206f6620726f756e64732e00550120546869732069732075736566756c20666f722064652d6475706c69636174696f6e206f66207472616e73616374696f6e73207375626d697474656420746f2074686520706f6f6c2c20616e642067656e6572616c6c20646961676e6f7374696373206f66207468652070616c6c65742e004d012054686973206973206d6572656c7920696e6372656d656e746564206f6e6365207065722065766572792074696d65207468617420616e20757073747265616d2060656c656374602069732063616c6c65642e3043757272656e7450686173650100b9070400043c2043757272656e742070686173652e38517565756564536f6c7574696f6e0000c1070400043d012043757272656e74206265737420736f6c7574696f6e2c207369676e6564206f7220756e7369676e65642c2071756575656420746f2062652072657475726e65642075706f6e2060656c656374602e20536e617073686f740000c50704000c7020536e617073686f742064617461206f662074686520726f756e642e005d01205468697320697320637265617465642061742074686520626567696e6e696e67206f6620746865207369676e656420706861736520616e6420636c65617265642075706f6e2063616c6c696e672060656c656374602e38446573697265645461726765747300001004000ccc2044657369726564206e756d626572206f66207461726765747320746f20656c65637420666f72207468697320726f756e642e00a8204f6e6c7920657869737473207768656e205b60536e617073686f74605d2069732070726573656e742e40536e617073686f744d657461646174610000c50404000c9820546865206d65746164617461206f6620746865205b60526f756e64536e617073686f74605d00a8204f6e6c7920657869737473207768656e205b60536e617073686f74605d2069732070726573656e742e645369676e65645375626d697373696f6e4e657874496e646578010010100000000024010120546865206e65787420696e64657820746f2062652061737369676e656420746f20616e20696e636f6d696e67207369676e6564207375626d697373696f6e2e007501204576657279206163636570746564207375626d697373696f6e2069732061737369676e6564206120756e6971756520696e6465783b207468617420696e64657820697320626f756e6420746f207468617420706172746963756c61726501207375626d697373696f6e20666f7220746865206475726174696f6e206f662074686520656c656374696f6e2e204f6e20656c656374696f6e2066696e616c697a6174696f6e2c20746865206e65787420696e6465782069733020726573657420746f20302e0069012057652063616e2774206a7573742075736520605369676e65645375626d697373696f6e496e64696365732e6c656e2829602c206265636175736520746861742773206120626f756e646564207365743b20706173742069747359012063617061636974792c2069742077696c6c2073696d706c792073617475726174652e2057652063616e2774206a7573742069746572617465206f76657220605369676e65645375626d697373696f6e734d6170602cf4206265636175736520697465726174696f6e20697320736c6f772e20496e73746561642c2077652073746f7265207468652076616c756520686572652e5c5369676e65645375626d697373696f6e496e64696365730100d1070400184d01204120736f727465642c20626f756e64656420736574206f6620602873636f72652c20696e64657829602c20776865726520656163682060696e6465786020706f696e747320746f20612076616c756520696e5420605369676e65645375626d697373696f6e73602e007101205765206e65766572206e65656420746f2070726f63657373206d6f7265207468616e20612073696e676c65207369676e6564207375626d697373696f6e20617420612074696d652e205369676e6564207375626d697373696f6e7375012063616e206265207175697465206c617267652c20736f2077652772652077696c6c696e6720746f207061792074686520636f7374206f66206d756c7469706c6520646174616261736520616363657373657320746f206163636573732101207468656d206f6e6520617420612074696d6520696e7374656164206f662072656164696e6720616e64206465636f64696e6720616c6c206f66207468656d206174206f6e63652e505369676e65645375626d697373696f6e734d61700101040510e10711020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000001c7420556e636865636b65642c207369676e656420736f6c7574696f6e732e00690120546f676574686572207769746820605375626d697373696f6e496e6469636573602c20746869732073746f726573206120626f756e64656420736574206f6620605369676e65645375626d697373696f6e7360207768696c65ec20616c6c6f77696e6720757320746f206b656570206f6e6c7920612073696e676c65206f6e6520696e206d656d6f727920617420612074696d652e0069012054776f78206e6f74653a20746865206b6579206f6620746865206d617020697320616e206175746f2d696e6372656d656e74696e6720696e6465782077686963682075736572732063616e6e6f7420696e7370656374206f72f4206166666563743b2077652073686f756c646e2774206e65656420612063727970746f67726170686963616c6c7920736563757265206861736865722e544d696e696d756d556e7472757374656453636f72650000c1040400105d0120546865206d696e696d756d2073636f7265207468617420656163682027756e747275737465642720736f6c7574696f6e206d7573742061747461696e20696e206f7264657220746f20626520636f6e7369646572656428206665617369626c652e00b82043616e206265207365742076696120607365745f6d696e696d756d5f756e747275737465645f73636f7265602e01ed030139013834556e7369676e656450686173651010580200000480204475726174696f6e206f662074686520756e7369676e65642070686173652e2c5369676e656450686173651010580200000478204475726174696f6e206f6620746865207369676e65642070686173652e70536f6c7574696f6e496d70726f76656d656e745468726573686f6c64b9011020a10700084d0120546865206d696e696d756d20616d6f756e74206f6620696d70726f76656d656e7420746f2074686520736f6c7574696f6e2073636f7265207468617420646566696e6573206120736f6c7574696f6e206173642022626574746572222028696e20616e79207068617365292e384f6666636861696e52657065617410100500000010b42054686520726570656174207468726573686f6c64206f6620746865206f6666636861696e20776f726b65722e00610120466f72206578616d706c652c20696620697420697320352c2074686174206d65616e732074686174206174206c65617374203520626c6f636b732077696c6c20656c61707365206265747765656e20617474656d7074738420746f207375626d69742074686520776f726b6572277320736f6c7574696f6e2e3c4d696e657254785072696f72697479202065666666666666e604250120546865207072696f72697479206f662074686520756e7369676e6564207472616e73616374696f6e207375626d697474656420696e2074686520756e7369676e65642d7068617365384d696e65724d61785765696768742020c08466655701000010b8204d6178696d756d20776569676874207468617420746865206d696e65722073686f756c6420636f6e73756d652e00550120546865206d696e65722077696c6c20656e7375726520746861742074686520746f74616c20776569676874206f662074686520756e7369676e656420736f6c7574696f6e2077696c6c206e6f7420657863656564d820746869732076616c75652c206261736564206f6e205b60576569676874496e666f3a3a7375626d69745f756e7369676e6564605d2e505369676e65644d61785375626d697373696f6e731010100000001ce4204d6178696d756d206e756d626572206f66207369676e6564207375626d697373696f6e7320746861742063616e206265207175657565642e005501204974206973206265737420746f2061766f69642061646a757374696e67207468697320647572696e6720616e20656c656374696f6e2c20617320697420696d706163747320646f776e73747265616d2064617461650120737472756374757265732e20496e20706172746963756c61722c20605369676e65645375626d697373696f6e496e64696365733c543e6020697320626f756e646564206f6e20746869732076616c75652e20496620796f75f42075706461746520746869732076616c756520647572696e6720616e20656c656374696f6e2c20796f75205f6d7573745f20656e7375726520746861744d0120605369676e65645375626d697373696f6e496e64696365732e6c656e282960206973206c657373207468616e206f7220657175616c20746f20746865206e65772076616c75652e204f74686572776973652cf020617474656d70747320746f207375626d6974206e657720736f6c7574696f6e73206d617920636175736520612072756e74696d652070616e69632e3c5369676e65644d61785765696768742020c0846665570100000c94204d6178696d756d20776569676874206f662061207369676e656420736f6c7574696f6e2e00fc20546869732073686f756c642070726f6261626c792062652073696d696c617220746f205b60436f6e6669673a3a4d696e65724d6178576569676874605d2e405369676e656452657761726442617365184000e40b54020000000000000000000000048820426173652072657761726420666f722061207369676e656420736f6c7574696f6e445369676e65644465706f73697442617365184000a0db215d000000000000000000000004902042617365206465706f73697420666f722061207369676e656420736f6c7574696f6e2e445369676e65644465706f736974427974651840787d010000000000000000000000000004a0205065722d62797465206465706f73697420666f722061207369676e656420736f6c7574696f6e2e4c5369676e65644465706f73697457656967687418400000000000000000000000000000000004a8205065722d776569676874206465706f73697420666f722061207369676e656420736f6c7574696f6e2e54566f746572536e617073686f74506572426c6f636b1010e4570000185d0120546865206d6178696d756d206e756d626572206f6620766f7465727320746f2070757420696e2074686520736e617073686f742e20417420746865206d6f6d656e742c20736e617073686f747320617265206f6e6c796101206f76657220612073696e676c6520626c6f636b2c20627574206f6e6365206d756c74692d626c6f636b20656c656374696f6e732061726520696e74726f647563656420746865792077696c6c2074616b6520706c61636558206f766572206d756c7469706c6520626c6f636b732e00310120416c736f2c206e6f746520746865206461746120747970653a2049662074686520766f746572732061726520726570726573656e746564206279206120607533326020696e206074797065390120436f6d70616374536f6c7574696f6e602c207468652073616d652060753332602069732075736564206865726520746f20656e7375726520626f756e647320617265207265737065637465642e384d696e65724d61784c656e67746810100000360010fc204d6178696d756d206c656e6774682028627974657329207468617420746865206d696e656420736f6c7574696f6e2073686f756c6420636f6e73756d652e00550120546865206d696e65722077696c6c20656e7375726520746861742074686520746f74616c206c656e677468206f662074686520756e7369676e656420736f6c7574696f6e2077696c6c206e6f74206578636565643020746869732076616c75652e01e507244050617261636861696e734f726967696e00000000003234436f6e66696775726174696f6e0134436f6e66696775726174696f6e0830416374697665436f6e6669670100e907e90200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000100000001000000000000000000060000006400000002000000c8000000010000000000000000000000000000000000000000c817a80400000004c8205468652061637469766520636f6e66696775726174696f6e20666f72207468652063757272656e742073657373696f6e2e3450656e64696e67436f6e6669670001040510e907040004d42050656e64696e6720636f6e66696775726174696f6e2028696620616e792920666f7220746865206e6578742073657373696f6e2e01d904000001ed07332c5061726173536861726564012c50617261735368617265640c4c43757272656e7453657373696f6e496e6465780100101000000000046c205468652063757272656e742073657373696f6e20696e6465782e5841637469766556616c696461746f72496e64696365730100f107040008090120416c6c207468652076616c696461746f7273206163746976656c792070617274696369706174696e6720696e2070617261636861696e20636f6e73656e7375732eb020496e64696365732061726520696e746f207468652062726f616465722076616c696461746f72207365742e4c41637469766556616c696461746f724b6579730100f5070400088101205468652070617261636861696e206174746573746174696f6e206b657973206f66207468652076616c696461746f7273206163746976656c792070617274696369706174696e6720696e2070617261636861696e20636f6e73656e7375732ef020546869732073686f756c64206265207468652073616d65206c656e677468206173206041637469766556616c696461746f72496e6469636573602e01dd04000000343450617261496e636c7573696f6e013450617261496e636c7573696f6e0c54417661696c6162696c6974794269746669656c6473000104050105f907040004650120546865206c6174657374206269746669656c6420666f7220656163682076616c696461746f722c20726566657272656420746f20627920746865697220696e64657820696e207468652076616c696461746f72207365742e4c50656e64696e67417661696c6162696c697479000104055101fd07040004b42043616e646964617465732070656e64696e6720617661696c6162696c6974792062792060506172614964602e7850656e64696e67417661696c6162696c697479436f6d6d69746d656e7473000104055101150504000405012054686520636f6d6d69746d656e7473206f662063616e646964617465732070656e64696e6720617661696c6162696c6974792c2062792060506172614964602e01e10401450100010108353050617261496e686572656e74013050617261496e686572656e740420496e636c75646564000080040018ec20576865746865722074686520706172617320696e686572656e742077617320696e636c756465642077697468696e207468697320626c6f636b2e0069012054686520604f7074696f6e3c28293e60206973206566666563746976656c7920612060626f6f6c602c20627574206974206e6576657220686974732073746f7261676520696e2074686520604e6f6e65602076617269616e74bc2064756520746f207468652067756172616e74656573206f66204652414d4527732073746f7261676520415049732e004901204966207468697320697320604e6f6e65602061742074686520656e64206f662074686520626c6f636b2c2077652070616e696320616e642072656e6465722074686520626c6f636b20696e76616c69642e01e50400000105083634506172615363686564756c65720134506172615363686564756c6572183c56616c696461746f7247726f757073010009080400186d0120416c6c207468652076616c696461746f722067726f7570732e204f6e6520666f72206561636820636f72652e20496e64696365732061726520696e746f206041637469766556616c696461746f727360202d206e6f74207468656d012062726f6164657220736574206f6620506f6c6b61646f742076616c696461746f72732c2062757420696e7374656164206a7573742074686520737562736574207573656420666f722070617261636861696e7320647572696e673820746869732073657373696f6e2e00810120426f756e643a20546865206e756d626572206f6620636f726573206973207468652073756d206f6620746865206e756d62657273206f662070617261636861696e7320616e642070617261746872656164206d756c7469706c65786572732e810120526561736f6e61626c792c203130302d313030302e2054686520646f6d696e616e7420666163746f7220697320746865206e756d626572206f662076616c696461746f72733a207361666520757070657220626f756e642061742031306b2e3c50617261746872656164517565756501000d081400000000001019012041207175657565206f66207570636f6d696e6720636c61696d7320616e6420776869636820636f726520746865792073686f756c64206265206d6170706564206f6e746f2e00150120546865206e756d626572206f662071756575656420636c61696d7320697320626f756e6465642061742074686520607363686564756c696e675f6c6f6f6b6168656164605501206d756c7469706c69656420627920746865206e756d626572206f662070617261746872656164206d756c7469706c6578657220636f7265732e20526561736f6e61626c792c203130202a203530203d203530302e44417661696c6162696c697479436f726573010021080400209d01204f6e6520656e74727920666f72206561636820617661696c6162696c69747920636f72652e20456e74726965732061726520604e6f6e65602069662074686520636f7265206973206e6f742063757272656e746c79206f636375706965642e2043616e206265c82074656d706f726172696c792060536f6d6560206966207363686564756c656420627574206e6f74206f636375706965642e41012054686520692774682070617261636861696e2062656c6f6e677320746f20746865206927746820636f72652c2077697468207468652072656d61696e696e6720636f72657320616c6c206265696e676420706172617468726561642d6d756c7469706c65786572732e00d820426f756e64656420627920746865206d6178696d756d206f6620656974686572206f662074686573652074776f2076616c7565733ae42020202a20546865206e756d626572206f662070617261636861696e7320616e642070617261746872656164206d756c7469706c657865727345012020202a20546865206e756d626572206f662076616c696461746f727320646976696465642062792060636f6e66696775726174696f6e2e6d61785f76616c696461746f72735f7065725f636f7265602e5050617261746872656164436c61696d496e64657801002d08040010590120416e20696e646578207573656420746f20656e737572652074686174206f6e6c79206f6e6520636c61696d206f6e206120706172617468726561642065786973747320696e20746865207175657565206f72206973b42063757272656e746c79206265696e672068616e646c656420627920616e206f6363757069656420636f72652e007d0120426f756e64656420627920746865206e756d626572206f66207061726174687265616420636f72657320616e64207363686564756c696e67206c6f6f6b61686561642e20526561736f6e61626c792c203130202a203530203d203530302e4453657373696f6e5374617274426c6f636b010010100000000018a5012054686520626c6f636b206e756d626572207768657265207468652073657373696f6e207374617274206f636375727265642e205573656420746f20747261636b20686f77206d616e792067726f757020726f746174696f6e732068617665206f636375727265642e005501204e6f7465207468617420696e2074686520636f6e74657874206f662070617261636861696e73206d6f64756c6573207468652073657373696f6e206368616e6765206973207369676e616c656420647572696e6761012074686520626c6f636b20616e6420656e61637465642061742074686520656e64206f662074686520626c6f636b20286174207468652066696e616c697a6174696f6e2073746167652c20746f206265206578616374292e5901205468757320666f7220616c6c20696e74656e747320616e6420707572706f7365732074686520656666656374206f66207468652073657373696f6e206368616e6765206973206f6273657276656420617420746865650120626c6f636b20666f6c6c6f77696e67207468652073657373696f6e206368616e67652c20626c6f636b206e756d626572206f66207768696368207765207361766520696e20746869732073746f726167652076616c75652e245363686564756c656401003108040018e02043757272656e746c79207363686564756c656420636f726573202d20667265652062757420757020746f206265206f636375706965642e004d0120426f756e64656420627920746865206e756d626572206f6620636f7265733a206f6e6520666f7220656163682070617261636861696e20616e642070617261746872656164206d756c7469706c657865722e00fd01205468652076616c756520636f6e7461696e656420686572652077696c6c206e6f742062652076616c69642061667465722074686520656e64206f66206120626c6f636b2e2052756e74696d6520415049732073686f756c64206265207573656420746f2064657465726d696e65207363686564756c656420636f7265732f6020666f7220746865207570636f6d696e6720626c6f636b2e000000003714506172617301145061726173442850617261636861696e7301002d08040004350120416c6c2070617261636861696e732e204f72646572656420617363656e64696e672062792060506172614964602e20506172617468726561647320617265206e6f7420696e636c756465642e38506172614c6966656379636c65730001040551013d08040004bc205468652063757272656e74206c6966656379636c65206f66206120616c6c206b6e6f776e2050617261204944732e1448656164730001040551016901040004a02054686520686561642d64617461206f66206576657279207265676973746572656420706172612e3c43757272656e74436f646548617368000104055101650104000cb4205468652076616c69646174696f6e20636f64652068617368206f66206576657279206c69766520706172612e00e420436f72726573706f6e64696e6720636f64652063616e206265207265747269657665642077697468205b60436f6465427948617368605d2e3050617374436f646548617368000104054108650104001061012041637475616c207061737420636f646520686173682c20696e646963617465642062792074686520706172612069642061732077656c6c2061732074686520626c6f636b206e756d6265722061742077686963682069744420626563616d65206f757464617465642e00e420436f72726573706f6e64696e6720636f64652063616e206265207265747269657665642077697468205b60436f6465427948617368605d2e3050617374436f64654d65746101010405510145080800000c4901205061737420636f6465206f662070617261636861696e732e205468652070617261636861696e73207468656d73656c766573206d6179206e6f74206265207265676973746572656420616e796d6f72652c49012062757420776520616c736f206b65657020746865697220636f6465206f6e2d636861696e20666f72207468652073616d6520616d6f756e74206f662074696d65206173206f7574646174656420636f6465b420746f206b65657020697420617661696c61626c6520666f72207365636f6e6461727920636865636b6572732e3c50617374436f64655072756e696e6701005108040018a1012057686963682070617261732068617665207061737420636f64652074686174206e65656473207072756e696e6720616e64207468652072656c61792d636861696e20626c6f636b2061742077686963682074686520636f646520776173207265706c616365642e8101204e6f746520746861742074686973206973207468652061637475616c20686569676874206f662074686520696e636c7564656420626c6f636b2c206e6f74207468652065787065637465642068656967687420617420776869636820746865ec20636f6465207570677261646520776f756c64206265206170706c6965642c20616c74686f7567682074686579206d617920626520657175616c2e9101205468697320697320746f20656e737572652074686520656e7469726520616363657074616e636520706572696f6420697320636f76657265642c206e6f7420616e206f666673657420616363657074616e636520706572696f64207374617274696e6749012066726f6d207468652074696d65206174207768696368207468652070617261636861696e20706572636569766573206120636f6465207570677261646520617320686176696e67206f636375727265642e5501204d756c7469706c6520656e747269657320666f7220612073696e676c65207061726120617265207065726d69747465642e204f72646572656420617363656e64696e6720627920626c6f636b206e756d6265722e48467574757265436f646555706772616465730001040551011004000c29012054686520626c6f636b206e756d6265722061742077686963682074686520706c616e6e656420636f6465206368616e676520697320657870656374656420666f72206120706172612e650120546865206368616e67652077696c6c206265206170706c696564206166746572207468652066697273742070617261626c6f636b20666f72207468697320494420696e636c75646564207768696368206578656375746573190120696e2074686520636f6e74657874206f6620612072656c617920636861696e20626c6f636b20776974682061206e756d626572203e3d206065787065637465645f6174602e38467574757265436f646548617368000104055101650104000c9c205468652061637475616c2066757475726520636f64652068617368206f66206120706172612e00e420436f72726573706f6e64696e6720636f64652063616e206265207265747269657665642077697468205b60436f6465427948617368605d2e5055706772616465476f41686561645369676e616c0001040551015508040024a10120546869732069732075736564206279207468652072656c61792d636861696e20746f20636f6d6d756e696361746520746f20612070617261636861696e206120676f2d6168656164207769746820696e2074686520757067726164652070726f6365647572652e00750120546869732076616c756520697320616273656e74207768656e20746865726520617265206e6f207570677261646573207363686564756c6564206f7220647572696e67207468652074696d65207468652072656c617920636861696e7d0120706572666f726d732074686520636865636b732e20497420697320736574206174207468652066697273742072656c61792d636861696e20626c6f636b207768656e2074686520636f72726573706f6e64696e672070617261636861696e65012063616e207377697463682069747320757067726164652066756e6374696f6e2e20417320736f6f6e206173207468652070617261636861696e277320626c6f636b20697320696e636c756465642c207468652076616c756558206765747320726573657420746f20604e6f6e65602e006501204e4f544520746861742074686973206669656c6420697320757365642062792070617261636861696e7320766961206d65726b6c652073746f726167652070726f6f66732c207468657265666f7265206368616e67696e67c42074686520666f726d61742077696c6c2072657175697265206d6967726174696f6e206f662070617261636861696e732e60557067726164655265737472696374696f6e5369676e616c0001040551015908040024690120546869732069732075736564206279207468652072656c61792d636861696e20746f20636f6d6d756e6963617465207468617420746865726520617265207265737472696374696f6e7320666f7220706572666f726d696e677c20616e207570677261646520666f7220746869732070617261636861696e2e0059012054686973206d617920626520612062656361757365207468652070617261636861696e20776169747320666f7220746865207570677261646520636f6f6c646f776e20746f206578706972652e20416e6f746865726d0120706f74656e7469616c207573652063617365206973207768656e2077652077616e7420746f20706572666f726d20736f6d65206d61696e74656e616e63652028737563682061732073746f72616765206d6967726174696f6e29e020776520636f756c6420726573747269637420757067726164657320746f206d616b65207468652070726f636573732073696d706c65722e006501204e4f544520746861742074686973206669656c6420697320757365642062792070617261636861696e7320766961206d65726b6c652073746f726167652070726f6f66732c207468657265666f7265206368616e67696e67c42074686520666f726d61742077696c6c2072657175697265206d6967726174696f6e206f662070617261636861696e732e4055706772616465436f6f6c646f776e730100510804000c510120546865206c697374206f662070617261636861696e73207468617420617265206177616974696e6720666f722074686569722075706772616465207265737472696374696f6e20746f20636f6f6c646f776e2e008c204f72646572656420617363656e64696e6720627920626c6f636b206e756d6265722e405570636f6d696e67557067726164657301005108040010590120546865206c697374206f66207570636f6d696e6720636f64652075706772616465732e2045616368206974656d20697320612070616972206f66207768696368207061726120706572666f726d73206120636f6465e8207570677261646520616e642061742077686963682072656c61792d636861696e20626c6f636b2069742069732065787065637465642061742e008c204f72646572656420617363656e64696e6720627920626c6f636b206e756d6265722e30416374696f6e73517565756501010405102d0804000415012054686520616374696f6e7320746f20706572666f726d20647572696e6720746865207374617274206f6620612073706563696669632073657373696f6e20696e6465782e505570636f6d696e67506172617347656e657369730001040551015d08040004a0205570636f6d696e6720706172617320696e7374616e74696174696f6e20617267756d656e74732e38436f64654279486173685265667301010406650110100000000004290120546865206e756d626572206f66207265666572656e6365206f6e207468652076616c69646174696f6e20636f646520696e205b60436f6465427948617368605d2073746f726167652e28436f64654279486173680001040665012505040010902056616c69646174696f6e20636f64652073746f7265642062792069747320686173682e00310120546869732073746f7261676520697320636f6e73697374656e742077697468205b60467574757265436f646548617368605d2c205b6043757272656e74436f646548617368605d20616e6448205b6050617374436f646548617368605d2e01510501750100016108382c496e697469616c697a6572012c496e697469616c697a65720838486173496e697469616c697a656400008004002021012057686574686572207468652070617261636861696e73206d6f64756c65732068617665206265656e20696e697469616c697a65642077697468696e207468697320626c6f636b2e0025012053656d616e746963616c6c7920612060626f6f6c602c2062757420746869732067756172616e746565732069742073686f756c64206e65766572206869742074686520747269652c6901206173207468697320697320636c656172656420696e20606f6e5f66696e616c697a656020616e64204672616d65206f7074696d697a657320604e6f6e65602076616c75657320746f20626520656d7074792076616c7565732e007d0120417320612060626f6f6c602c20607365742866616c7365296020616e64206072656d6f766528296020626f7468206c65616420746f20746865206e6578742060676574282960206265696e672066616c73652c20627574206f6e65206f667901207468656d2077726974657320746f20746865207472696520616e64206f6e6520646f6573206e6f742e205468697320636f6e667573696f6e206d616b657320604f7074696f6e3c28293e60206d6f7265207375697461626c6520666f7280207468652073656d616e74696373206f662074686973207661726961626c652e58427566666572656453657373696f6e4368616e6765730100650804001c59012042756666657265642073657373696f6e206368616e67657320616c6f6e6720776974682074686520626c6f636b206e756d62657220617420776869636820746865792073686f756c64206265206170706c6965642e005d01205479706963616c6c7920746869732077696c6c20626520656d707479206f72206f6e6520656c656d656e74206c6f6e672e2041706172742066726f6d20746861742074686973206974656d206e65766572206869747334207468652073746f726167652e00690120486f776576657220746869732069732061206056656360207265676172646c65737320746f2068616e646c6520766172696f757320656467652063617365732074686174206d6179206f636375722061742072756e74696d65c0207570677261646520626f756e646172696573206f7220696620676f7665726e616e636520696e74657276656e65732e015505000000390c446d70010c446d700854446f776e776172644d6573736167655175657565730101040551016d08040004d02054686520646f776e77617264206d657373616765732061646472657373656420666f722061206365727461696e20706172612e64446f776e776172644d65737361676551756575654865616473010104055101248000000000000000000000000000000000000000000000000000000000000000001c25012041206d617070696e6720746861742073746f7265732074686520646f776e77617264206d657373616765207175657565204d5143206865616420666f72206561636820706172612e00902045616368206c696e6b20696e207468697320636861696e20686173206120666f726d3a78206028707265765f686561642c20422c2048284d2929602c207768657265e8202d2060707265765f68656164603a206973207468652070726576696f757320686561642068617368206f72207a65726f206966206e6f6e652e2101202d206042603a206973207468652072656c61792d636861696e20626c6f636b206e756d62657220696e2077686963682061206d6573736167652077617320617070656e6465642ed4202d206048284d29603a206973207468652068617368206f6620746865206d657373616765206265696e6720617070656e6465642e0159050000003a0c556d70010c556d70184c52656c61794469737061746368517565756573010104055101c501040018710120546865206d657373616765732077616974696e6720746f2062652068616e646c6564206279207468652072656c61792d636861696e206f726967696e6174696e672066726f6d2061206365727461696e2070617261636861696e2e007901204e6f7465207468617420736f6d6520757077617264206d65737361676573206d696768742068617665206265656e20616c72656164792070726f6365737365642062792074686520696e636c7573696f6e206c6f6769632e20452e672e74206368616e6e656c206d616e6167656d656e74206d657373616765732e00a820546865206d65737361676573206172652070726f63657373656420696e204649464f206f726465722e5852656c61794469737061746368517565756553697a65010104055101742000000000000000002c45012053697a65206f6620746865206469737061746368207175657565732e204361636865732073697a6573206f66207468652071756575657320696e206052656c617944697370617463685175657565602e00f0204669727374206974656d20696e20746865207475706c652069732074686520636f756e74206f66206d6573736167657320616e64207365636f6e64e02069732074686520746f74616c206c656e6774682028696e20627974657329206f6620746865206d657373616765207061796c6f6164732e007901204e6f74652074686174207468697320697320616e20617578696c69617279206d617070696e673a206974277320706f737369626c6520746f2074656c6c2074686520627974652073697a6520616e6420746865206e756d626572206f667901206d65737361676573206f6e6c79206c6f6f6b696e67206174206052656c61794469737061746368517565756573602e2054686973206d617070696e6720697320736570617261746520746f2061766f69642074686520636f7374206f663d01206c6f6164696e67207468652077686f6c65206d657373616765207175657565206966206f6e6c792074686520746f74616c2073697a6520616e6420636f756e74206172652072657175697265642e002c20496e76617269616e743a4501202d2054686520736574206f66206b6579732073686f756c642065786163746c79206d617463682074686520736574206f66206b657973206f66206052656c61794469737061746368517565756573602e344e65656473446973706174636801002d08040014190120546865206f726465726564206c697374206f6620605061726149646073207468617420686176652061206052656c6179446973706174636851756575656020656e7472792e002c20496e76617269616e743a3501202d2054686520736574206f66206974656d732066726f6d207468697320766563746f722073686f756c642062652065786163746c792074686520736574206f6620746865206b65797320696ed82020206052656c617944697370617463685175657565736020616e64206052656c61794469737061746368517565756553697a65602e684e6578744469737061746368526f756e64537461727457697468000051010400147d012054686973206973207468652070617261207468617420676574732077696c6c20676574206469737061746368656420666972737420647572696e6720746865206e6578742075707761726420646973706174636861626c652071756575654420657865637574696f6e20726f756e642e002c20496e76617269616e743a0d01202d2049662060536f6d65287061726129602c207468656e20607061726160206d7573742062652070726573656e7420696e20604e656564734469737061746368602e284f7665727765696768740001040520750804000c050120546865206d657373616765732074686174206578636565646564206d617820696e646976696475616c206d65737361676520776569676874206275646765742e00d4205468657365206d65737361676573207374617920746865726520756e74696c206d616e75616c6c7920646973706174636865642e3c4f766572776569676874436f756e7401002020000000000000000008690120546865206e756d626572206f66206f766572776569676874206d657373616765732065766572207265636f7264656420696e20604f766572776569676874602028616e64207468757320746865206c6f7765737420667265652020696e646578292e015d05017901000179083b1048726d70011048726d70305c48726d704f70656e4368616e6e656c52657175657374730001040589017d08040018bc2054686520736574206f662070656e64696e672048524d50206f70656e206368616e6e656c2072657175657374732e00c02054686520736574206973206163636f6d70616e6965642062792061206c69737420666f7220697465726174696f6e2e002c20496e76617269616e743a3d01202d20546865726520617265206e6f206368616e6e656c7320746861742065786973747320696e206c69737420627574206e6f7420696e207468652073657420616e6420766963652076657273612e6c48726d704f70656e4368616e6e656c52657175657374734c697374010081080400006c48726d704f70656e4368616e6e656c52657175657374436f756e740101040551011010000000000c65012054686973206d617070696e6720747261636b7320686f77206d616e79206f70656e206368616e6e656c2072657175657374732061726520696e69746961746564206279206120676976656e2073656e64657220706172612e7d0120496e76617269616e743a206048726d704f70656e4368616e6e656c5265717565737473602073686f756c6420636f6e7461696e207468652073616d65206e756d626572206f66206974656d73207468617420686173206028582c205f2960e020617320746865206e756d626572206f66206048726d704f70656e4368616e6e656c52657175657374436f756e746020666f72206058602e7c48726d7041636365707465644368616e6e656c52657175657374436f756e740101040551011010000000000c71012054686973206d617070696e6720747261636b7320686f77206d616e79206f70656e206368616e6e656c2072657175657374732077657265206163636570746564206279206120676976656e20726563697069656e7420706172612e6d0120496e76617269616e743a206048726d704f70656e4368616e6e656c5265717565737473602073686f756c6420636f6e7461696e207468652073616d65206e756d626572206f66206974656d732060285f2c20582960207769746855012060636f6e6669726d6564602073657420746f20747275652c20617320746865206e756d626572206f66206048726d7041636365707465644368616e6e656c52657175657374436f756e746020666f72206058602e6048726d70436c6f73654368616e6e656c52657175657374730001040589018004001c9101204120736574206f662070656e64696e672048524d5020636c6f7365206368616e6e656c20726571756573747320746861742061726520676f696e6720746f20626520636c6f73656420647572696e67207468652073657373696f6e206368616e67652e0101205573656420666f7220636865636b696e67206966206120676976656e206368616e6e656c206973207265676973746572656420666f7220636c6f737572652e00c02054686520736574206973206163636f6d70616e6965642062792061206c69737420666f7220697465726174696f6e2e002c20496e76617269616e743a3d01202d20546865726520617265206e6f206368616e6e656c7320746861742065786973747320696e206c69737420627574206e6f7420696e207468652073657420616e6420766963652076657273612e7048726d70436c6f73654368616e6e656c52657175657374734c697374010081080400003848726d7057617465726d61726b730001040551011004000cb8205468652048524d502077617465726d61726b206173736f6369617465642077697468206561636820706172612e2c20496e76617269616e743a7901202d2065616368207061726120605060207573656420686572652061732061206b65792073686f756c642073617469736679206050617261733a3a69735f76616c69645f70617261285029602077697468696e20612073657373696f6e2e3048726d704368616e6e656c73000104058901850804000cb42048524d50206368616e6e656c2064617461206173736f6369617465642077697468206561636820706172612e2c20496e76617269616e743a7501202d2065616368207061727469636970616e7420696e20746865206368616e6e656c2073686f756c642073617469736679206050617261733a3a69735f76616c69645f70617261285029602077697468696e20612073657373696f6e2e6048726d70496e67726573734368616e6e656c73496e6465780101040551012d08040034590120496e67726573732f65677265737320696e646578657320616c6c6f7720746f2066696e6420616c6c207468652073656e6465727320616e642072656365697665727320676976656e20746865206f70706f736974652c20736964652e20492e652e0021012028612920696e677265737320696e64657820616c6c6f777320746f2066696e6420616c6c207468652073656e6465727320666f72206120676976656e20726563697069656e742e1d01202862292065677265737320696e64657820616c6c6f777320746f2066696e6420616c6c2074686520726563697069656e747320666f72206120676976656e2073656e6465722e003020496e76617269616e74733a8d01202d20666f72206561636820696e677265737320696e64657820656e74727920666f72206050602065616368206974656d2060496020696e2074686520696e6465782073686f756c642070726573656e7420696e206048726d704368616e6e656c73603c2020206173206028492c205029602e8901202d20666f7220656163682065677265737320696e64657820656e74727920666f72206050602065616368206974656d2060456020696e2074686520696e6465782073686f756c642070726573656e7420696e206048726d704368616e6e656c73603c2020206173206028502c204529602e0101202d2074686572652073686f756c64206265206e6f206f746865722064616e676c696e67206368616e6e656c7320696e206048726d704368616e6e656c73602e68202d2074686520766563746f72732061726520736f727465642e5c48726d704567726573734368616e6e656c73496e6465780101040551012d080400004c48726d704368616e6e656c436f6e74656e74730101040589018d08040008ac2053746f7261676520666f7220746865206d6573736167657320666f722065616368206368616e6e656c2e650120496e76617269616e743a2063616e6e6f74206265206e6f6e2d656d7074792069662074686520636f72726573706f6e64696e67206368616e6e656c20696e206048726d704368616e6e656c736020697320604e6f6e65602e4848726d704368616e6e656c44696765737473010104055101950804001cf4204d61696e7461696e732061206d617070696e6720746861742063616e206265207573656420746f20616e7377657220746865207175657374696f6e3a290120576861742070617261732073656e742061206d6573736167652061742074686520676976656e20626c6f636b206e756d62657220666f72206120676976656e2072656365697665722e3020496e76617269616e74733aa8202d2054686520696e6e657220605665633c5061726149643e60206973206e6576657220656d7074792ee8202d2054686520696e6e657220605665633c5061726149643e602063616e6e6f742073746f72652074776f2073616d652060506172614964602e8101202d20546865206f7574657220766563746f7220697320736f7274656420617363656e64696e6720627920626c6f636b206e756d62657220616e642063616e6e6f742073746f72652074776f206974656d732077697468207468652073616d6540202020626c6f636b206e756d6265722e01610501850100019d083c3c5061726153657373696f6e496e666f013c5061726153657373696f6e496e666f0c5041737369676e6d656e744b657973556e736166650100a10804000ca42041737369676e6d656e74206b65797320666f72207468652063757272656e742073657373696f6e2e6d01204e6f7465207468617420746869732041504920697320707269766174652064756520746f206974206265696e672070726f6e6520746f20276f66662d62792d6f6e65272061742073657373696f6e20626f756e6461726965732eac205768656e20696e20646f7562742c20757365206053657373696f6e73602041504920696e73746561642e544561726c6965737453746f72656453657373696f6e010010100000000004010120546865206561726c696573742073657373696f6e20666f722077686963682070726576696f75732073657373696f6e20696e666f2069732073746f7265642e2053657373696f6e730001040610a50804000ca42053657373696f6e20696e666f726d6174696f6e20696e206120726f6c6c696e672077696e646f772e35012053686f756c64206861766520616e20656e74727920696e2072616e676520604561726c6965737453746f72656453657373696f6e2e2e3d43757272656e7453657373696f6e496e646578602e750120446f6573206e6f74206861766520616e7920656e7472696573206265666f7265207468652073657373696f6e20696e64657820696e207468652066697273742073657373696f6e206368616e6765206e6f74696669636174696f6e2e000000003d2452656769737472617201245265676973747261720c2c50656e64696e67537761700001040551015101040004642050656e64696e672073776170206f7065726174696f6e732e145061726173000104055101ad08040010050120416d6f756e742068656c64206f6e206465706f73697420666f722065616368207061726120616e6420746865206f726967696e616c206465706f7369746f722e0091012054686520676976656e206163636f756e7420494420697320726573706f6e7369626c6520666f72207265676973746572696e672074686520636f646520616e6420696e697469616c206865616420646174612c20627574206d6179206f6e6c7920646f350120736f2069662069742069736e27742079657420726567697374657265642e2028416674657220746861742c206974277320757020746f20676f7665726e616e636520746f20646f20736f2e29384e65787446726565506172614964010051011000000000046020546865206e65787420667265652060506172614964602e016505018d01082c506172614465706f73697418400010a5d4e8000000000000000000000008b020546865206465706f73697420746f206265207061696420746f2072756e206120706172617468726561642e3d0120546869732073686f756c6420696e636c7564652074686520636f737420666f722073746f72696e67207468652067656e65736973206865616420616e642076616c69646174696f6e20636f64652e48446174614465706f7369745065724279746518408096980000000000000000000000000004c420546865206465706f73697420746f20626520706169642070657220627974652073746f726564206f6e20636861696e2e01b1084614536c6f74730114536c6f747304184c6561736573010104055101b508040040150120416d6f756e74732068656c64206f6e206465706f73697420666f7220656163682028706f737369626c792066757475726529206c65617365642070617261636861696e2e009901205468652061637475616c20616d6f756e74206c6f636b6564206f6e2069747320626568616c6620627920616e79206163636f756e7420617420616e792074696d6520697320746865206d6178696d756d206f6620746865207365636f6e642076616c756573f0206f6620746865206974656d7320696e2074686973206c6973742077686f73652066697273742076616c756520697320746865206163636f756e742e00610120546865206669727374206974656d20696e20746865206c6973742069732074686520616d6f756e74206c6f636b656420666f72207468652063757272656e74204c6561736520506572696f642e20466f6c6c6f77696e67b0206974656d732061726520666f72207468652073756273657175656e74206c6561736520706572696f64732e006101205468652064656661756c742076616c75652028616e20656d707479206c6973742920696d706c6965732074686174207468652070617261636861696e206e6f206c6f6e6765722065786973747320286f72206e65766572b42065786973746564292061732066617220617320746869732070616c6c657420697320636f6e6365726e65642e00510120496620612070617261636861696e20646f65736e2774206578697374202a7965742a20627574206973207363686564756c656420746f20657869737420696e20746865206675747572652c207468656e20697461012077696c6c206265206c6566742d7061646465642077697468206f6e65206f72206d6f726520604e6f6e65607320746f2064656e6f74652074686520666163742074686174206e6f7468696e672069732068656c64206f6e5d01206465706f73697420666f7220746865206e6f6e2d6578697374656e7420636861696e2063757272656e746c792c206275742069732068656c6420617420736f6d6520706f696e7420696e20746865206675747572652e00dc20497420697320696c6c6567616c20666f72206120604e6f6e65602076616c756520746f20747261696c20696e20746865206c6973742e016905019101082c4c65617365506572696f6410100075120004dc20546865206e756d626572206f6620626c6f636b73206f76657220776869636820612073696e676c6520706572696f64206c617374732e2c4c656173654f6666736574101000100e0004d420546865206e756d626572206f6620626c6f636b7320746f206f66667365742065616368206c6561736520706572696f642062792e01bd08472041756374696f6e73012041756374696f6e73103841756374696f6e436f756e7465720100101000000000048c204e756d626572206f662061756374696f6e73207374617274656420736f206661722e2c41756374696f6e496e666f000074040014f820496e666f726d6174696f6e2072656c6174696e6720746f207468652063757272656e742061756374696f6e2c206966207468657265206973206f6e652e00450120546865206669727374206974656d20696e20746865207475706c6520697320746865206c6561736520706572696f6420696e646578207468617420746865206669727374206f662074686520666f7572510120636f6e746967756f7573206c6561736520706572696f6473206f6e2061756374696f6e20697320666f722e20546865207365636f6e642069732074686520626c6f636b206e756d626572207768656e207468655d012061756374696f6e2077696c6c2022626567696e20746f20656e64222c20692e652e2074686520666972737420626c6f636b206f662074686520456e64696e6720506572696f64206f66207468652061756374696f6e2e3c5265736572766564416d6f756e747300010405c10818040008310120416d6f756e74732063757272656e746c7920726573657276656420696e20746865206163636f756e7473206f662074686520626964646572732063757272656e746c792077696e6e696e673820287375622d2972616e6765732e1c57696e6e696e670001040510c50804000c6101205468652077696e6e696e67206269647320666f722065616368206f66207468652031302072616e67657320617420656163682073616d706c6520696e207468652066696e616c20456e64696e6720506572696f64206f664901207468652063757272656e742061756374696f6e2e20546865206d61702773206b65792069732074686520302d626173656420696e64657820696e746f207468652053616d706c652053697a652e205468651d012066697273742073616d706c65206f662074686520656e64696e6720706572696f6420697320303b20746865206c617374206973206053616d706c652053697a65202d2031602e016d050195011030456e64696e67506572696f64101040190100041d0120546865206e756d626572206f6620626c6f636b73206f76657220776869636820616e2061756374696f6e206d617920626520726574726f6163746976656c7920656e6465642e3053616d706c654c656e6774681010140000000cf020546865206c656e677468206f6620656163682073616d706c6520746f2074616b6520647572696e672074686520656e64696e6720706572696f642e00d42060456e64696e67506572696f6460202f206053616d706c654c656e67746860203d20546f74616c2023206f662053616d706c657338536c6f7452616e6765436f756e74101024000000004c4c65617365506572696f6473506572536c6f741010080000000001d108482443726f77646c6f616e012443726f77646c6f616e101446756e6473000104055101d5080400046820496e666f206f6e20616c6c206f66207468652066756e64732e204e6577526169736501002d080400085501205468652066756e64732074686174206861766520686164206164646974696f6e616c20636f6e747269627574696f6e7320647572696e6720746865206c61737420626c6f636b2e20546869732069732075736564150120696e206f7264657220746f2064657465726d696e652077686963682066756e64732073686f756c64207375626d6974206e6577206f72207570646174656420626964732e30456e64696e6773436f756e74010010100000000004290120546865206e756d626572206f662061756374696f6e732074686174206861766520656e746572656420696e746f20746865697220656e64696e6720706572696f6420736f206661722e344e65787454726965496e646578010010100000000004a820547261636b657220666f7220746865206e65787420617661696c61626c65207472696520696e6465780175050199010c2050616c6c6574496425072070792f6366756e64047101206050616c6c657449646020666f72207468652063726f77646c6f616e2070616c6c65742e20416e20617070726f7072696174652076616c756520636f756c64206265206050616c6c65744964282a622270792f6366756e642229603c4d696e436f6e747269627574696f6e184000743ba40b0000000000000000000000086d0120546865206d696e696d756d20616d6f756e742074686174206d617920626520636f6e747269627574656420696e746f20612063726f77646c6f616e2e2053686f756c6420616c6d6f7374206365727461696e6c7920626520617470206c6561737420604578697374656e7469616c4465706f736974602e3c52656d6f76654b6579734c696d69741010e803000004e4204d6178206e756d626572206f662073746f72616765206b65797320746f2072656d6f7665207065722065787472696e7369632063616c6c2e01dd0849e108042040436865636b5370656356657273696f6ee9081038436865636b547856657273696f6eed081030436865636b47656e65736973f1082438436865636b4d6f7274616c697479f5082428436865636b4e6f6e6365fd08802c436865636b576569676874010980604368617267655472616e73616374696f6e5061796d656e740509804850726576616c6964617465417474657374730909800d09"; - #endregion - - private static MetadataV14? _referenceV14Metadata = null; - public static MetadataV14 ReferenceV14Metadata - { - get - { - if (_referenceV14Metadata is null) - _referenceV14Metadata = new MetadataV14(metadataV14_9110); - - return _referenceV14Metadata; - } - } - - internal static bool? TryFindModuleInV14(string moduleName) - { - return null; - } - - public static TypeDefPrimitive? TryConvertNameToPrimitive(string name) - { - - return name.ToLower() switch - { - "bool" => TypeDefPrimitive.Bool, - "u8" => TypeDefPrimitive.U8, - "u16" => TypeDefPrimitive.U16, - "u32" => TypeDefPrimitive.U32, - "u64" => TypeDefPrimitive.U64, - "u128" => TypeDefPrimitive.U128, - "u256" => TypeDefPrimitive.U256, - "i8" => TypeDefPrimitive.I8, - "i16" => TypeDefPrimitive.I16, - "i32" => TypeDefPrimitive.I32, - "i64" => TypeDefPrimitive.I64, - "i128" => TypeDefPrimitive.I128, - "i256" => TypeDefPrimitive.I256, - "char" => TypeDefPrimitive.Char, - "str" => TypeDefPrimitive.Str, - _ => null - }; - } - - public static (TypeDefEnum, string)? TryConvertNameToComposite(string name) - { - return null; - } - - public static (TypeDefEnum, string)? TryConvertNameToTuple(string name) - { - return null; - } - - public static (TypeDefEnum, string)? TryConvertNameToArray(string name) - { - return null; - } - - public static (TypeDefEnum, string)? TryConvertNameToSequence(string name) - { - var regex = new Regex(@"^(\w+)<([^>]+)>$", RegexOptions.IgnoreCase, TimeSpan.FromSeconds(1)); - - var match = regex.Match(name); - if (match.Success) - { - // Capture the base name - var baseName = match.Groups[1].Value; - - if (!baseName.Equals("Vec", StringComparison.CurrentCultureIgnoreCase)) - { - return null; - } - - // Capture the generic parameters as a single string - var genericParamsString = match.Groups[2].Value; - - // Split the generic parameters string into individual parameters - var genericParams = genericParamsString.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries) - .Select(p => p.Trim()) - .ToList(); - - // A BaseVec should only have one generic parameter - if(genericParams.Count != 1) - { - throw new InvalidOperationException($"TypeDefSequence found but found {genericParams.Count} generic parameters while should be only one"); - } - - return (TypeDefEnum.Sequence, genericParams[0]); - } - - return null; - } - } -} diff --git a/Substrate.NET.Metadata.Conversion/Substrate.NET.Metadata.Conversion.csproj b/Substrate.NET.Metadata.Conversion/Substrate.NET.Metadata.Conversion.csproj deleted file mode 100644 index d0f668e..0000000 --- a/Substrate.NET.Metadata.Conversion/Substrate.NET.Metadata.Conversion.csproj +++ /dev/null @@ -1,13 +0,0 @@ - - - - net8.0 - enable - enable - - - - - - - From c07aa2f4969cb7d7974f2bee5aa18c776447e950 Mon Sep 17 00:00:00 2001 From: Apolixit Date: Sun, 15 Sep 2024 11:43:34 +0200 Subject: [PATCH 13/15] Light fix post merge --- .../MetadataServiceV15Test.cs | 5 +++-- .../Substrate.NET.Metadata.Tests.csproj | 5 ++++- Substrate.NET.Metadata/Substrate.NET.Metadata.csproj | 2 +- Substrate.NET.Metadata/V10/RuntimeMetadataV10.cs | 12 +----------- Substrate.NET.Metadata/V15/RuntimeMetadataV15.cs | 9 ++++++--- 5 files changed, 15 insertions(+), 18 deletions(-) diff --git a/Substrate.NET.Metadata.Tests/MetadataServiceV15Test.cs b/Substrate.NET.Metadata.Tests/MetadataServiceV15Test.cs index f71699d..763685f 100644 --- a/Substrate.NET.Metadata.Tests/MetadataServiceV15Test.cs +++ b/Substrate.NET.Metadata.Tests/MetadataServiceV15Test.cs @@ -2,6 +2,7 @@ using Substrate.NET.Metadata.Exceptions; using Substrate.NET.Metadata.Service; using Substrate.NET.Metadata.V14; +using Substrate.NET.Metadata.V15; namespace Substrate.NET.Metadata.Tests { @@ -12,14 +13,14 @@ public void MetadataV15_WhenInstanciate_ShouldSucceed() { var metadataHex = readMetadataFromFile("V15\\MetadataV15_FromPolkadotJs"); - Assert.That(_metadataService.GetMetadataVersion(metadataHex), Is.EqualTo(MetadataVersion.V15)); + Assert.That(MetadataUtils.GetMetadataVersion(metadataHex), Is.EqualTo(MetadataVersion.V15)); var res = new MetadataV15(metadataHex); Assert.That(res, Is.Not.Null); Assert.That(res.Version, Is.EqualTo(MetadataVersion.V15)); - Assert.That(res.RuntimeMetadataData.Lookup.Value.Length, Is.GreaterThan(0)); + Assert.That(res.RuntimeMetadataData.Types.Value.Length, Is.GreaterThan(0)); Assert.That(res.RuntimeMetadataData.Modules.Value.Length, Is.GreaterThan(0)); Assert.That((int)res.RuntimeMetadataData.OuterEnums.CallType.Value, Is.GreaterThanOrEqualTo(0)); diff --git a/Substrate.NET.Metadata.Tests/Substrate.NET.Metadata.Tests.csproj b/Substrate.NET.Metadata.Tests/Substrate.NET.Metadata.Tests.csproj index 9b94469..5f38b11 100644 --- a/Substrate.NET.Metadata.Tests/Substrate.NET.Metadata.Tests.csproj +++ b/Substrate.NET.Metadata.Tests/Substrate.NET.Metadata.Tests.csproj @@ -1,7 +1,7 @@ - net6.0 + net8.0 enable enable 11 @@ -115,6 +115,9 @@ PreserveNewest + + PreserveNewest + PreserveNewest diff --git a/Substrate.NET.Metadata/Substrate.NET.Metadata.csproj b/Substrate.NET.Metadata/Substrate.NET.Metadata.csproj index a644682..43848d3 100644 --- a/Substrate.NET.Metadata/Substrate.NET.Metadata.csproj +++ b/Substrate.NET.Metadata/Substrate.NET.Metadata.csproj @@ -1,7 +1,7 @@  - net6.0 + net8.0 enable enable diff --git a/Substrate.NET.Metadata/V10/RuntimeMetadataV10.cs b/Substrate.NET.Metadata/V10/RuntimeMetadataV10.cs index 37bbf9a..dc5caa1 100644 --- a/Substrate.NET.Metadata/V10/RuntimeMetadataV10.cs +++ b/Substrate.NET.Metadata/V10/RuntimeMetadataV10.cs @@ -1,16 +1,6 @@ -using Substrate.NET.Metadata.V9; -using Substrate.NetApi.Model.Meta; -using Substrate.NetApi.Model.Types.Base; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using static System.Runtime.InteropServices.JavaScript.JSType; -using System.Xml.Linq; +using Substrate.NetApi.Model.Types.Base; using Substrate.NET.Metadata.Conversion.Internal; using Substrate.NET.Metadata.V14; -using Substrate.NetApi.Model.Extrinsics; using Substrate.NET.Metadata.Base.Portable; namespace Substrate.NET.Metadata.V10 diff --git a/Substrate.NET.Metadata/V15/RuntimeMetadataV15.cs b/Substrate.NET.Metadata/V15/RuntimeMetadataV15.cs index df5c912..9b50b50 100644 --- a/Substrate.NET.Metadata/V15/RuntimeMetadataV15.cs +++ b/Substrate.NET.Metadata/V15/RuntimeMetadataV15.cs @@ -8,14 +8,14 @@ public class RuntimeMetadataV15 : BaseType { public override byte[] Encode() { -var result = new List(); + var result = new List(); result.AddRange(Types.Encode()); result.AddRange(Modules.Encode()); result.AddRange(Extrinsic.Encode()); result.AddRange(TypeId.Encode()); result.AddRange(Apis.Encode()); - result.AddRange(OuterEnums.Encode()); - result.AddRange(Custom.Encode()); + result.AddRange(OuterEnums.Encode()); + result.AddRange(Custom.Encode()); return result.ToArray(); } @@ -55,6 +55,9 @@ public override void Decode(byte[] byteArray, ref int p) public BaseVec Apis { get; private set; } = default!; + public OuterEnums15 OuterEnums { get; private set; } = default!; + public CustomMetadata15 Custom { get; private set; } = default!; + public TType TypeId { get; private set; } = default!; } } From f70b10ab1913fc21f749c0315e1636ddb02668cc Mon Sep 17 00:00:00 2001 From: Apolixit Date: Sun, 15 Sep 2024 15:35:51 +0200 Subject: [PATCH 14/15] Add Encode() unit test + check if well implemented --- .../ImplementationCheckTests.cs | 60 +++++++++++++++++++ .../MetadataServiceV10Test.cs | 8 +++ .../MetadataServiceV11Test.cs | 9 +++ .../MetadataServiceV12Test.cs | 8 +++ .../MetadataServiceV13Test.cs | 20 +++++++ .../MetadataServiceV14Test.cs | 8 +++ .../MetadataServiceV15Test.cs | 15 ++++- .../MetadataServiceV9Test.cs | 9 +++ .../Internal/ConversionBuilderTree.cs | 6 +- .../V13/ModuleMetadataV13.cs | 2 - .../V13/StorageEntryMetadataV13.cs | 10 ++-- Substrate.NET.Metadata/V15/MetadataV15.cs | 2 + .../V9/StorageEntryMetadataV9.cs | 15 ++--- 13 files changed, 149 insertions(+), 23 deletions(-) create mode 100644 Substrate.NET.Metadata.Tests/ImplementationCheckTests.cs diff --git a/Substrate.NET.Metadata.Tests/ImplementationCheckTests.cs b/Substrate.NET.Metadata.Tests/ImplementationCheckTests.cs new file mode 100644 index 0000000..31e346c --- /dev/null +++ b/Substrate.NET.Metadata.Tests/ImplementationCheckTests.cs @@ -0,0 +1,60 @@ +using Substrate.NetApi.Model.Types.Base; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; + +namespace Substrate.NET.Metadata.Tests +{ + internal class ImplementationCheckTests + { + [Test] + public void AllBaseTypeSubclasses_ShouldImplementEncode_ReturnsByteArray() + { + // Load the assembly containing Substrate.NET.Metadata classes + Assembly assembly = Assembly.Load("Substrate.NET.Metadata"); + + // Get all types that inherit from BaseType + var baseType = typeof(BaseType); + var types = assembly.GetTypes() + .Where(t => baseType.IsAssignableFrom(t) && t.IsClass && !t.IsAbstract); + + foreach (var type in types) + { + // Instantiate the class using its parameterless constructor (if available) + object instance = null; + try + { + instance = Activator.CreateInstance(type); + } + catch (Exception ex) + { + Assert.Fail($"Failed to instantiate type {type.Name}: {ex.Message}"); + } + + // Ensure the class has the Encode method + MethodInfo encodeMethod = type.GetMethod("Encode"); + Assert.That(encodeMethod, Is.Not.Null, $"Class {type.Name} does not implement the Encode() method."); + + try + { + _ = (byte[])encodeMethod.Invoke(instance, null); + } + catch (TargetInvocationException ex) when (ex.InnerException is NotImplementedException) + { + Assert.Fail($"Class {type.Name} throws NotImplementedException in Encode() method."); + } + catch (TargetInvocationException ex) when (ex.InnerException is NullReferenceException) + { + Assert.Pass($"Class {type.Name} throws NullReferenceException in Encode() method. This is fine"); + } + catch (Exception ex) + { + Assert.Fail($"An unexpected exception occurred when invoking Encode() on {type.Name}: {ex.Message}"); + } + } + } + } +} diff --git a/Substrate.NET.Metadata.Tests/MetadataServiceV10Test.cs b/Substrate.NET.Metadata.Tests/MetadataServiceV10Test.cs index f3508ab..8be6fea 100644 --- a/Substrate.NET.Metadata.Tests/MetadataServiceV10Test.cs +++ b/Substrate.NET.Metadata.Tests/MetadataServiceV10Test.cs @@ -12,6 +12,14 @@ namespace Substrate.NET.Metadata.Tests { public class MetadataServiceV10Test : MetadataBaseTest { + [Test] + public void MetadataV10_Encode_ShouldSucceed() + { + var metadataSource = readMetadataFromFile("V10\\MetadataV10_Kusama_1032"); + + Assert.That(new MetadataV10(metadataSource).Encode(), Is.Not.Null); + } + [Test] public void MetadataV10_SpecVersionCompare_V1032_And_V1039_ShouldSucceed() { diff --git a/Substrate.NET.Metadata.Tests/MetadataServiceV11Test.cs b/Substrate.NET.Metadata.Tests/MetadataServiceV11Test.cs index 8d3bf88..2abfb6c 100644 --- a/Substrate.NET.Metadata.Tests/MetadataServiceV11Test.cs +++ b/Substrate.NET.Metadata.Tests/MetadataServiceV11Test.cs @@ -1,11 +1,20 @@ using Substrate.NET.Metadata.Base; using Substrate.NET.Metadata.Service; using Substrate.NET.Metadata.V11; +using Substrate.NET.Metadata.V9; namespace Substrate.NET.Metadata.Tests { public class MetadataServiceV11Test : MetadataBaseTest { + [Test] + public void MetadataV11_Encode_ShouldSucceed() + { + var metadataSource = readMetadataFromFile("V11\\MetadataV11_0"); + + Assert.That(new MetadataV11(metadataSource).Encode(), Is.Not.Null); + } + [Test] public void MetadataV11_SpecVersionCompare_V0_And_V1_ShouldSucceed() { diff --git a/Substrate.NET.Metadata.Tests/MetadataServiceV12Test.cs b/Substrate.NET.Metadata.Tests/MetadataServiceV12Test.cs index 9b09e14..aeabdd1 100644 --- a/Substrate.NET.Metadata.Tests/MetadataServiceV12Test.cs +++ b/Substrate.NET.Metadata.Tests/MetadataServiceV12Test.cs @@ -6,6 +6,14 @@ namespace Substrate.NET.Metadata.Tests { public class MetadataServiceV12Test : MetadataBaseTest { + [Test] + public void MetadataV12_Encode_ShouldSucceed() + { + var metadataSource = readMetadataFromFile("V12\\MetadataV12_27"); + + Assert.That(new MetadataV12(metadataSource).Encode(), Is.Not.Null); + } + [Test] public void MetadataV12_SpecVersionCompare_V27_And_V28_ShouldSucceed() { diff --git a/Substrate.NET.Metadata.Tests/MetadataServiceV13Test.cs b/Substrate.NET.Metadata.Tests/MetadataServiceV13Test.cs index 79b2dfe..68c1ba1 100644 --- a/Substrate.NET.Metadata.Tests/MetadataServiceV13Test.cs +++ b/Substrate.NET.Metadata.Tests/MetadataServiceV13Test.cs @@ -1,4 +1,5 @@ using Substrate.NET.Metadata.Base; +using Substrate.NET.Metadata.Conversion; using Substrate.NET.Metadata.Service; using Substrate.NET.Metadata.V13; @@ -6,6 +7,14 @@ namespace Substrate.NET.Metadata.Tests { public class MetadataServiceV13Test : MetadataBaseTest { + [Test] + public void MetadataV13_Encode_ShouldSucceed() + { + var metadataSource = readMetadataFromFile("V13\\MetadataV13_9080"); + + Assert.That(new MetadataV13(metadataSource).Encode(), Is.Not.Null); + } + [Test] public void MetadataV13_SpecVersionCompare_V9080_And_V9090_ShouldSucceed() { @@ -46,5 +55,16 @@ public void MetadataV13_V9080_And_V9090_PalletHasChanged_ShouldSucceed() Assert.That(MetadataUtils.HasPalletChangedVersionBetween("Balances", metadataSource, metadataDestination)); Assert.That(MetadataUtils.HasPalletChangedVersionBetween("Babe", metadataSource, metadataDestination), Is.False); } + + [Test] + public void StorageEntryMetadataV13_WhenNMap_ShouldThrowException() + { + var storageEntry = new StorageEntryMetadataV13(); + storageEntry.StorageType = new NetApi.Model.Types.Base.BaseEnumExt(); + + storageEntry.StorageType.Value = StorageType.Type.NMap; + + Assert.Throws(() => storageEntry.ToStorageEntryMetadataV14(new Conversion.Internal.ConversionBuilder(new List()))); + } } } diff --git a/Substrate.NET.Metadata.Tests/MetadataServiceV14Test.cs b/Substrate.NET.Metadata.Tests/MetadataServiceV14Test.cs index ef146b2..0eaee9d 100644 --- a/Substrate.NET.Metadata.Tests/MetadataServiceV14Test.cs +++ b/Substrate.NET.Metadata.Tests/MetadataServiceV14Test.cs @@ -6,6 +6,14 @@ namespace Substrate.NET.Metadata.Tests { public class MetadataServiceV14Test : MetadataBaseTest { + [Test] + public void MetadataV14_Encode_ShouldSucceed() + { + var metadataSource = readMetadataFromFile("V14\\MetadataV14_9110"); + + Assert.That(new MetadataV14(metadataSource).Encode(), Is.Not.Null); + } + [Test] public void MetadataV14_SpecVersionCompare_V9110_And_V9122_ShouldSucceed() { diff --git a/Substrate.NET.Metadata.Tests/MetadataServiceV15Test.cs b/Substrate.NET.Metadata.Tests/MetadataServiceV15Test.cs index 763685f..ae1ad2a 100644 --- a/Substrate.NET.Metadata.Tests/MetadataServiceV15Test.cs +++ b/Substrate.NET.Metadata.Tests/MetadataServiceV15Test.cs @@ -8,6 +8,15 @@ namespace Substrate.NET.Metadata.Tests { public class MetadataServiceV15Test : MetadataBaseTest { + [Test] + public void MetadataV15_Encode_ShouldSucceed() + { + var metadataSource = readMetadataFromFile("V15\\MetadataV15_FromPolkadotJs"); + + Assert.That(new MetadataV15(metadataSource).Encode(), Is.Not.Null); + Assert.That(new MetadataV15(metadataSource).Encode(), Is.Not.Null); + } + [Test] public void MetadataV15_WhenInstanciate_ShouldSucceed() { @@ -20,14 +29,14 @@ public void MetadataV15_WhenInstanciate_ShouldSucceed() Assert.That(res, Is.Not.Null); Assert.That(res.Version, Is.EqualTo(MetadataVersion.V15)); - Assert.That(res.RuntimeMetadataData.Types.Value.Length, Is.GreaterThan(0)); - Assert.That(res.RuntimeMetadataData.Modules.Value.Length, Is.GreaterThan(0)); + Assert.That(res.RuntimeMetadataData.Types.Value, Has.Length.GreaterThan(0)); + Assert.That(res.RuntimeMetadataData.Modules.Value, Has.Length.GreaterThan(0)); Assert.That((int)res.RuntimeMetadataData.OuterEnums.CallType.Value, Is.GreaterThanOrEqualTo(0)); Assert.That((int)res.RuntimeMetadataData.OuterEnums.ErrorType.Value, Is.GreaterThanOrEqualTo(0)); Assert.That((int)res.RuntimeMetadataData.OuterEnums.EventType.Value, Is.GreaterThanOrEqualTo(0)); - Assert.That(res.RuntimeMetadataData.Apis.Value.Length, Is.GreaterThan(0)); + Assert.That(res.RuntimeMetadataData.Apis.Value, Has.Length.GreaterThan(0)); Assert.That(res.RuntimeMetadataData.Custom.Map.Value, Is.Not.Null); } diff --git a/Substrate.NET.Metadata.Tests/MetadataServiceV9Test.cs b/Substrate.NET.Metadata.Tests/MetadataServiceV9Test.cs index 653e46d..ac017ab 100644 --- a/Substrate.NET.Metadata.Tests/MetadataServiceV9Test.cs +++ b/Substrate.NET.Metadata.Tests/MetadataServiceV9Test.cs @@ -1,5 +1,6 @@ using Substrate.NET.Metadata.Base; using Substrate.NET.Metadata.Service; +using Substrate.NET.Metadata.V10; using Substrate.NET.Metadata.V11; using Substrate.NET.Metadata.V9; using System; @@ -12,6 +13,14 @@ namespace Substrate.NET.Metadata.Tests { public class MetadataServiceV9Test : MetadataBaseTest { + [Test] + public void MetadataV9_Encode_ShouldSucceed() + { + var metadataSource = readMetadataFromFile("V9\\MetadataV9_Kusama_1020"); + + Assert.That(new MetadataV9(metadataSource).Encode(), Is.Not.Null); + } + [Test] public void MetadataV9_SpecVersionCompare_V1020_And_V1022_ShouldSucceed() { diff --git a/Substrate.NET.Metadata/Conversion/Internal/ConversionBuilderTree.cs b/Substrate.NET.Metadata/Conversion/Internal/ConversionBuilderTree.cs index 480535e..1e71398 100644 --- a/Substrate.NET.Metadata/Conversion/Internal/ConversionBuilderTree.cs +++ b/Substrate.NET.Metadata/Conversion/Internal/ConversionBuilderTree.cs @@ -140,7 +140,7 @@ internal static NodeBuilderType Build(NodeBuilderType nodeBuilderType) internal static NodeBuilderTypeArray? ExtractArray(NodeBuilderType node) { string pattern = @"\[(.*);\s*(\d+)\]"; - Match match = Regex.Match(node.Adapted, pattern); + Match match = Regex.Match(node.Adapted, pattern, RegexOptions.None, TimeSpan.FromMilliseconds(100)); if (match.Success) { @@ -162,7 +162,7 @@ internal static NodeBuilderType Build(NodeBuilderType nodeBuilderType) internal static NodeBuilderTypeTuple? ExtractTuple(NodeBuilderType node) { string pattern = @"\((.*)\)$"; - Match match = Regex.Match(node.Adapted, pattern); + Match match = Regex.Match(node.Adapted, pattern, RegexOptions.None, TimeSpan.FromMilliseconds(100)); if (match.Success) { @@ -207,7 +207,7 @@ internal static NodeBuilderType Build(NodeBuilderType nodeBuilderType) internal static NodeBuilderType? ExtractGeneric(NodeBuilderType node) { string pattern = @"([a-zA-Z:]*|)<(.*)>$"; - Match match = Regex.Match(node.Adapted, pattern); + Match match = Regex.Match(node.Adapted, pattern, RegexOptions.None, TimeSpan.FromMilliseconds(100)); if (match.Success) { diff --git a/Substrate.NET.Metadata/V13/ModuleMetadataV13.cs b/Substrate.NET.Metadata/V13/ModuleMetadataV13.cs index 76e56e3..8f4a02d 100644 --- a/Substrate.NET.Metadata/V13/ModuleMetadataV13.cs +++ b/Substrate.NET.Metadata/V13/ModuleMetadataV13.cs @@ -79,8 +79,6 @@ public MetadataDifferentialModulesV13 ToDifferentialModules(CompareStatus status internal ModuleMetadataV14 ToModuleMetadataV14(ConversionBuilder conversionBuilder, int index) { - //if (Index.Value != index) throw new InvalidOperationException($"Incoherent module index. Expected: {Index.Value} but got: {index} for module: {Name.Value}"); - var result = new ModuleMetadataV14(); result.Index = new U8((byte)index); result.Name = Name; diff --git a/Substrate.NET.Metadata/V13/StorageEntryMetadataV13.cs b/Substrate.NET.Metadata/V13/StorageEntryMetadataV13.cs index 9c54687..38cb95a 100644 --- a/Substrate.NET.Metadata/V13/StorageEntryMetadataV13.cs +++ b/Substrate.NET.Metadata/V13/StorageEntryMetadataV13.cs @@ -44,11 +44,11 @@ public override void Decode(byte[] byteArray, ref int p) TypeSize = p - start; } - public Str Name { get; private set; } = default!; - public BaseEnum StorageModifier { get; private set; } = default!; - public BaseEnumExt StorageType { get; private set; } = default!; - public ByteGetter StorageDefault { get; private set; } = default!; - public BaseVec Documentation { get; private set; } = default!; + public Str Name { get; internal set; } = default!; + public BaseEnum StorageModifier { get; internal set; } = default!; + public BaseEnumExt StorageType { get; internal set; } = default!; + public ByteGetter StorageDefault { get; internal set; } = default!; + public BaseVec Documentation { get; internal set; } = default!; internal StorageEntryMetadataV14 ToStorageEntryMetadataV14(ConversionBuilder conversionBuilder) { diff --git a/Substrate.NET.Metadata/V15/MetadataV15.cs b/Substrate.NET.Metadata/V15/MetadataV15.cs index cc06f8a..18937b6 100644 --- a/Substrate.NET.Metadata/V15/MetadataV15.cs +++ b/Substrate.NET.Metadata/V15/MetadataV15.cs @@ -5,9 +5,11 @@ using System.Linq; using System.Text; using System.Threading.Tasks; +using System.Diagnostics.CodeAnalysis; namespace Substrate.NET.Metadata.V15 { + [ExcludeFromCodeCoverage] // Exclude temporary because of incomplete implementation and lack of informations public class MetadataV15 : BaseMetadata { public MetadataV15() : base() diff --git a/Substrate.NET.Metadata/V9/StorageEntryMetadataV9.cs b/Substrate.NET.Metadata/V9/StorageEntryMetadataV9.cs index 3798478..920c05a 100644 --- a/Substrate.NET.Metadata/V9/StorageEntryMetadataV9.cs +++ b/Substrate.NET.Metadata/V9/StorageEntryMetadataV9.cs @@ -44,11 +44,11 @@ public override void Decode(byte[] byteArray, ref int p) TypeSize = p - start; } - public Str Name { get; private set; } = default!; - public BaseEnum StorageModifier { get; private set; } = default!; - public BaseEnumExt StorageType { get; private set; } = default!; - public ByteGetter StorageDefault { get; private set; } = default!; - public BaseVec Documentation { get; private set; } = default!; + public Str Name { get; internal set; } = default!; + public BaseEnum StorageModifier { get; internal set; } = default!; + public BaseEnumExt StorageType { get; internal set; } = default!; + public ByteGetter StorageDefault { get; internal set; } = default!; + public BaseVec Documentation { get; internal set; } = default!; internal StorageEntryMetadataV14 ToStorageEntryMetadataV14(ConversionBuilder conversionBuilder) { @@ -72,11 +72,6 @@ internal StorageEntryMetadataV14 ToStorageEntryMetadataV14(ConversionBuilder con mapStorageType.Create(Metadata.StorageType.Type.Map, map.ToStorageEntryTypeMapV14(conversionBuilder)); } - else - { - // NMap exists but should never happened - throw new MetadataConversionException($"Error while converting StorageEntryMetadataV11. Received storage type {StorageType.Value} while should never happened"); - } var storageEntry = new StorageEntryMetadataV14( name: Name, From 2669f8c0698a5e33c79a9e33870da027f9c8f03d Mon Sep 17 00:00:00 2001 From: Apolixit Date: Sun, 15 Sep 2024 16:02:50 +0200 Subject: [PATCH 15/15] Small unit tests + light refacto + bump version --- .../Conversion/ConversionUtilsTests.cs | 67 +++++++++++++++++++ .../ImplementationCheckTests.cs | 4 +- .../MetadataServiceV13Test.cs | 2 +- .../MetadataServiceV14Test.cs | 2 +- .../Base/StorageEntryTypeNMap.cs | 8 ++- .../Conversion/Internal/ConversionBuilder.cs | 13 +--- .../Internal/ConversionBuilderTree.cs | 9 --- .../Conversion/Internal/StorageClass.cs | 45 ------------- .../Substrate.NET.Metadata.csproj | 2 +- .../V13/ModuleMetadataV13.cs | 14 ++-- 10 files changed, 86 insertions(+), 80 deletions(-) create mode 100644 Substrate.NET.Metadata.Tests/Conversion/ConversionUtilsTests.cs diff --git a/Substrate.NET.Metadata.Tests/Conversion/ConversionUtilsTests.cs b/Substrate.NET.Metadata.Tests/Conversion/ConversionUtilsTests.cs new file mode 100644 index 0000000..78091eb --- /dev/null +++ b/Substrate.NET.Metadata.Tests/Conversion/ConversionUtilsTests.cs @@ -0,0 +1,67 @@ +using Substrate.NET.Metadata.Conversion.Internal; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Substrate.NET.Metadata.Tests.Conversion +{ + internal class ConversionUtilsTests + { + [Test] + public void EndsWithArray_ShouldReturnTrue() + { + var array1 = new[] { 1, 2, 3, 4, 5 }; + var array2 = new[] { 4, 5 }; + + var result = ConversionUtils.EndsWithArray(array1, array2); + + Assert.That(result); + } + + [Test] + public void EndsWithArray_ShouldReturnFalse() + { + var array1 = new[] { 1, 2, 3, 4, 5 }; + var array2 = new[] { 4, 6 }; + + var result = ConversionUtils.EndsWithArray(array1, array2); + + Assert.That(result, Is.False); + } + + [Test] + public void AreArraysIdentical_WhenEquals_ShouldReturnTrue() + { + var array1 = new[] { 1, 2, 3, 4, 5 }; + var array2 = new[] { 1, 2, 3, 4, 5 }; + + var result = ConversionUtils.AreArraysIdentical(array1, array2); + + Assert.That(result); + } + + [Test] + public void AreArraysIdentical_WhenNotSameSize_ShouldReturnFalse() + { + var array1 = new[] { 1, 2, 3, 4, 5 }; + var array2 = new[] { 1, 2, 3, 4 }; + + var result = ConversionUtils.AreArraysIdentical(array1, array2); + + Assert.That(result, Is.False); + } + + [Test] + public void AreArraysIdentical_WhenDifferent_ShouldReturnFalse() + { + var array1 = new[] { 1, 2, 3, 4, 5 }; + var array2 = new[] { 1, 2, 3, 4, 6 }; + + var result = ConversionUtils.AreArraysIdentical(array1, array2); + + Assert.That(result, Is.False); + } + } +} diff --git a/Substrate.NET.Metadata.Tests/ImplementationCheckTests.cs b/Substrate.NET.Metadata.Tests/ImplementationCheckTests.cs index 31e346c..d85753b 100644 --- a/Substrate.NET.Metadata.Tests/ImplementationCheckTests.cs +++ b/Substrate.NET.Metadata.Tests/ImplementationCheckTests.cs @@ -35,12 +35,12 @@ public void AllBaseTypeSubclasses_ShouldImplementEncode_ReturnsByteArray() } // Ensure the class has the Encode method - MethodInfo encodeMethod = type.GetMethod("Encode"); + MethodInfo encodeMethod = type!.GetMethod("Encode"); Assert.That(encodeMethod, Is.Not.Null, $"Class {type.Name} does not implement the Encode() method."); try { - _ = (byte[])encodeMethod.Invoke(instance, null); + _ = (byte[])encodeMethod!.Invoke(instance, null); } catch (TargetInvocationException ex) when (ex.InnerException is NotImplementedException) { diff --git a/Substrate.NET.Metadata.Tests/MetadataServiceV13Test.cs b/Substrate.NET.Metadata.Tests/MetadataServiceV13Test.cs index 68c1ba1..3bb270c 100644 --- a/Substrate.NET.Metadata.Tests/MetadataServiceV13Test.cs +++ b/Substrate.NET.Metadata.Tests/MetadataServiceV13Test.cs @@ -64,7 +64,7 @@ public void StorageEntryMetadataV13_WhenNMap_ShouldThrowException() storageEntry.StorageType.Value = StorageType.Type.NMap; - Assert.Throws(() => storageEntry.ToStorageEntryMetadataV14(new Conversion.Internal.ConversionBuilder(new List()))); + Assert.Throws(() => storageEntry.ToStorageEntryMetadataV14(new Metadata.Conversion.Internal.ConversionBuilder(new List()))); } } } diff --git a/Substrate.NET.Metadata.Tests/MetadataServiceV14Test.cs b/Substrate.NET.Metadata.Tests/MetadataServiceV14Test.cs index 0eaee9d..4c23bcf 100644 --- a/Substrate.NET.Metadata.Tests/MetadataServiceV14Test.cs +++ b/Substrate.NET.Metadata.Tests/MetadataServiceV14Test.cs @@ -67,7 +67,7 @@ public void MetadataV14_SpecVersionCompare_V9370_And_V9420_ShouldSucceed() // Some calls has been added and one has been removed - var callsMethodChanged = palletBalance.Calls.LookupDifferentialType.TypeVariant.Elems; + var callsMethodChanged = palletBalance!.Calls.LookupDifferentialType.TypeVariant.Elems; Assert.That(callsMethodChanged.Count(), Is.GreaterThan(1)); Assert.That(callsMethodChanged.Any(x => x.Item1 == CompareStatus.Added && x.Item2.Name.Value == "set_balance_deprecated")); Assert.That(callsMethodChanged.Any(x => x.Item1 == CompareStatus.Removed && x.Item2.Name.Value == "set_balance")); diff --git a/Substrate.NET.Metadata/Base/StorageEntryTypeNMap.cs b/Substrate.NET.Metadata/Base/StorageEntryTypeNMap.cs index bacf185..6f783c3 100644 --- a/Substrate.NET.Metadata/Base/StorageEntryTypeNMap.cs +++ b/Substrate.NET.Metadata/Base/StorageEntryTypeNMap.cs @@ -2,6 +2,7 @@ using Substrate.NetApi.Model.Types.Primitive; using System; using System.Collections.Generic; +using System.Diagnostics.CodeAnalysis; using System.Linq; using System.Text; using System.Threading.Tasks; @@ -12,14 +13,15 @@ namespace Substrate.NET.Metadata.Base /// Represent a "NMap" storage with generic Hasher /// /// + [ExcludeFromCodeCoverage] // Should never happened. Here just for consistency public class StorageEntryTypeNMap : BaseType where THasher : Enum { - public BaseVec> Hashers { get; private set; } + public BaseVec> Hashers { get; private set; } = default!; - public BaseVec KeyVec { get; private set; } + public BaseVec KeyVec { get; private set; } = default!; - public Str Value { get; private set; } + public Str Value { get; private set; } = default!; public override byte[] Encode() { diff --git a/Substrate.NET.Metadata/Conversion/Internal/ConversionBuilder.cs b/Substrate.NET.Metadata/Conversion/Internal/ConversionBuilder.cs index 40791dc..4a5ae0e 100644 --- a/Substrate.NET.Metadata/Conversion/Internal/ConversionBuilder.cs +++ b/Substrate.NET.Metadata/Conversion/Internal/ConversionBuilder.cs @@ -128,7 +128,7 @@ public ConversionBuilder(List portableTypes) /// public U32 GetNewIndex() { - if (!PortableTypes.Any()) return new U32(START_INDEX); + if (PortableTypes.Count == 0) return new U32(START_INDEX); return new U32(Math.Max(START_INDEX, PortableTypes.Max(x => x.Id.Value) + 1)); } @@ -326,15 +326,6 @@ private U32 AddRuntimeLookup(string objType, string palletName, Variant[] varian return index; } - public PalletEventMetadataV14 ConvertToEventV14(string eventName, string eventType) - { - var res = new PalletEventMetadataV14(); - - res.ElemType = TType.From(BuildPortableTypes(eventType).Value); - - return res; - } - public void CreateEventBlockchainRuntimeEvent() { var node = new TypeDefVariant(); @@ -403,7 +394,7 @@ public PortableType CreatePortableTypeFromNode(BaseType node, List? path portableType.Ty.Path.Create(new Str[0]); } - portableType.Ty.TypeParams = new BaseVec(new TypeParameter[0]); + portableType.Ty.TypeParams = new BaseVec([]); if (node is TypeDefTuple tdt) { diff --git a/Substrate.NET.Metadata/Conversion/Internal/ConversionBuilderTree.cs b/Substrate.NET.Metadata/Conversion/Internal/ConversionBuilderTree.cs index 1e71398..b8c0647 100644 --- a/Substrate.NET.Metadata/Conversion/Internal/ConversionBuilderTree.cs +++ b/Substrate.NET.Metadata/Conversion/Internal/ConversionBuilderTree.cs @@ -1,12 +1,5 @@ using Substrate.NET.Metadata.Base; -using Substrate.NET.Metadata.Base.Portable; -using Substrate.NetApi.Model.Meta; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; using System.Text.RegularExpressions; -using System.Threading.Tasks; namespace Substrate.NET.Metadata.Conversion.Internal { @@ -42,7 +35,6 @@ internal static NodeBuilderType Build(NodeBuilderType nodeBuilderType) if (ExtractPrimitive(nodeBuilderType) is NodeBuilderTypePrimitive primitive && nodeBuilderType is NodeBuilderTypeUndefined) { nodeBuilderType = primitive!; - //return primitive; } if (nodeBuilderType is NodeBuilderTypeUndefined) @@ -50,7 +42,6 @@ internal static NodeBuilderType Build(NodeBuilderType nodeBuilderType) var content = HarmonizeTypeName(nodeBuilderType.Adapted); var hardBinding = SearchV14.HardBinding(content, nodeBuilderType.PalletContext); - //if(!hardBinding.Equals(nodeBuilderType.Raw, StringComparison.CurrentCultureIgnoreCase)) if (!string.IsNullOrEmpty(hardBinding) && hardBinding != content) { nodeBuilderType = Build(new NodeBuilderTypeUndefined(hardBinding, nodeBuilderType.Raw, nodeBuilderType.PalletContext)); diff --git a/Substrate.NET.Metadata/Conversion/Internal/StorageClass.cs b/Substrate.NET.Metadata/Conversion/Internal/StorageClass.cs index 560950e..d51cdfd 100644 --- a/Substrate.NET.Metadata/Conversion/Internal/StorageClass.cs +++ b/Substrate.NET.Metadata/Conversion/Internal/StorageClass.cs @@ -29,46 +29,6 @@ public StorageClass(StorageType type, string moduleName, string propName, string public string PropName { get; set; } public string ClassName { get; set; } - private string? classNameMapped = null; - public string ClassNameMapped - { - get - { - if (classNameMapped is null) - classNameMapped = CustomMapping(ClassName); - - return classNameMapped; - } - } - - public string CustomMapping(string className) - { - return className switch - { - "TaskAddress" => "TaskAddress", - "Vec" => "Vec>", - "Vec" => "Vec", - "Vec<(AccountId, Balance)>" => "Vec<(::AccountId, BalanceOf)>", - "sp_std::marker::PhantomData<(AccountId, Event)>" => "BaseVoid", // Pas sur de moi - "Timepoint" => "Timepoint", - "limits::BlockWeights" => "BlockWeights", - "limits::BlockLength" => "BlockLength", - "TransactionPriority" => "u64", - "& 'static[u8]" => "vec", - "&[u8]" => "vec", - "Moment" => "u64", - "ModuleId" => "PalletId", - "LeasePeriod" => "LeasePeriodOf", - _ => className - }; - } - - public void SetToFoundInV14(int index) - { - FoundInV14 = true; - Index_v14_9110 = index; - } - public static string WriteStoragePlain(Str plain) => WriteStoragePlain(plain.Value); public static string WriteStoragePlain(string plain) { @@ -149,11 +109,6 @@ public static string WriteStorageNMap(StorageEntryTypeNMapV13 nMap) return $"[Hashers = [{hasher} / Keys = {keyVec} / Value = {nMap.Value.Value}"; } - public override string ToString() - { - return $"{ModuleName}|{Type}|{PropName}|{ClassName}|{(FoundInV14 ? ClassNameMapped : "")}|{FoundInV14}|{(Index_v14_9110 is not null ? Index_v14_9110.Value : "")}"; - } - public enum StorageType { Call, diff --git a/Substrate.NET.Metadata/Substrate.NET.Metadata.csproj b/Substrate.NET.Metadata/Substrate.NET.Metadata.csproj index 43848d3..faf5d5d 100644 --- a/Substrate.NET.Metadata/Substrate.NET.Metadata.csproj +++ b/Substrate.NET.Metadata/Substrate.NET.Metadata.csproj @@ -5,7 +5,7 @@ enable enable - 0.1.4 + 0.1.5 Substrate metadata version from V9 to V15 with .NET README.md LICENSE diff --git a/Substrate.NET.Metadata/V13/ModuleMetadataV13.cs b/Substrate.NET.Metadata/V13/ModuleMetadataV13.cs index 8f4a02d..567ed54 100644 --- a/Substrate.NET.Metadata/V13/ModuleMetadataV13.cs +++ b/Substrate.NET.Metadata/V13/ModuleMetadataV13.cs @@ -12,13 +12,13 @@ namespace Substrate.NET.Metadata.V13 { public class ModuleMetadataV13 : BaseType, IMetadataName { - public Str Name { get; private set; } - public BaseOpt Storage { get; private set; } - public BaseOpt> Calls { get; private set; } - public BaseOpt> Events { get; private set; } - public BaseVec Constants { get; private set; } - public BaseVec Errors { get; private set; } - public U8 Index { get; private set; } + public Str Name { get; private set; } = default!; + public BaseOpt Storage { get; private set; } = default!; + public BaseOpt> Calls { get; private set; } = default!; + public BaseOpt> Events { get; private set; } = default!; + public BaseVec Constants { get; private set; } = default!; + public BaseVec Errors { get; private set; } = default!; + public U8 Index { get; private set; } = default!; public override void Decode(byte[] byteArray, ref int p) {